@pascal-app/core 0.9.1 → 0.9.2
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/dist/events/bus.d.ts +30 -2
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/hooks/scene-registry/item-clip-registry.d.ts +18 -0
- package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -0
- package/dist/hooks/scene-registry/item-clip-registry.js +10 -0
- package/dist/hooks/scene-registry/scene-registry.d.ts +8 -1
- package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
- package/dist/hooks/scene-registry/scene-registry.js +27 -1
- package/dist/hooks/scene-registry/scene-registry.test.d.ts +2 -0
- package/dist/hooks/scene-registry/scene-registry.test.d.ts.map +1 -0
- package/dist/hooks/scene-registry/scene-registry.test.js +26 -0
- package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +93 -0
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +69 -12
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +476 -195
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +19 -1
- package/dist/hooks/spatial-grid/wall-slab-overlap.test.d.ts +2 -0
- package/dist/hooks/spatial-grid/wall-slab-overlap.test.d.ts.map +1 -0
- package/dist/hooks/spatial-grid/wall-slab-overlap.test.js +363 -0
- package/dist/index.d.ts +16 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/lib/level-name.d.ts +4 -0
- package/dist/lib/level-name.d.ts.map +1 -0
- package/dist/lib/level-name.js +10 -0
- package/dist/lib/measurement-geometry.d.ts +19 -0
- package/dist/lib/measurement-geometry.d.ts.map +1 -0
- package/dist/lib/measurement-geometry.js +232 -0
- package/dist/lib/measurement-geometry.test.d.ts +2 -0
- package/dist/lib/measurement-geometry.test.d.ts.map +1 -0
- package/dist/lib/measurement-geometry.test.js +102 -0
- package/dist/lib/polygon-geometry.d.ts +0 -1
- package/dist/lib/polygon-geometry.d.ts.map +1 -1
- package/dist/lib/polygon-geometry.js +0 -18
- package/dist/lib/selection-proxy.d.ts +4 -0
- package/dist/lib/selection-proxy.d.ts.map +1 -0
- package/dist/lib/selection-proxy.js +12 -0
- package/dist/lib/slab-polygon.d.ts +31 -2
- package/dist/lib/slab-polygon.d.ts.map +1 -1
- package/dist/lib/slab-polygon.js +525 -31
- package/dist/lib/slab-polygon.test.d.ts +2 -0
- package/dist/lib/slab-polygon.test.d.ts.map +1 -0
- package/dist/lib/slab-polygon.test.js +635 -0
- package/dist/lib/slots.d.ts +14 -0
- package/dist/lib/slots.d.ts.map +1 -0
- package/dist/lib/slots.js +26 -0
- package/dist/lib/space-detection.d.ts +25 -2
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +414 -118
- package/dist/lib/space-detection.test.js +301 -2
- package/dist/lib/wall-distance.d.ts +60 -0
- package/dist/lib/wall-distance.d.ts.map +1 -0
- package/dist/lib/wall-distance.js +85 -0
- package/dist/lib/zone-quantities.d.ts +21 -0
- package/dist/lib/zone-quantities.d.ts.map +1 -0
- package/dist/lib/zone-quantities.js +183 -0
- package/dist/lib/zone-quantities.test.d.ts +2 -0
- package/dist/lib/zone-quantities.test.d.ts.map +1 -0
- package/dist/lib/zone-quantities.test.js +82 -0
- package/dist/material-library.d.ts +20 -1
- package/dist/material-library.d.ts.map +1 -1
- package/dist/material-library.js +2181 -441
- package/dist/registry/handles.d.ts +75 -2
- package/dist/registry/handles.d.ts.map +1 -1
- package/dist/registry/index.d.ts +3 -3
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/registry.d.ts +46 -3
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +82 -1
- package/dist/registry/registry.test.js +14 -1
- package/dist/registry/subtree.d.ts.map +1 -1
- package/dist/registry/subtree.js +4 -0
- package/dist/registry/subtree.test.js +30 -0
- package/dist/registry/types.d.ts +717 -38
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/index.d.ts +21 -5
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +17 -3
- package/dist/schema/material.d.ts +3 -2
- package/dist/schema/material.d.ts.map +1 -1
- package/dist/schema/material.js +7 -5
- package/dist/schema/material.test.d.ts +2 -0
- package/dist/schema/material.test.d.ts.map +1 -0
- package/dist/schema/material.test.js +43 -0
- package/dist/schema/nodes/box-vent.d.ts +2 -2
- package/dist/schema/nodes/cabinet.d.ts +534 -0
- package/dist/schema/nodes/cabinet.d.ts.map +1 -0
- package/dist/schema/nodes/cabinet.js +137 -0
- package/dist/schema/nodes/ceiling.d.ts +3 -2
- package/dist/schema/nodes/ceiling.d.ts.map +1 -1
- package/dist/schema/nodes/ceiling.js +4 -0
- package/dist/schema/nodes/chimney.d.ts +4 -4
- package/dist/schema/nodes/column.d.ts +3 -2
- package/dist/schema/nodes/column.d.ts.map +1 -1
- package/dist/schema/nodes/column.js +3 -0
- package/dist/schema/nodes/cupola.d.ts +2 -2
- package/dist/schema/nodes/door.d.ts +13 -5
- package/dist/schema/nodes/door.d.ts.map +1 -1
- package/dist/schema/nodes/door.js +12 -0
- package/dist/schema/nodes/dormer.d.ts +8 -8
- package/dist/schema/nodes/dormer.js +1 -1
- package/dist/schema/nodes/downspout.d.ts +2 -2
- package/dist/schema/nodes/duct-fitting.d.ts +91 -0
- package/dist/schema/nodes/duct-fitting.d.ts.map +1 -0
- package/dist/schema/nodes/duct-fitting.js +92 -0
- package/dist/schema/nodes/duct-segment.d.ts +61 -0
- package/dist/schema/nodes/duct-segment.d.ts.map +1 -0
- package/dist/schema/nodes/duct-segment.js +73 -0
- package/dist/schema/nodes/duct-terminal.d.ts +57 -0
- package/dist/schema/nodes/duct-terminal.d.ts.map +1 -0
- package/dist/schema/nodes/duct-terminal.js +51 -0
- package/dist/schema/nodes/elevator.d.ts +3 -2
- package/dist/schema/nodes/elevator.d.ts.map +1 -1
- package/dist/schema/nodes/elevator.js +3 -0
- package/dist/schema/nodes/eyebrow-vent.d.ts +2 -2
- package/dist/schema/nodes/fence.d.ts +18 -2
- package/dist/schema/nodes/fence.d.ts.map +1 -1
- package/dist/schema/nodes/fence.js +25 -2
- package/dist/schema/nodes/gutter.d.ts +2 -2
- package/dist/schema/nodes/hvac-equipment.d.ts +63 -0
- package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -0
- package/dist/schema/nodes/hvac-equipment.js +55 -0
- package/dist/schema/nodes/item.d.ts +8 -0
- package/dist/schema/nodes/item.d.ts.map +1 -1
- package/dist/schema/nodes/item.js +11 -0
- package/dist/schema/nodes/level.d.ts +1 -1
- package/dist/schema/nodes/level.d.ts.map +1 -1
- package/dist/schema/nodes/level.js +2 -0
- package/dist/schema/nodes/lineset.d.ts +42 -0
- package/dist/schema/nodes/lineset.d.ts.map +1 -0
- package/dist/schema/nodes/lineset.js +38 -0
- package/dist/schema/nodes/liquid-line.d.ts +34 -0
- package/dist/schema/nodes/liquid-line.d.ts.map +1 -0
- package/dist/schema/nodes/liquid-line.js +24 -0
- package/dist/schema/nodes/measurement.d.ts +306 -0
- package/dist/schema/nodes/measurement.d.ts.map +1 -0
- package/dist/schema/nodes/measurement.js +87 -0
- package/dist/schema/nodes/measurement.test.d.ts +2 -0
- package/dist/schema/nodes/measurement.test.d.ts.map +1 -0
- package/dist/schema/nodes/measurement.test.js +139 -0
- package/dist/schema/nodes/pipe-fitting.d.ts +56 -0
- package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -0
- package/dist/schema/nodes/pipe-fitting.js +45 -0
- package/dist/schema/nodes/pipe-segment.d.ts +48 -0
- package/dist/schema/nodes/pipe-segment.d.ts.map +1 -0
- package/dist/schema/nodes/pipe-segment.js +36 -0
- package/dist/schema/nodes/pipe-trap.d.ts +43 -0
- package/dist/schema/nodes/pipe-trap.d.ts.map +1 -0
- package/dist/schema/nodes/pipe-trap.js +36 -0
- package/dist/schema/nodes/ridge-vent-defaults.test.d.ts +2 -0
- package/dist/schema/nodes/ridge-vent-defaults.test.d.ts.map +1 -0
- package/dist/schema/nodes/ridge-vent-defaults.test.js +205 -0
- package/dist/schema/nodes/ridge-vent.d.ts +18 -3
- package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
- package/dist/schema/nodes/ridge-vent.js +221 -3
- package/dist/schema/nodes/roof-segment-shape.d.ts +90 -0
- package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-shape.js +318 -0
- package/dist/schema/nodes/roof-segment-shape.test.d.ts +2 -0
- package/dist/schema/nodes/roof-segment-shape.test.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-shape.test.js +175 -0
- package/dist/schema/nodes/roof-segment-surface.test.d.ts +2 -0
- package/dist/schema/nodes/roof-segment-surface.test.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-surface.test.js +48 -0
- package/dist/schema/nodes/roof-segment-trim.test.d.ts +2 -0
- package/dist/schema/nodes/roof-segment-trim.test.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-trim.test.js +107 -0
- package/dist/schema/nodes/roof-segment-walls.d.ts +101 -0
- package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-walls.js +330 -0
- package/dist/schema/nodes/roof-segment-walls.test.d.ts +2 -0
- package/dist/schema/nodes/roof-segment-walls.test.d.ts.map +1 -0
- package/dist/schema/nodes/roof-segment-walls.test.js +92 -0
- package/dist/schema/nodes/roof-segment.d.ts +84 -8
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +290 -5
- package/dist/schema/nodes/roof.d.ts +8 -8
- package/dist/schema/nodes/shelf.d.ts +3 -2
- package/dist/schema/nodes/shelf.d.ts.map +1 -1
- package/dist/schema/nodes/shelf.js +6 -0
- package/dist/schema/nodes/skylight.d.ts +10 -10
- package/dist/schema/nodes/slab.d.ts +3 -2
- package/dist/schema/nodes/slab.d.ts.map +1 -1
- package/dist/schema/nodes/slab.js +4 -0
- package/dist/schema/nodes/solar-panel.d.ts +4 -4
- package/dist/schema/nodes/stair-segment.d.ts +4 -4
- package/dist/schema/nodes/stair.d.ts +13 -12
- package/dist/schema/nodes/stair.d.ts.map +1 -1
- package/dist/schema/nodes/stair.js +3 -0
- package/dist/schema/nodes/turbine-vent.d.ts +2 -2
- package/dist/schema/nodes/wall.d.ts +245 -6
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +257 -0
- package/dist/schema/nodes/wall.test.d.ts +2 -0
- package/dist/schema/nodes/wall.test.d.ts.map +1 -0
- package/dist/schema/nodes/wall.test.js +208 -0
- package/dist/schema/nodes/window.d.ts +11 -3
- package/dist/schema/nodes/window.d.ts.map +1 -1
- package/dist/schema/nodes/window.js +12 -0
- package/dist/schema/nodes/zone.d.ts +2 -0
- package/dist/schema/nodes/zone.d.ts.map +1 -1
- package/dist/schema/nodes/zone.js +6 -0
- package/dist/schema/scene-material.d.ts +41 -0
- package/dist/schema/scene-material.d.ts.map +1 -0
- package/dist/schema/scene-material.js +9 -0
- package/dist/schema/types.d.ts +1089 -94
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +23 -0
- package/dist/services/alignment-anchors.d.ts.map +1 -1
- package/dist/services/alignment-anchors.js +30 -1
- package/dist/services/alignment.d.ts +5 -0
- package/dist/services/alignment.d.ts.map +1 -1
- package/dist/services/alignment.js +2 -0
- package/dist/services/hosting.d.ts +8 -0
- package/dist/services/hosting.d.ts.map +1 -1
- package/dist/services/hosting.js +13 -4
- package/dist/services/hosting.test.js +32 -1
- package/dist/services/index.d.ts +8 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +8 -2
- package/dist/services/level-height.d.ts +28 -0
- package/dist/services/level-height.d.ts.map +1 -0
- package/dist/services/level-height.js +62 -0
- package/dist/services/opening-guides.d.ts +141 -0
- package/dist/services/opening-guides.d.ts.map +1 -0
- package/dist/services/opening-guides.js +267 -0
- package/dist/services/opening-guides.test.d.ts +2 -0
- package/dist/services/opening-guides.test.d.ts.map +1 -0
- package/dist/services/opening-guides.test.js +208 -0
- package/dist/services/port-connectivity.d.ts +115 -0
- package/dist/services/port-connectivity.d.ts.map +1 -0
- package/dist/services/port-connectivity.js +300 -0
- package/dist/services/port-connectivity.test.d.ts +2 -0
- package/dist/services/port-connectivity.test.d.ts.map +1 -0
- package/dist/services/port-connectivity.test.js +297 -0
- package/dist/services/riser-diagram.d.ts +40 -0
- package/dist/services/riser-diagram.d.ts.map +1 -0
- package/dist/services/riser-diagram.js +110 -0
- package/dist/services/riser-diagram.test.d.ts +2 -0
- package/dist/services/riser-diagram.test.d.ts.map +1 -0
- package/dist/services/riser-diagram.test.js +66 -0
- package/dist/services/snap.d.ts +9 -1
- package/dist/services/snap.d.ts.map +1 -1
- package/dist/services/snap.js +21 -1
- package/dist/services/snap.test.js +43 -1
- package/dist/services/system-graph.d.ts +30 -0
- package/dist/services/system-graph.d.ts.map +1 -0
- package/dist/services/system-graph.js +164 -0
- package/dist/services/system-graph.test.d.ts +2 -0
- package/dist/services/system-graph.test.d.ts.map +1 -0
- package/dist/services/system-graph.test.js +138 -0
- package/dist/services/validate-dwv.d.ts +32 -0
- package/dist/services/validate-dwv.d.ts.map +1 -0
- package/dist/services/validate-dwv.js +118 -0
- package/dist/services/validate-dwv.test.d.ts +2 -0
- package/dist/services/validate-dwv.test.d.ts.map +1 -0
- package/dist/services/validate-dwv.test.js +109 -0
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +94 -1
- package/dist/store/actions/ridge-vent-update.test.d.ts +2 -0
- package/dist/store/actions/ridge-vent-update.test.d.ts.map +1 -0
- package/dist/store/actions/ridge-vent-update.test.js +264 -0
- package/dist/store/history-control.d.ts +11 -0
- package/dist/store/history-control.d.ts.map +1 -1
- package/dist/store/history-control.js +33 -0
- package/dist/store/use-scene-dirty-tracking.test.d.ts +2 -0
- package/dist/store/use-scene-dirty-tracking.test.d.ts.map +1 -0
- package/dist/store/use-scene-dirty-tracking.test.js +68 -0
- package/dist/store/use-scene-measurement-roundtrip.test.d.ts +2 -0
- package/dist/store/use-scene-measurement-roundtrip.test.d.ts.map +1 -0
- package/dist/store/use-scene-measurement-roundtrip.test.js +97 -0
- package/dist/store/use-scene-plugins.test.d.ts +2 -0
- package/dist/store/use-scene-plugins.test.d.ts.map +1 -0
- package/dist/store/use-scene-plugins.test.js +51 -0
- package/dist/store/use-scene-wall-slot-migration.test.d.ts +2 -0
- package/dist/store/use-scene-wall-slot-migration.test.d.ts.map +1 -0
- package/dist/store/use-scene-wall-slot-migration.test.js +210 -0
- package/dist/store/use-scene-window-migration.test.d.ts +2 -0
- package/dist/store/use-scene-window-migration.test.d.ts.map +1 -0
- package/dist/store/use-scene-window-migration.test.js +85 -0
- package/dist/store/use-scene.d.ts +17 -2
- package/dist/store/use-scene.d.ts.map +1 -1
- package/dist/store/use-scene.js +358 -51
- package/dist/systems/elevator/elevator-service.js +1 -1
- package/dist/systems/fence/fence-centerline.d.ts +12 -0
- package/dist/systems/fence/fence-centerline.d.ts.map +1 -0
- package/dist/systems/fence/fence-centerline.js +37 -0
- package/dist/systems/fence/fence-spline.d.ts +39 -0
- package/dist/systems/fence/fence-spline.d.ts.map +1 -0
- package/dist/systems/fence/fence-spline.js +196 -0
- package/dist/systems/fence/fence-spline.test.d.ts +2 -0
- package/dist/systems/fence/fence-spline.test.d.ts.map +1 -0
- package/dist/systems/fence/fence-spline.test.js +136 -0
- package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
- package/dist/systems/stair/stair-footprint.js +21 -11
- package/dist/systems/stair/stair-opening-preview.d.ts +1139 -469
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-sync.js +1 -18
- package/dist/systems/stair/stair-opening-sync.test.js +39 -0
- package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
- package/dist/systems/wall/wall-mitering.js +38 -2
- package/dist/systems/wall/wall-mitering.test.d.ts +2 -0
- package/dist/systems/wall/wall-mitering.test.d.ts.map +1 -0
- package/dist/systems/wall/wall-mitering.test.js +63 -0
- package/dist/utils/clone-scene-graph.d.ts +1 -0
- package/dist/utils/clone-scene-graph.d.ts.map +1 -1
- package/dist/utils/clone-scene-graph.js +23 -3
- package/dist/utils/clone-scene-graph.test.js +3 -0
- package/dist/utils/heal-scene-graph.d.ts +18 -0
- package/dist/utils/heal-scene-graph.d.ts.map +1 -0
- package/dist/utils/heal-scene-graph.js +90 -0
- package/dist/utils/heal-scene-graph.test.d.ts +2 -0
- package/dist/utils/heal-scene-graph.test.d.ts.map +1 -0
- package/dist/utils/heal-scene-graph.test.js +88 -0
- package/dist/validation/validate-build-json.d.ts +1 -0
- package/dist/validation/validate-build-json.d.ts.map +1 -1
- package/dist/validation/validate-build-json.js +31 -2
- package/package.json +3 -3
|
@@ -20,7 +20,7 @@ export declare const CeilingNode: z.ZodObject<{
|
|
|
20
20
|
children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
|
|
21
21
|
material: z.ZodOptional<z.ZodObject<{
|
|
22
22
|
id: z.ZodOptional<z.ZodString>;
|
|
23
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
23
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
24
24
|
custom: "custom";
|
|
25
25
|
white: "white";
|
|
26
26
|
brick: "brick";
|
|
@@ -31,7 +31,7 @@ export declare const CeilingNode: z.ZodObject<{
|
|
|
31
31
|
plaster: "plaster";
|
|
32
32
|
tile: "tile";
|
|
33
33
|
marble: "marble";
|
|
34
|
-
}
|
|
34
|
+
}>>>;
|
|
35
35
|
properties: z.ZodOptional<z.ZodObject<{
|
|
36
36
|
color: z.ZodDefault<z.ZodString>;
|
|
37
37
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -51,6 +51,7 @@ export declare const CeilingNode: z.ZodObject<{
|
|
|
51
51
|
}, z.core.$strip>>;
|
|
52
52
|
}, z.core.$strip>>;
|
|
53
53
|
materialPreset: z.ZodOptional<z.ZodString>;
|
|
54
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
54
55
|
polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
55
56
|
holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
|
|
56
57
|
holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/ceiling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/ceiling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA"}
|
|
@@ -10,6 +10,10 @@ export const CeilingNode = BaseNode.extend({
|
|
|
10
10
|
children: z.array(ItemNode.shape.id).default([]),
|
|
11
11
|
material: MaterialSchema.optional(),
|
|
12
12
|
materialPreset: z.string().optional(),
|
|
13
|
+
// Per-slot material overrides on the unified slot model, mirroring
|
|
14
|
+
// `ShelfNode.slots`. Key = slot id (`surface`), value = a `MaterialRef`
|
|
15
|
+
// (`library:<id>` / `scene:<id>`). Absent = the declared slot default.
|
|
16
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
13
17
|
polygon: z.array(z.tuple([z.number(), z.number()])),
|
|
14
18
|
holes: z.array(z.array(z.tuple([z.number(), z.number()]))).default([]),
|
|
15
19
|
holeMetadata: z.array(SurfaceHoleMetadata).default([]),
|
|
@@ -24,7 +24,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
24
24
|
type: z.ZodDefault<z.ZodLiteral<"chimney">>;
|
|
25
25
|
material: z.ZodOptional<z.ZodObject<{
|
|
26
26
|
id: z.ZodOptional<z.ZodString>;
|
|
27
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
28
28
|
custom: "custom";
|
|
29
29
|
white: "white";
|
|
30
30
|
brick: "brick";
|
|
@@ -35,7 +35,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
35
35
|
plaster: "plaster";
|
|
36
36
|
tile: "tile";
|
|
37
37
|
marble: "marble";
|
|
38
|
-
}
|
|
38
|
+
}>>>;
|
|
39
39
|
properties: z.ZodOptional<z.ZodObject<{
|
|
40
40
|
color: z.ZodDefault<z.ZodString>;
|
|
41
41
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -57,7 +57,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
57
57
|
materialPreset: z.ZodOptional<z.ZodString>;
|
|
58
58
|
topMaterial: z.ZodOptional<z.ZodObject<{
|
|
59
59
|
id: z.ZodOptional<z.ZodString>;
|
|
60
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
60
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
61
61
|
custom: "custom";
|
|
62
62
|
white: "white";
|
|
63
63
|
brick: "brick";
|
|
@@ -68,7 +68,7 @@ export declare const ChimneyNode: z.ZodObject<{
|
|
|
68
68
|
plaster: "plaster";
|
|
69
69
|
tile: "tile";
|
|
70
70
|
marble: "marble";
|
|
71
|
-
}
|
|
71
|
+
}>>>;
|
|
72
72
|
properties: z.ZodOptional<z.ZodObject<{
|
|
73
73
|
color: z.ZodDefault<z.ZodString>;
|
|
74
74
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -263,7 +263,7 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
263
263
|
bracePlateEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
264
264
|
material: z.ZodOptional<z.ZodObject<{
|
|
265
265
|
id: z.ZodOptional<z.ZodString>;
|
|
266
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
266
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
267
267
|
custom: "custom";
|
|
268
268
|
white: "white";
|
|
269
269
|
brick: "brick";
|
|
@@ -274,7 +274,7 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
274
274
|
plaster: "plaster";
|
|
275
275
|
tile: "tile";
|
|
276
276
|
marble: "marble";
|
|
277
|
-
}
|
|
277
|
+
}>>>;
|
|
278
278
|
properties: z.ZodOptional<z.ZodObject<{
|
|
279
279
|
color: z.ZodDefault<z.ZodString>;
|
|
280
280
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -294,6 +294,7 @@ export declare const ColumnNode: z.ZodObject<{
|
|
|
294
294
|
}, z.core.$strip>>;
|
|
295
295
|
}, z.core.$strip>>;
|
|
296
296
|
materialPreset: z.ZodOptional<z.ZodString>;
|
|
297
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
297
298
|
}, z.core.$strip>;
|
|
298
299
|
export declare const COLUMN_PRESETS: {
|
|
299
300
|
readonly basicPillar: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW;;;;;;;EAOtB,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAM7B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAAqE,CAAA;AAEpG,eAAO,MAAM,iBAAiB;;;;;;EAAmE,CAAA;AAEjG,eAAO,MAAM,gBAAgB;;;;EAA6C,CAAA;AAE1E,eAAO,MAAM,eAAe;;;;;;;;;EAS1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;EAa7B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;EAA4C,CAAA;AAE5E,eAAO,MAAM,sBAAsB;;;;;EAA8C,CAAA;AAEjF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAY7B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AACrD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAC7D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/column.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,6 +137,9 @@ export const ColumnNode = BaseNode.extend({
|
|
|
137
137
|
bracePlateEnabled: z.boolean().default(true),
|
|
138
138
|
material: MaterialSchema.optional(),
|
|
139
139
|
materialPreset: z.string().optional(),
|
|
140
|
+
// Unified paint-slot refs (`scene:`/`library:` MaterialRef per slot id),
|
|
141
|
+
// matching the slot model items/slab/shelf use. Absent = declared default.
|
|
142
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
140
143
|
}).describe(dedent `
|
|
141
144
|
Column node - used to represent structural or decorative pillars/columns.
|
|
142
145
|
- style: visual approach such as plain, lathe-turned, carved, or cluster
|
|
@@ -19,7 +19,7 @@ export declare const CupolaNode: z.ZodObject<{
|
|
|
19
19
|
type: z.ZodDefault<z.ZodLiteral<"cupola">>;
|
|
20
20
|
material: z.ZodOptional<z.ZodObject<{
|
|
21
21
|
id: z.ZodOptional<z.ZodString>;
|
|
22
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
22
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
23
23
|
custom: "custom";
|
|
24
24
|
white: "white";
|
|
25
25
|
brick: "brick";
|
|
@@ -30,7 +30,7 @@ export declare const CupolaNode: z.ZodObject<{
|
|
|
30
30
|
plaster: "plaster";
|
|
31
31
|
tile: "tile";
|
|
32
32
|
marble: "marble";
|
|
33
|
-
}
|
|
33
|
+
}>>>;
|
|
34
34
|
properties: z.ZodOptional<z.ZodObject<{
|
|
35
35
|
color: z.ZodDefault<z.ZodString>;
|
|
36
36
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -57,7 +57,7 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
57
57
|
type: z.ZodDefault<z.ZodLiteral<"door">>;
|
|
58
58
|
material: z.ZodOptional<z.ZodObject<{
|
|
59
59
|
id: z.ZodOptional<z.ZodString>;
|
|
60
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
60
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
61
61
|
custom: "custom";
|
|
62
62
|
white: "white";
|
|
63
63
|
brick: "brick";
|
|
@@ -68,7 +68,7 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
68
68
|
plaster: "plaster";
|
|
69
69
|
tile: "tile";
|
|
70
70
|
marble: "marble";
|
|
71
|
-
}
|
|
71
|
+
}>>>;
|
|
72
72
|
properties: z.ZodOptional<z.ZodObject<{
|
|
73
73
|
color: z.ZodDefault<z.ZodString>;
|
|
74
74
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -87,6 +87,7 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
87
87
|
scale: z.ZodOptional<z.ZodNumber>;
|
|
88
88
|
}, z.core.$strip>>;
|
|
89
89
|
}, z.core.$strip>>;
|
|
90
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
90
91
|
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
91
92
|
rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
92
93
|
side: z.ZodOptional<z.ZodEnum<{
|
|
@@ -94,6 +95,13 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
94
95
|
back: "back";
|
|
95
96
|
}>>;
|
|
96
97
|
wallId: z.ZodOptional<z.ZodString>;
|
|
98
|
+
roofSegmentId: z.ZodOptional<z.ZodString>;
|
|
99
|
+
roofFace: z.ZodOptional<z.ZodEnum<{
|
|
100
|
+
front: "front";
|
|
101
|
+
back: "back";
|
|
102
|
+
right: "right";
|
|
103
|
+
left: "left";
|
|
104
|
+
}>>;
|
|
97
105
|
width: z.ZodDefault<z.ZodNumber>;
|
|
98
106
|
height: z.ZodDefault<z.ZodNumber>;
|
|
99
107
|
doorCategory: z.ZodDefault<z.ZodEnum<{
|
|
@@ -115,8 +123,8 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
115
123
|
leafCount: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
|
|
116
124
|
operationState: z.ZodDefault<z.ZodNumber>;
|
|
117
125
|
slideDirection: z.ZodDefault<z.ZodEnum<{
|
|
118
|
-
left: "left";
|
|
119
126
|
right: "right";
|
|
127
|
+
left: "left";
|
|
120
128
|
}>>;
|
|
121
129
|
trackStyle: z.ZodDefault<z.ZodEnum<{
|
|
122
130
|
visible: "visible";
|
|
@@ -147,8 +155,8 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
147
155
|
threshold: z.ZodDefault<z.ZodBoolean>;
|
|
148
156
|
thresholdHeight: z.ZodDefault<z.ZodNumber>;
|
|
149
157
|
hingesSide: z.ZodDefault<z.ZodEnum<{
|
|
150
|
-
left: "left";
|
|
151
158
|
right: "right";
|
|
159
|
+
left: "left";
|
|
152
160
|
}>>;
|
|
153
161
|
swingDirection: z.ZodDefault<z.ZodEnum<{
|
|
154
162
|
inward: "inward";
|
|
@@ -170,8 +178,8 @@ export declare const DoorNode: z.ZodObject<{
|
|
|
170
178
|
handle: z.ZodDefault<z.ZodBoolean>;
|
|
171
179
|
handleHeight: z.ZodDefault<z.ZodNumber>;
|
|
172
180
|
handleSide: z.ZodDefault<z.ZodEnum<{
|
|
173
|
-
left: "left";
|
|
174
181
|
right: "right";
|
|
182
|
+
left: "left";
|
|
175
183
|
}>>;
|
|
176
184
|
contentPadding: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
177
185
|
doorCloser: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"door.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/door.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW;;;;;;;;;;;iBAWtB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD,eAAO,MAAM,YAAY;;;EAAiC,CAAA;AAC1D,eAAO,MAAM,QAAQ;;;;;;;;;;;EAWnB,CAAA;AACF,eAAO,MAAM,cAAc;;;;;EAAoD,CAAA;AAE/E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACvD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA;AAC/C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"door.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/door.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW;;;;;;;;;;;iBAWtB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD,eAAO,MAAM,YAAY;;;EAAiC,CAAA;AAC1D,eAAO,MAAM,QAAQ;;;;;;;;;;;EAWnB,CAAA;AACF,eAAO,MAAM,cAAc;;;;;EAAoD,CAAA;AAE/E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACvD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA;AAC/C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmGnB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAA"}
|
|
@@ -30,10 +30,22 @@ export const DoorNode = BaseNode.extend({
|
|
|
30
30
|
id: objectId('door'),
|
|
31
31
|
type: nodeType('door'),
|
|
32
32
|
material: MaterialSchema.optional(),
|
|
33
|
+
// Per-slot material overrides on the unified slot model. Keys: `panel` (the
|
|
34
|
+
// door body), `glass`. Value = a `MaterialRef` (`library:<id>` / `scene:<id>`).
|
|
35
|
+
// Absent = the body/glass default. Mirrors `ShelfNode.slots`.
|
|
36
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
33
37
|
position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
34
38
|
rotation: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
35
39
|
side: z.enum(['front', 'back']).optional(),
|
|
36
40
|
wallId: z.string().optional(),
|
|
41
|
+
// Alternative host: a roof-segment's generated wall face (base wall
|
|
42
|
+
// under the roof or a coplanar gable end). When set, `position` is
|
|
43
|
+
// FACE-LOCAL — [u along the face, v height, z from the wall mid-plane]
|
|
44
|
+
// — exactly the wall-child convention; the renderer mounts the node
|
|
45
|
+
// inside the face frame (`getRoofWallFaceFrame`), which is what makes
|
|
46
|
+
// hosted children track segment resizes live.
|
|
47
|
+
roofSegmentId: z.string().optional(),
|
|
48
|
+
roofFace: z.enum(['front', 'back', 'right', 'left']).optional(),
|
|
37
49
|
// Overall dimensions
|
|
38
50
|
width: z.number().default(0.9),
|
|
39
51
|
height: z.number().default(2.1),
|
|
@@ -49,7 +49,7 @@ export declare const DormerNode: z.ZodObject<{
|
|
|
49
49
|
type: z.ZodDefault<z.ZodLiteral<"dormer">>;
|
|
50
50
|
material: z.ZodOptional<z.ZodObject<{
|
|
51
51
|
id: z.ZodOptional<z.ZodString>;
|
|
52
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
52
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
53
53
|
custom: "custom";
|
|
54
54
|
white: "white";
|
|
55
55
|
brick: "brick";
|
|
@@ -60,7 +60,7 @@ export declare const DormerNode: z.ZodObject<{
|
|
|
60
60
|
plaster: "plaster";
|
|
61
61
|
tile: "tile";
|
|
62
62
|
marble: "marble";
|
|
63
|
-
}
|
|
63
|
+
}>>>;
|
|
64
64
|
properties: z.ZodOptional<z.ZodObject<{
|
|
65
65
|
color: z.ZodDefault<z.ZodString>;
|
|
66
66
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -82,7 +82,7 @@ export declare const DormerNode: z.ZodObject<{
|
|
|
82
82
|
materialPreset: z.ZodOptional<z.ZodString>;
|
|
83
83
|
topMaterial: z.ZodOptional<z.ZodObject<{
|
|
84
84
|
id: z.ZodOptional<z.ZodString>;
|
|
85
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
85
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
86
86
|
custom: "custom";
|
|
87
87
|
white: "white";
|
|
88
88
|
brick: "brick";
|
|
@@ -93,7 +93,7 @@ export declare const DormerNode: z.ZodObject<{
|
|
|
93
93
|
plaster: "plaster";
|
|
94
94
|
tile: "tile";
|
|
95
95
|
marble: "marble";
|
|
96
|
-
}
|
|
96
|
+
}>>>;
|
|
97
97
|
properties: z.ZodOptional<z.ZodObject<{
|
|
98
98
|
color: z.ZodDefault<z.ZodString>;
|
|
99
99
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -115,7 +115,7 @@ export declare const DormerNode: z.ZodObject<{
|
|
|
115
115
|
topMaterialPreset: z.ZodOptional<z.ZodString>;
|
|
116
116
|
sideMaterial: z.ZodOptional<z.ZodObject<{
|
|
117
117
|
id: z.ZodOptional<z.ZodString>;
|
|
118
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
118
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
119
119
|
custom: "custom";
|
|
120
120
|
white: "white";
|
|
121
121
|
brick: "brick";
|
|
@@ -126,7 +126,7 @@ export declare const DormerNode: z.ZodObject<{
|
|
|
126
126
|
plaster: "plaster";
|
|
127
127
|
tile: "tile";
|
|
128
128
|
marble: "marble";
|
|
129
|
-
}
|
|
129
|
+
}>>>;
|
|
130
130
|
properties: z.ZodOptional<z.ZodObject<{
|
|
131
131
|
color: z.ZodDefault<z.ZodString>;
|
|
132
132
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -148,7 +148,7 @@ export declare const DormerNode: z.ZodObject<{
|
|
|
148
148
|
sideMaterialPreset: z.ZodOptional<z.ZodString>;
|
|
149
149
|
wallMaterial: z.ZodOptional<z.ZodObject<{
|
|
150
150
|
id: z.ZodOptional<z.ZodString>;
|
|
151
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
151
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
152
152
|
custom: "custom";
|
|
153
153
|
white: "white";
|
|
154
154
|
brick: "brick";
|
|
@@ -159,7 +159,7 @@ export declare const DormerNode: z.ZodObject<{
|
|
|
159
159
|
plaster: "plaster";
|
|
160
160
|
tile: "tile";
|
|
161
161
|
marble: "marble";
|
|
162
|
-
}
|
|
162
|
+
}>>>;
|
|
163
163
|
properties: z.ZodOptional<z.ZodObject<{
|
|
164
164
|
color: z.ZodDefault<z.ZodString>;
|
|
165
165
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -76,7 +76,7 @@ export const DormerNode = BaseNode.extend({
|
|
|
76
76
|
windowCornerRadii: z
|
|
77
77
|
.tuple([z.number(), z.number(), z.number(), z.number()])
|
|
78
78
|
.default(DEFAULT_CORNER_RADII),
|
|
79
|
-
windowSill: z.boolean().default(
|
|
79
|
+
windowSill: z.boolean().default(false),
|
|
80
80
|
windowSillDepth: z.number().default(DORMER_DEFAULTS.WINDOW_SILL_DEPTH),
|
|
81
81
|
windowSillThickness: z.number().default(DORMER_DEFAULTS.WINDOW_SILL_THICKNESS),
|
|
82
82
|
}).describe(dedent `
|
|
@@ -19,7 +19,7 @@ export declare const DownspoutNode: z.ZodObject<{
|
|
|
19
19
|
type: z.ZodDefault<z.ZodLiteral<"downspout">>;
|
|
20
20
|
material: z.ZodOptional<z.ZodObject<{
|
|
21
21
|
id: z.ZodOptional<z.ZodString>;
|
|
22
|
-
preset: z.ZodOptional<z.ZodEnum<{
|
|
22
|
+
preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
|
|
23
23
|
custom: "custom";
|
|
24
24
|
white: "white";
|
|
25
25
|
brick: "brick";
|
|
@@ -30,7 +30,7 @@ export declare const DownspoutNode: z.ZodObject<{
|
|
|
30
30
|
plaster: "plaster";
|
|
31
31
|
tile: "tile";
|
|
32
32
|
marble: "marble";
|
|
33
|
-
}
|
|
33
|
+
}>>>;
|
|
34
34
|
properties: z.ZodOptional<z.ZodObject<{
|
|
35
35
|
color: z.ZodDefault<z.ZodString>;
|
|
36
36
|
roughness: z.ZodDefault<z.ZodNumber>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Duct fitting — the junction pieces that connect round duct segments:
|
|
4
|
+
* elbows (direction change), tees (branch takeoff), reducers (diameter
|
|
5
|
+
* transition).
|
|
6
|
+
*
|
|
7
|
+
* Phase 2 of the HVAC node system. Fittings are the first kind to expose
|
|
8
|
+
* typed ports (`def.ports`) — placement tools snap duct endpoints onto a
|
|
9
|
+
* fitting's collars, and the future system graph walks ports to decide
|
|
10
|
+
* connectivity.
|
|
11
|
+
*
|
|
12
|
+
* `position` is level-local meters; `rotation` is an XYZ euler in radians
|
|
13
|
+
* so a fitting can turn a horizontal run vertical (riser elbows).
|
|
14
|
+
*
|
|
15
|
+
* Local-frame conventions (before `rotation` is applied):
|
|
16
|
+
* - elbow: inlet faces -X, outlet turned by `angle` degrees in the
|
|
17
|
+
* XZ plane (90° → +Z).
|
|
18
|
+
* - tee: run along the X axis (ports face -X and +X), branch
|
|
19
|
+
* collar at `branchAngle`° from the +X (outlet) axis in the
|
|
20
|
+
* XZ plane — 90° a square straight tee, <90° a lateral
|
|
21
|
+
* leaning downstream toward the outlet, >90° leaning upstream
|
|
22
|
+
* toward the inlet — sized at `diameter2`.
|
|
23
|
+
* - cross: four-way junction — run along the X axis (ports face -X
|
|
24
|
+
* and +X) at the run profile, two opposed branches square to
|
|
25
|
+
* the run along ±Z (branch faces +Z, branch2 faces -Z) at the
|
|
26
|
+
* branch profile (`shape2` / `diameter2`).
|
|
27
|
+
* - reducer: inlet at `diameter` faces -X, outlet at `diameter2`
|
|
28
|
+
* faces +X.
|
|
29
|
+
* - transition: square-to-round — rect end at `width` × `height` faces
|
|
30
|
+
* -X, round end at `diameter2` faces +X. `diameter` carries
|
|
31
|
+
* the rect end's area-equivalent round size.
|
|
32
|
+
*/
|
|
33
|
+
export declare const DuctFittingNode: z.ZodObject<{
|
|
34
|
+
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
35
|
+
name: z.ZodOptional<z.ZodString>;
|
|
36
|
+
parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
37
|
+
visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
38
|
+
camera: z.ZodOptional<z.ZodObject<{
|
|
39
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
40
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
41
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
42
|
+
perspective: "perspective";
|
|
43
|
+
orthographic: "orthographic";
|
|
44
|
+
}>>;
|
|
45
|
+
fov: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
zoom: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
|
|
49
|
+
id: z.ZodDefault<z.ZodTemplateLiteral<`duct-fitting_${string}`>>;
|
|
50
|
+
type: z.ZodDefault<z.ZodLiteral<"duct-fitting">>;
|
|
51
|
+
position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
52
|
+
rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
53
|
+
fittingType: z.ZodDefault<z.ZodEnum<{
|
|
54
|
+
elbow: "elbow";
|
|
55
|
+
tee: "tee";
|
|
56
|
+
cross: "cross";
|
|
57
|
+
reducer: "reducer";
|
|
58
|
+
transition: "transition";
|
|
59
|
+
}>>;
|
|
60
|
+
shape: z.ZodDefault<z.ZodEnum<{
|
|
61
|
+
round: "round";
|
|
62
|
+
rect: "rect";
|
|
63
|
+
oval: "oval";
|
|
64
|
+
}>>;
|
|
65
|
+
width: z.ZodDefault<z.ZodNumber>;
|
|
66
|
+
height: z.ZodDefault<z.ZodNumber>;
|
|
67
|
+
shape2: z.ZodDefault<z.ZodEnum<{
|
|
68
|
+
round: "round";
|
|
69
|
+
rect: "rect";
|
|
70
|
+
oval: "oval";
|
|
71
|
+
}>>;
|
|
72
|
+
width2: z.ZodDefault<z.ZodNumber>;
|
|
73
|
+
height2: z.ZodDefault<z.ZodNumber>;
|
|
74
|
+
angle: z.ZodDefault<z.ZodNumber>;
|
|
75
|
+
branchAngle: z.ZodDefault<z.ZodNumber>;
|
|
76
|
+
diameter: z.ZodDefault<z.ZodNumber>;
|
|
77
|
+
diameter2: z.ZodDefault<z.ZodNumber>;
|
|
78
|
+
ductMaterial: z.ZodDefault<z.ZodEnum<{
|
|
79
|
+
"sheet-metal": "sheet-metal";
|
|
80
|
+
flex: "flex";
|
|
81
|
+
"duct-board": "duct-board";
|
|
82
|
+
}>>;
|
|
83
|
+
system: z.ZodDefault<z.ZodEnum<{
|
|
84
|
+
supply: "supply";
|
|
85
|
+
return: "return";
|
|
86
|
+
}>>;
|
|
87
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
export type DuctFittingNode = z.infer<typeof DuctFittingNode>;
|
|
90
|
+
export type DuctFittingNodeId = DuctFittingNode['id'];
|
|
91
|
+
//# sourceMappingURL=duct-fitting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duct-fitting.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/duct-fitting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2D3B,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { BaseNode, nodeType, objectId } from '../base';
|
|
4
|
+
/**
|
|
5
|
+
* Duct fitting — the junction pieces that connect round duct segments:
|
|
6
|
+
* elbows (direction change), tees (branch takeoff), reducers (diameter
|
|
7
|
+
* transition).
|
|
8
|
+
*
|
|
9
|
+
* Phase 2 of the HVAC node system. Fittings are the first kind to expose
|
|
10
|
+
* typed ports (`def.ports`) — placement tools snap duct endpoints onto a
|
|
11
|
+
* fitting's collars, and the future system graph walks ports to decide
|
|
12
|
+
* connectivity.
|
|
13
|
+
*
|
|
14
|
+
* `position` is level-local meters; `rotation` is an XYZ euler in radians
|
|
15
|
+
* so a fitting can turn a horizontal run vertical (riser elbows).
|
|
16
|
+
*
|
|
17
|
+
* Local-frame conventions (before `rotation` is applied):
|
|
18
|
+
* - elbow: inlet faces -X, outlet turned by `angle` degrees in the
|
|
19
|
+
* XZ plane (90° → +Z).
|
|
20
|
+
* - tee: run along the X axis (ports face -X and +X), branch
|
|
21
|
+
* collar at `branchAngle`° from the +X (outlet) axis in the
|
|
22
|
+
* XZ plane — 90° a square straight tee, <90° a lateral
|
|
23
|
+
* leaning downstream toward the outlet, >90° leaning upstream
|
|
24
|
+
* toward the inlet — sized at `diameter2`.
|
|
25
|
+
* - cross: four-way junction — run along the X axis (ports face -X
|
|
26
|
+
* and +X) at the run profile, two opposed branches square to
|
|
27
|
+
* the run along ±Z (branch faces +Z, branch2 faces -Z) at the
|
|
28
|
+
* branch profile (`shape2` / `diameter2`).
|
|
29
|
+
* - reducer: inlet at `diameter` faces -X, outlet at `diameter2`
|
|
30
|
+
* faces +X.
|
|
31
|
+
* - transition: square-to-round — rect end at `width` × `height` faces
|
|
32
|
+
* -X, round end at `diameter2` faces +X. `diameter` carries
|
|
33
|
+
* the rect end's area-equivalent round size.
|
|
34
|
+
*/
|
|
35
|
+
export const DuctFittingNode = BaseNode.extend({
|
|
36
|
+
id: objectId('duct-fitting'),
|
|
37
|
+
type: nodeType('duct-fitting'),
|
|
38
|
+
// Level-local meters.
|
|
39
|
+
position: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
40
|
+
// XYZ euler radians.
|
|
41
|
+
rotation: z.tuple([z.number(), z.number(), z.number()]).default([0, 0, 0]),
|
|
42
|
+
fittingType: z.enum(['elbow', 'tee', 'cross', 'reducer', 'transition']).default('elbow'),
|
|
43
|
+
// Run-leg cross-section: round collars, or a rect / flat-oval profile
|
|
44
|
+
// matching the trunk the fitting sits in. Reducers ignore the shape.
|
|
45
|
+
// When non-round, `diameter` carries the area-equivalent round size
|
|
46
|
+
// (drives leg lengths + advertised ports).
|
|
47
|
+
shape: z.enum(['round', 'rect', 'oval']).default('rect'),
|
|
48
|
+
// Rect / oval run-leg profile in inches (used when shape ≠ 'round').
|
|
49
|
+
width: z.number().min(4).max(60).default(14),
|
|
50
|
+
height: z.number().min(3).max(40).default(8),
|
|
51
|
+
// Tee / cross BRANCH cross-section: a round collar at `diameter2` or a
|
|
52
|
+
// rect / oval profile matching the duct drawn off the tap. When
|
|
53
|
+
// non-round, `diameter2` carries the branch's area-equivalent round
|
|
54
|
+
// size. A cross's two opposed branches share this one profile.
|
|
55
|
+
shape2: z.enum(['round', 'rect', 'oval']).default('rect'),
|
|
56
|
+
// Rect / oval branch profile in inches (used when shape2 ≠ 'round').
|
|
57
|
+
width2: z.number().min(4).max(60).default(14),
|
|
58
|
+
height2: z.number().min(3).max(40).default(8),
|
|
59
|
+
// Elbow turn angle in degrees. Residential sheet-metal elbows come in
|
|
60
|
+
// 90° and 45°; adjustable elbows cover the range between. 0° is a
|
|
61
|
+
// straight coupling — what an elbow flattens to when its run is dragged
|
|
62
|
+
// into line with the fixed collar.
|
|
63
|
+
angle: z.number().min(0).max(90).default(90),
|
|
64
|
+
// Tee branch angle in degrees, measured off the +X (outlet) axis: 90°
|
|
65
|
+
// is a square straight tee, <90° a lateral whose branch sweeps
|
|
66
|
+
// downstream toward the outlet (flow merges), >90° leans the branch
|
|
67
|
+
// upstream toward the inlet. Ignored by every other fitting type.
|
|
68
|
+
branchAngle: z.number().min(45).max(135).default(90),
|
|
69
|
+
// Main (run/inlet) nominal diameter in inches.
|
|
70
|
+
diameter: z.number().min(2).max(48).default(6),
|
|
71
|
+
// Secondary diameter in inches — tee branch collar, reducer outlet.
|
|
72
|
+
// Ignored by elbows.
|
|
73
|
+
diameter2: z.number().min(2).max(48).default(6),
|
|
74
|
+
ductMaterial: z.enum(['sheet-metal', 'flex', 'duct-board']).default('sheet-metal'),
|
|
75
|
+
system: z.enum(['supply', 'return']).default('supply'),
|
|
76
|
+
slots: z.record(z.string(), z.string()).optional(),
|
|
77
|
+
}).describe(dedent `
|
|
78
|
+
Duct fitting - elbow, tee, cross, reducer, or square-to-round transition between duct runs.
|
|
79
|
+
- position: [x, y, z] level-local meters
|
|
80
|
+
- rotation: [x, y, z] euler radians
|
|
81
|
+
- fittingType: elbow | tee | cross | reducer | transition (rect end -X, round end +X)
|
|
82
|
+
- shape: round | rect | oval run legs (matches the trunk; ignored by reducer / transition)
|
|
83
|
+
- width / height: rect / oval run-leg profile in inches (transition: the rect end)
|
|
84
|
+
- shape2: round | rect | oval tee / cross branch (matches the duct drawn off the tap)
|
|
85
|
+
- width2 / height2: rect / oval branch profile in inches
|
|
86
|
+
- angle: elbow turn in degrees (45 or 90 typical)
|
|
87
|
+
- branchAngle: tee branch angle off the outlet axis (90 straight tee, 45 downstream lateral, 135 upstream); cross branches are always square
|
|
88
|
+
- diameter: main nominal diameter in inches
|
|
89
|
+
- diameter2: tee / cross branch / reducer outlet / transition round-end diameter in inches
|
|
90
|
+
- ductMaterial: sheet-metal | flex | duct-board
|
|
91
|
+
- system: supply | return
|
|
92
|
+
`);
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Round duct segment — a polyline of 3D points connected by cylindrical
|
|
4
|
+
* duct sections. Forced-air HVAC supply/return runs in US residential.
|
|
5
|
+
*
|
|
6
|
+
* Phase 1 of the HVAC node system: just the geometry primitive. Fittings,
|
|
7
|
+
* terminals, equipment, and typed ports come in later slices.
|
|
8
|
+
*
|
|
9
|
+
* Path coordinates are level-local meters: [x, y, z] tuples. y is height
|
|
10
|
+
* above the level floor. A duct hung at ceiling height through three points
|
|
11
|
+
* is e.g. `[[0, 2.6, 0], [3, 2.6, 0], [3, 2.6, 4]]`.
|
|
12
|
+
*
|
|
13
|
+
* Diameters are nominal US round-duct sizes in inches; the geometry
|
|
14
|
+
* builder converts to meters for the cylinder radius.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DuctSegmentNode: z.ZodObject<{
|
|
17
|
+
object: z.ZodDefault<z.ZodLiteral<"node">>;
|
|
18
|
+
name: z.ZodOptional<z.ZodString>;
|
|
19
|
+
parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
20
|
+
visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
21
|
+
camera: z.ZodOptional<z.ZodObject<{
|
|
22
|
+
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
23
|
+
target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
|
|
24
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
25
|
+
perspective: "perspective";
|
|
26
|
+
orthographic: "orthographic";
|
|
27
|
+
}>>;
|
|
28
|
+
fov: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
zoom: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
}, z.core.$strip>>;
|
|
31
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
|
|
32
|
+
id: z.ZodDefault<z.ZodTemplateLiteral<`duct-segment_${string}`>>;
|
|
33
|
+
type: z.ZodDefault<z.ZodLiteral<"duct-segment">>;
|
|
34
|
+
path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
|
|
35
|
+
shape: z.ZodDefault<z.ZodEnum<{
|
|
36
|
+
round: "round";
|
|
37
|
+
rect: "rect";
|
|
38
|
+
oval: "oval";
|
|
39
|
+
}>>;
|
|
40
|
+
diameter: z.ZodDefault<z.ZodNumber>;
|
|
41
|
+
width: z.ZodDefault<z.ZodNumber>;
|
|
42
|
+
height: z.ZodDefault<z.ZodNumber>;
|
|
43
|
+
roll: z.ZodDefault<z.ZodNumber>;
|
|
44
|
+
ductMaterial: z.ZodDefault<z.ZodEnum<{
|
|
45
|
+
spiral: "spiral";
|
|
46
|
+
"sheet-metal": "sheet-metal";
|
|
47
|
+
flex: "flex";
|
|
48
|
+
"duct-board": "duct-board";
|
|
49
|
+
}>>;
|
|
50
|
+
seamDetail: z.ZodDefault<z.ZodBoolean>;
|
|
51
|
+
insulated: z.ZodDefault<z.ZodBoolean>;
|
|
52
|
+
insulationR: z.ZodDefault<z.ZodNumber>;
|
|
53
|
+
system: z.ZodDefault<z.ZodEnum<{
|
|
54
|
+
supply: "supply";
|
|
55
|
+
return: "return";
|
|
56
|
+
}>>;
|
|
57
|
+
slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export type DuctSegmentNode = z.infer<typeof DuctSegmentNode>;
|
|
60
|
+
export type DuctSegmentNodeId = DuctSegmentNode['id'];
|
|
61
|
+
//# sourceMappingURL=duct-segment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duct-segment.d.ts","sourceRoot":"","sources":["../../../src/schema/nodes/duct-segment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyD3B,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA"}
|