@pascal-app/nodes 1.1.0 → 1.1.1
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 +3 -2
- package/dist/beam/definition.edit.d.ts.map +1 -1
- package/dist/beam/definition.edit.js +0 -2
- package/dist/beam/definition.render.d.ts.map +1 -1
- package/dist/beam/definition.render.js +2 -0
- package/dist/beam/floorplan.d.ts.map +1 -1
- package/dist/beam/floorplan.js +1 -2
- package/dist/block/definition.edit.d.ts.map +1 -1
- package/dist/block/definition.edit.js +0 -2
- package/dist/block/definition.render.d.ts.map +1 -1
- package/dist/block/definition.render.js +2 -0
- package/dist/block/floorplan.d.ts.map +1 -1
- package/dist/block/floorplan.js +1 -2
- package/dist/box-vent/definition.edit.d.ts.map +1 -1
- package/dist/box-vent/definition.edit.js +0 -2
- package/dist/box-vent/definition.render.d.ts.map +1 -1
- package/dist/box-vent/definition.render.js +2 -0
- package/dist/builtin-definitions.d.ts +57 -57
- package/dist/builtin-edit-contributions.d.ts +1 -1
- package/dist/cabinet/definition.edit.d.ts.map +1 -1
- package/dist/cabinet/definition.edit.js +0 -3
- package/dist/cabinet/definition.render.d.ts.map +1 -1
- package/dist/cabinet/definition.render.js +3 -0
- package/dist/cabinet/floorplan.js +1 -1
- package/dist/ceiling/definition.edit.d.ts.map +1 -1
- package/dist/ceiling/definition.edit.js +0 -2
- package/dist/ceiling/definition.render.d.ts.map +1 -1
- package/dist/ceiling/definition.render.js +2 -0
- package/dist/chimney/definition.edit.d.ts.map +1 -1
- package/dist/chimney/definition.edit.js +0 -2
- package/dist/chimney/definition.render.d.ts.map +1 -1
- package/dist/chimney/definition.render.js +2 -0
- package/dist/chimney/panel.js +1 -1
- package/dist/column/definition.edit.d.ts.map +1 -1
- package/dist/column/definition.edit.js +0 -3
- package/dist/column/definition.render.d.ts.map +1 -1
- package/dist/column/definition.render.js +3 -0
- package/dist/column/floorplan.d.ts.map +1 -1
- package/dist/column/floorplan.js +1 -2
- package/dist/construction-dimension/definition.edit.d.ts.map +1 -1
- package/dist/construction-dimension/definition.edit.js +0 -2
- package/dist/construction-dimension/definition.render.d.ts.map +1 -1
- package/dist/construction-dimension/definition.render.js +2 -0
- package/dist/construction-dimension/floorplan-tool.d.ts.map +1 -1
- package/dist/construction-dimension/floorplan-tool.js +2 -2
- package/dist/construction-dimension/floorplan.d.ts.map +1 -1
- package/dist/construction-dimension/floorplan.js +1 -2
- package/dist/cupola/definition.edit.d.ts.map +1 -1
- package/dist/cupola/definition.edit.js +0 -2
- package/dist/cupola/definition.render.d.ts.map +1 -1
- package/dist/cupola/definition.render.js +2 -0
- package/dist/definition-contributions.d.ts +1 -1
- package/dist/definition-contributions.d.ts.map +1 -1
- package/dist/door/definition.edit.d.ts.map +1 -1
- package/dist/door/definition.edit.js +1 -6
- package/dist/door/definition.render.d.ts.map +1 -1
- package/dist/door/definition.render.js +6 -0
- package/dist/door/floorplan.d.ts.map +1 -1
- package/dist/door/floorplan.js +1 -2
- package/dist/dormer/definition.edit.d.ts.map +1 -1
- package/dist/dormer/definition.edit.js +0 -2
- package/dist/dormer/definition.render.d.ts.map +1 -1
- package/dist/dormer/definition.render.js +2 -0
- package/dist/dormer/panel-position-section.js +1 -1
- package/dist/duct-fitting/definition.edit.d.ts.map +1 -1
- package/dist/duct-fitting/definition.edit.js +0 -2
- package/dist/duct-fitting/definition.render.d.ts.map +1 -1
- package/dist/duct-fitting/definition.render.js +2 -0
- package/dist/duct-segment/continuation-handle.d.ts +8 -0
- package/dist/duct-segment/continuation-handle.d.ts.map +1 -0
- package/dist/duct-segment/continuation-handle.js +36 -0
- package/dist/duct-segment/continuation.d.ts +1 -5
- package/dist/duct-segment/continuation.d.ts.map +1 -1
- package/dist/duct-segment/continuation.js +2 -36
- package/dist/duct-segment/definition.edit.d.ts.map +1 -1
- package/dist/duct-segment/definition.edit.js +0 -2
- package/dist/duct-segment/definition.render.d.ts.map +1 -1
- package/dist/duct-segment/definition.render.js +2 -0
- package/dist/duct-segment/floorplan.js +1 -1
- package/dist/duct-segment/selection.d.ts.map +1 -1
- package/dist/duct-segment/selection.js +2 -1
- package/dist/duct-segment/tool.d.ts.map +1 -1
- package/dist/duct-segment/tool.js +2 -1
- package/dist/duct-terminal/definition.edit.d.ts.map +1 -1
- package/dist/duct-terminal/definition.edit.js +0 -2
- package/dist/duct-terminal/definition.render.d.ts.map +1 -1
- package/dist/duct-terminal/definition.render.js +2 -0
- package/dist/elevator/definition.edit.d.ts.map +1 -1
- package/dist/elevator/definition.edit.js +0 -10
- package/dist/elevator/definition.render.d.ts.map +1 -1
- package/dist/elevator/definition.render.js +10 -0
- package/dist/eyebrow-vent/definition.edit.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.edit.js +0 -2
- package/dist/eyebrow-vent/definition.render.d.ts.map +1 -1
- package/dist/eyebrow-vent/definition.render.js +2 -0
- package/dist/fence/definition.edit.d.ts.map +1 -1
- package/dist/fence/definition.edit.js +0 -6
- package/dist/fence/definition.render.d.ts.map +1 -1
- package/dist/fence/definition.render.js +2 -0
- package/dist/fence-feature/definition.edit.d.ts.map +1 -1
- package/dist/fence-feature/definition.edit.js +0 -3
- package/dist/fence-feature/definition.render.d.ts.map +1 -1
- package/dist/fence-feature/definition.render.js +3 -0
- package/dist/floor-opening/definition.edit.d.ts.map +1 -1
- package/dist/floor-opening/definition.edit.js +1 -3
- package/dist/floor-opening/definition.render.d.ts.map +1 -1
- package/dist/floor-opening/definition.render.js +3 -0
- package/dist/floor-opening/floorplan-affordances.d.ts +150 -0
- package/dist/floor-opening/floorplan-affordances.d.ts.map +1 -0
- package/dist/floor-opening/floorplan-affordances.js +67 -0
- package/dist/floor-opening/floorplan.d.ts +2 -151
- package/dist/floor-opening/floorplan.d.ts.map +1 -1
- package/dist/floor-opening/floorplan.js +0 -66
- package/dist/gutter/definition.edit.d.ts.map +1 -1
- package/dist/gutter/definition.edit.js +0 -2
- package/dist/gutter/definition.render.d.ts.map +1 -1
- package/dist/gutter/definition.render.js +2 -0
- package/dist/hvac-equipment/definition.edit.d.ts.map +1 -1
- package/dist/hvac-equipment/definition.edit.js +0 -2
- package/dist/hvac-equipment/definition.render.d.ts.map +1 -1
- package/dist/hvac-equipment/definition.render.js +2 -0
- package/dist/imported-mesh/definition.edit.d.ts.map +1 -1
- package/dist/imported-mesh/definition.edit.js +0 -2
- package/dist/imported-mesh/definition.render.d.ts.map +1 -1
- package/dist/imported-mesh/definition.render.js +2 -0
- package/dist/item/definition.edit.d.ts.map +1 -1
- package/dist/item/definition.edit.js +1 -4
- package/dist/item/definition.render.d.ts.map +1 -1
- package/dist/item/definition.render.js +4 -0
- package/dist/item/floorplan.d.ts.map +1 -1
- package/dist/item/floorplan.js +1 -2
- package/dist/item/plan-symbols.js +1 -1
- package/dist/lean-to-extension/definition.edit.d.ts.map +1 -1
- package/dist/lean-to-extension/definition.edit.js +0 -2
- package/dist/lean-to-extension/definition.render.d.ts.map +1 -1
- package/dist/lean-to-extension/definition.render.js +2 -0
- package/dist/lineset/definition.edit.d.ts.map +1 -1
- package/dist/lineset/definition.edit.js +0 -2
- package/dist/lineset/definition.render.d.ts.map +1 -1
- package/dist/lineset/definition.render.js +2 -0
- package/dist/liquid-line/definition.edit.d.ts.map +1 -1
- package/dist/liquid-line/definition.edit.js +0 -2
- package/dist/liquid-line/definition.render.d.ts.map +1 -1
- package/dist/liquid-line/definition.render.js +2 -0
- package/dist/measurement/definition.edit.d.ts.map +1 -1
- package/dist/measurement/definition.edit.js +0 -2
- package/dist/measurement/definition.render.d.ts.map +1 -1
- package/dist/measurement/definition.render.js +2 -0
- package/dist/measurement/floorplan.d.ts.map +1 -1
- package/dist/measurement/floorplan.js +2 -3
- package/dist/pipe-fitting/definition.edit.d.ts.map +1 -1
- package/dist/pipe-fitting/definition.edit.js +0 -2
- package/dist/pipe-fitting/definition.render.d.ts.map +1 -1
- package/dist/pipe-fitting/definition.render.js +2 -0
- package/dist/pipe-segment/continuation-handle.d.ts +9 -0
- package/dist/pipe-segment/continuation-handle.d.ts.map +1 -0
- package/dist/pipe-segment/continuation-handle.js +35 -0
- package/dist/pipe-segment/continuation.d.ts +1 -5
- package/dist/pipe-segment/continuation.d.ts.map +1 -1
- package/dist/pipe-segment/continuation.js +2 -35
- package/dist/pipe-segment/definition.edit.d.ts.map +1 -1
- package/dist/pipe-segment/definition.edit.js +0 -2
- package/dist/pipe-segment/definition.render.d.ts.map +1 -1
- package/dist/pipe-segment/definition.render.js +2 -0
- package/dist/pipe-segment/floorplan.js +1 -1
- package/dist/pipe-segment/selection.d.ts.map +1 -1
- package/dist/pipe-segment/selection.js +2 -1
- package/dist/pipe-segment/tool.d.ts.map +1 -1
- package/dist/pipe-segment/tool.js +2 -1
- package/dist/pipe-trap/definition.edit.d.ts.map +1 -1
- package/dist/pipe-trap/definition.edit.js +0 -2
- package/dist/pipe-trap/definition.render.d.ts.map +1 -1
- package/dist/pipe-trap/definition.render.js +2 -0
- package/dist/procedural-item/definition.edit.d.ts.map +1 -1
- package/dist/procedural-item/definition.edit.js +1 -54
- package/dist/procedural-item/definition.render.d.ts.map +1 -1
- package/dist/procedural-item/definition.render.js +55 -2
- package/dist/ridge-vent/definition.edit.d.ts.map +1 -1
- package/dist/ridge-vent/definition.edit.js +0 -2
- package/dist/ridge-vent/definition.render.d.ts.map +1 -1
- package/dist/ridge-vent/definition.render.js +2 -0
- package/dist/roof/definition.d.ts +1 -1
- package/dist/roof/definition.edit.d.ts.map +1 -1
- package/dist/roof/definition.edit.js +0 -2
- package/dist/roof/definition.render.d.ts.map +1 -1
- package/dist/roof/definition.render.js +16 -5
- package/dist/roof/floorplan.d.ts.map +1 -1
- package/dist/roof/floorplan.js +1 -2
- package/dist/roof/renderer.d.ts.map +1 -1
- package/dist/roof/renderer.js +10 -5
- package/dist/roof-segment/definition.edit.d.ts.map +1 -1
- package/dist/roof-segment/definition.edit.js +0 -2
- package/dist/roof-segment/definition.render.d.ts.map +1 -1
- package/dist/roof-segment/definition.render.js +2 -0
- package/dist/separator/definition.edit.d.ts.map +1 -1
- package/dist/separator/definition.edit.js +0 -2
- package/dist/separator/definition.render.d.ts.map +1 -1
- package/dist/separator/definition.render.js +2 -0
- package/dist/separator/floorplan.js +1 -1
- package/dist/shared/opening-documentation.d.ts +1 -1
- package/dist/shared/opening-documentation.d.ts.map +1 -1
- package/dist/shared/opening-documentation.js +1 -2
- package/dist/shared/opening-placement-dimensions.d.ts.map +1 -1
- package/dist/shared/opening-placement-dimensions.js +1 -2
- package/dist/shelf/definition.edit.d.ts.map +1 -1
- package/dist/shelf/definition.edit.js +0 -2
- package/dist/shelf/definition.render.d.ts.map +1 -1
- package/dist/shelf/definition.render.js +2 -0
- package/dist/skylight/definition.edit.d.ts.map +1 -1
- package/dist/skylight/definition.edit.js +0 -2
- package/dist/skylight/definition.render.d.ts.map +1 -1
- package/dist/skylight/definition.render.js +2 -0
- package/dist/skylight/panel.js +1 -1
- package/dist/slab/definition.edit.d.ts.map +1 -1
- package/dist/slab/definition.edit.js +0 -4
- package/dist/slab/definition.render.d.ts.map +1 -1
- package/dist/slab/definition.render.js +4 -0
- package/dist/slab/floorplan.d.ts.map +1 -1
- package/dist/slab/floorplan.js +1 -2
- package/dist/solar-panel/definition.edit.d.ts.map +1 -1
- package/dist/solar-panel/definition.edit.js +0 -2
- package/dist/solar-panel/definition.render.d.ts.map +1 -1
- package/dist/solar-panel/definition.render.js +2 -0
- package/dist/spawn/definition.edit.d.ts.map +1 -1
- package/dist/spawn/definition.edit.js +0 -9
- package/dist/spawn/definition.render.d.ts.map +1 -1
- package/dist/spawn/definition.render.js +2 -0
- package/dist/stair/definition.edit.d.ts.map +1 -1
- package/dist/stair/definition.edit.js +0 -13
- package/dist/stair/definition.render.d.ts.map +1 -1
- package/dist/stair/definition.render.js +10 -0
- package/dist/stair/documentation.d.ts.map +1 -1
- package/dist/stair/documentation.js +1 -2
- package/dist/stair/floorplan.d.ts.map +1 -1
- package/dist/stair/floorplan.js +1 -2
- package/dist/stair/plan-entry.d.ts.map +1 -1
- package/dist/stair/plan-entry.js +1 -2
- package/dist/structural-grid/definition.edit.d.ts.map +1 -1
- package/dist/structural-grid/definition.edit.js +0 -2
- package/dist/structural-grid/definition.render.d.ts.map +1 -1
- package/dist/structural-grid/definition.render.js +2 -0
- package/dist/structural-grid/floorplan.js +1 -1
- package/dist/turbine-vent/definition.edit.d.ts.map +1 -1
- package/dist/turbine-vent/definition.edit.js +0 -2
- package/dist/turbine-vent/definition.render.d.ts.map +1 -1
- package/dist/turbine-vent/definition.render.js +2 -0
- package/dist/wall/contextual-dimensions.d.ts.map +1 -1
- package/dist/wall/contextual-dimensions.js +1 -2
- package/dist/wall/definition.edit.d.ts.map +1 -1
- package/dist/wall/definition.edit.js +0 -5
- package/dist/wall/definition.render.d.ts.map +1 -1
- package/dist/wall/definition.render.js +5 -0
- package/dist/wall/floorplan.d.ts.map +1 -1
- package/dist/wall/floorplan.js +1 -2
- package/dist/window/definition.edit.d.ts.map +1 -1
- package/dist/window/definition.edit.js +1 -6
- package/dist/window/definition.render.d.ts.map +1 -1
- package/dist/window/definition.render.js +6 -0
- package/dist/window/floorplan.d.ts.map +1 -1
- package/dist/window/floorplan.js +1 -2
- package/dist/zone/definition.edit.d.ts.map +1 -1
- package/dist/zone/definition.edit.js +0 -2
- package/dist/zone/definition.render.d.ts.map +1 -1
- package/dist/zone/definition.render.js +2 -0
- package/dist/zone/floorplan.d.ts.map +1 -1
- package/dist/zone/floorplan.js +1 -2
- package/dist/zone/room-clear-dimensions.d.ts.map +1 -1
- package/dist/zone/room-clear-dimensions.js +1 -2
- package/dist/zone/room-documentation.d.ts +1 -2
- package/dist/zone/room-documentation.d.ts.map +1 -1
- package/dist/zone/room-documentation.js +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/ridge-vent/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/ridge-vent/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AA6I7C,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,CAAC,OAAO,aAAa,CAiBhF,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { surfacePaintCapability } from '../shared/surface-paint.js';
|
|
2
|
-
import { buildRidgeVentFloorplan } from './floorplan.js';
|
|
3
2
|
import { ridgeVentParametrics } from './parametrics.js';
|
|
4
3
|
// Edge-to-arrow-center offset, matching the box-vent / chimney cadence.
|
|
5
4
|
const SIDE_HANDLE_OFFSET = 0.25;
|
|
@@ -135,7 +134,6 @@ export const ridgeVentEditContribution = {
|
|
|
135
134
|
},
|
|
136
135
|
parametrics: ridgeVentParametrics,
|
|
137
136
|
handles: ridgeVentHandles,
|
|
138
|
-
floorplan: buildRidgeVentFloorplan,
|
|
139
137
|
preview: () => import('./preview.js'),
|
|
140
138
|
tool: () => import('./tool.js'),
|
|
141
139
|
affordanceTools: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/ridge-vent/definition.render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/ridge-vent/definition.render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,CAAC,OAAO,aAAa,CAAC,GAAG;IACnF,IAAI,EAAE,YAAY,CAAA;CA0CnB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RidgeVentNode as RidgeVentNodeSchema } from '@pascal-app/core';
|
|
2
|
+
import { buildRidgeVentFloorplan } from './floorplan.js';
|
|
2
3
|
import { RidgeVentNode } from './schema.js';
|
|
3
4
|
export const ridgeVentRenderDefinition = {
|
|
4
5
|
kind: 'ridge-vent',
|
|
@@ -29,6 +30,7 @@ export const ridgeVentRenderDefinition = {
|
|
|
29
30
|
kind: 'parametric',
|
|
30
31
|
module: () => import('./renderer.js'),
|
|
31
32
|
},
|
|
33
|
+
floorplan: buildRidgeVentFloorplan,
|
|
32
34
|
presentation: {
|
|
33
35
|
label: 'Ridge Vent',
|
|
34
36
|
description: 'Ventilation strip running along the ridge of a roof segment.',
|
|
@@ -321,6 +321,6 @@ export declare const roofDefinition: import("@pascal-app/core").NodeDefinition<i
|
|
|
321
321
|
cavityInsulation: import("zod").ZodOptional<import("zod").ZodString>;
|
|
322
322
|
}, import("zod/v4/core").$strip>>;
|
|
323
323
|
slots: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
|
|
324
|
-
children: import("zod").ZodDefault<import("zod").ZodArray<import("zod").
|
|
324
|
+
children: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodString>>;
|
|
325
325
|
}, import("zod/v4/core").$strip>>;
|
|
326
326
|
//# sourceMappingURL=definition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/roof/definition.edit.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/roof/definition.edit.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAevE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAqFxC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CAwGtE,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { DRAFTING_SURFACE_EXTENSION_KEY, FLOORPLAN_NODE_EXTENSION_KEY, PANEL_MODEL_EXTENSION, } from '@pascal-app/editor';
|
|
2
2
|
import { MIN_ROOF_FOOTPRINT } from './definition.render.js';
|
|
3
|
-
import { buildRoofFloorplan } from './floorplan.js';
|
|
4
3
|
import { roofFloorplanAffectedIds, roofFloorplanSiblingOverrides } from './floorplan-overrides.js';
|
|
5
4
|
import { roofPaint } from './paint.js';
|
|
6
5
|
import { roofPanelModel } from './panel-model.js';
|
|
@@ -177,7 +176,6 @@ export const roofEditContribution = {
|
|
|
177
176
|
],
|
|
178
177
|
parametrics: roofParametrics,
|
|
179
178
|
handles: resolveRoofHandles,
|
|
180
|
-
floorplan: buildRoofFloorplan,
|
|
181
179
|
floorplanSiblingOverrides: roofFloorplanSiblingOverrides,
|
|
182
180
|
floorplanAffectedIds: roofFloorplanAffectedIds,
|
|
183
181
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/roof/definition.render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/roof/definition.render.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAqGxF,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { RoofNode as RoofNodeSchema, } from '@pascal-app/core';
|
|
1
|
+
import { RoofNode as RoofNodeSchema, roofFaceShapes, } from '@pascal-app/core';
|
|
2
|
+
import { buildRoofFloorplan } from './floorplan.js';
|
|
2
3
|
import { RoofNode } from './schema.js';
|
|
3
4
|
export const MIN_ROOF_FOOTPRINT = 1;
|
|
4
5
|
export const roofRenderDefinition = {
|
|
@@ -30,10 +31,10 @@ export const roofRenderDefinition = {
|
|
|
30
31
|
// Contribute a plan AABB to the alignment-guide candidate pool so a roof
|
|
31
32
|
// (and any moving sibling) snaps against the roof's outer silhouette.
|
|
32
33
|
// Roof has no centred-box footprint — it's the union of its
|
|
33
|
-
// `roof-segment` children — so we hand the bridge
|
|
34
|
-
// directly. The roof moves by its origin via
|
|
35
|
-
// only ever contributes static candidates; the
|
|
36
|
-
// never needs to apply to roofs.
|
|
34
|
+
// `roof-segment` children and its faces' outlines — so we hand the bridge
|
|
35
|
+
// a resolved `aabb` directly. The roof moves by its origin via
|
|
36
|
+
// `move-roof-tool`, so it only ever contributes static candidates; the
|
|
37
|
+
// relocatable-box path never needs to apply to roofs.
|
|
37
38
|
alignmentFootprint: (node, nodes) => {
|
|
38
39
|
const roof = node;
|
|
39
40
|
if (!nodes)
|
|
@@ -45,6 +46,15 @@ export const roofRenderDefinition = {
|
|
|
45
46
|
let maxX = Number.NEGATIVE_INFINITY;
|
|
46
47
|
let maxZ = Number.NEGATIVE_INFINITY;
|
|
47
48
|
let any = false;
|
|
49
|
+
for (const face of roofFaceShapes(roof, nodes)) {
|
|
50
|
+
for (const [wx, wz] of face.outline) {
|
|
51
|
+
minX = Math.min(minX, wx);
|
|
52
|
+
maxX = Math.max(maxX, wx);
|
|
53
|
+
minZ = Math.min(minZ, wz);
|
|
54
|
+
maxZ = Math.max(maxZ, wz);
|
|
55
|
+
any = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
48
58
|
for (const childId of roof.children ?? []) {
|
|
49
59
|
const segment = nodes[childId];
|
|
50
60
|
if (segment?.type !== 'roof-segment')
|
|
@@ -88,6 +98,7 @@ export const roofRenderDefinition = {
|
|
|
88
98
|
module: () => import('./system.js'),
|
|
89
99
|
priority: 3,
|
|
90
100
|
},
|
|
101
|
+
floorplan: buildRoofFloorplan,
|
|
91
102
|
presentation: {
|
|
92
103
|
label: 'Roof',
|
|
93
104
|
description: 'A pitched / hip / gable roof composed of one or more segments.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/roof/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/roof/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAGtB,KAAK,eAAe,EAIpB,KAAK,QAAQ,EAMd,MAAM,kBAAkB,CAAA;AAwCzB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMvD;AAqPD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAmPjG"}
|
package/dist/roof/floorplan.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { getGlazedRoofPlanLines, getRoofSegmentVisibleTopBounds, getSegmentSlopeFrame, roofPlanOverlapEntryOwns, subtractPolygonsFromPolygon, unionPolygons, } from '@pascal-app/core';
|
|
2
|
-
import { floorplanGeometryMetadata, readFloorplanContext } from '@pascal-app/editor';
|
|
1
|
+
import { floorplanGeometryMetadata, getGlazedRoofPlanLines, getRoofSegmentVisibleTopBounds, getSegmentSlopeFrame, readFloorplanContext, roofPlanOverlapEntryOwns, subtractPolygonsFromPolygon, unionPolygons, } from '@pascal-app/core';
|
|
3
2
|
import { getConicalRoofPlanFootprint, getRoofSegmentPlanLinework } from '../roof-segment/floorplan.js';
|
|
4
3
|
import { getRoofSurfaceCreases } from './roof-plan-creases.js';
|
|
5
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/roof/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/roof/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,QAAQ,EAMd,MAAM,kBAAkB,CAAA;AAiBzB,eAAO,MAAM,YAAY,sBAAuB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,gCAuLjE,CAAA;eAEc,YAAY"}
|
package/dist/roof/renderer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { hasSegmentMaterialOverride, isIndependentRoofSegment, useLiveNodeOverrides, useRegistry, useScene, } from '@pascal-app/core';
|
|
3
|
+
import { hasSegmentMaterialOverride, isIndependentRoofSegment, roofFaceOf, useLiveNodeOverrides, useRegistry, useRegistryVersion, useScene, } from '@pascal-app/core';
|
|
4
4
|
import { getRoofMaterialArray, isRevealAssembling, levelWallCladdingRef, levelWallFaceRef, NodeRenderer, subscribeRevealAssembling, useNodeEvents, useViewer, } from '@pascal-app/viewer';
|
|
5
5
|
import { useEffect, useLayoutEffect, useMemo, useRef } from 'react';
|
|
6
6
|
import { useShallow } from 'zustand/react/shallow';
|
|
@@ -57,13 +57,18 @@ export const RoofRenderer = ({ node: rawNode }) => {
|
|
|
57
57
|
const ids = [];
|
|
58
58
|
for (const segmentId of node.children ?? []) {
|
|
59
59
|
const seg = state.nodes[segmentId];
|
|
60
|
-
if (
|
|
60
|
+
if (seg?.type !== 'roof-segment')
|
|
61
61
|
continue;
|
|
62
62
|
for (const childId of seg.children ?? [])
|
|
63
63
|
ids.push(childId);
|
|
64
64
|
}
|
|
65
65
|
return ids;
|
|
66
66
|
}));
|
|
67
|
+
// Faces of other kinds (`capabilities.roofs`: a plugin's roof planes) render as their own kind,
|
|
68
|
+
// in the roof's frame, beside the shell its segments merge into. A plugin registers its kinds
|
|
69
|
+
// after the first mount: the version re-reads them.
|
|
70
|
+
useRegistryVersion();
|
|
71
|
+
const faceIds = useScene(useShallow((state) => (node.children ?? []).filter((childId) => roofFaceOf(state.nodes[childId]))));
|
|
67
72
|
// Segments that carry their own material/preset are rendered outside the
|
|
68
73
|
// segments-wrapper so they stay visible after edit mode exits — the merged
|
|
69
74
|
// shell skips them (see updateMergedRoofGeometry) to avoid overdraw.
|
|
@@ -75,7 +80,7 @@ export const RoofRenderer = ({ node: rawNode }) => {
|
|
|
75
80
|
const ids = [];
|
|
76
81
|
for (const segmentId of node.children ?? []) {
|
|
77
82
|
const seg = state.nodes[segmentId];
|
|
78
|
-
if (
|
|
83
|
+
if (seg?.type !== 'roof-segment')
|
|
79
84
|
continue;
|
|
80
85
|
if (hasSegmentMaterialOverride(seg) || isIndependentRoofSegment(seg))
|
|
81
86
|
ids.push(segmentId);
|
|
@@ -86,7 +91,7 @@ export const RoofRenderer = ({ node: rawNode }) => {
|
|
|
86
91
|
const ids = [];
|
|
87
92
|
for (const segmentId of node.children ?? []) {
|
|
88
93
|
const seg = state.nodes[segmentId];
|
|
89
|
-
if (
|
|
94
|
+
if (seg?.type !== 'roof-segment')
|
|
90
95
|
continue;
|
|
91
96
|
if (!hasSegmentMaterialOverride(seg) && !isIndependentRoofSegment(seg))
|
|
92
97
|
ids.push(segmentId);
|
|
@@ -118,6 +123,6 @@ export const RoofRenderer = ({ node: rawNode }) => {
|
|
|
118
123
|
placeholderGeometry.dispose();
|
|
119
124
|
};
|
|
120
125
|
}, [placeholderGeometry]);
|
|
121
|
-
return (_jsxs("group", { position: node.position, ref: ref, "rotation-y": node.rotation, visible: node.visible, ...handlers, children: [_jsx("mesh", { castShadow: true, geometry: placeholderGeometry, material: material, name: "merged-roof", receiveShadow: true }), _jsx("group", { name: "segments-wrapper", visible: false, children: unpaintedSegmentIds.map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId))) }), _jsx("group", { name: "painted-segments", children: paintedSegmentIds.map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId))) }), _jsx("group", { name: "roof-elements", children: roofElementIds.map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId))) })] }));
|
|
126
|
+
return (_jsxs("group", { position: node.position, ref: ref, "rotation-y": node.rotation, visible: node.visible, ...handlers, children: [_jsx("mesh", { castShadow: true, geometry: placeholderGeometry, material: material, name: "merged-roof", receiveShadow: true }), _jsx("group", { name: "segments-wrapper", visible: false, children: unpaintedSegmentIds.map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId))) }), _jsx("group", { name: "painted-segments", children: paintedSegmentIds.map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId))) }), _jsx("group", { name: "roof-elements", children: roofElementIds.map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId))) }), _jsx("group", { name: "roof-faces", children: faceIds.map((childId) => (_jsx(NodeRenderer, { nodeId: childId }, childId))) })] }));
|
|
122
127
|
};
|
|
123
128
|
export default RoofRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/roof-segment/definition.edit.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/roof-segment/definition.edit.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAgBvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAsS/C,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,OAAO,eAAe,CAiCpF,CAAA"}
|
|
@@ -2,7 +2,6 @@ import { getActiveRoofHeight, getPitchFromActiveRoofHeight, getRoofSegmentResize
|
|
|
2
2
|
import { getSegmentGridStep, isGridSnapActive, isMagneticSnapActive, PANEL_MODEL_EXTENSION, } from '@pascal-app/editor';
|
|
3
3
|
import { roofFloorplanAffectedIds } from '../roof/floorplan-overrides.js';
|
|
4
4
|
import { bearingWallThickness, catchRoofSideOnWalls, roofCatchWalls, segmentWallLine, } from '../roof/wall-catch.js';
|
|
5
|
-
import { buildRoofSegmentFloorplan } from './floorplan.js';
|
|
6
5
|
import { roofSegmentMoveTarget, roofSegmentResizeAffordance, roofSegmentRotateAffordance, } from './floorplan-affordances.js';
|
|
7
6
|
import { roofSegmentPaint } from './paint.js';
|
|
8
7
|
import { roofSegmentPanelModel } from './panel-model.js';
|
|
@@ -288,7 +287,6 @@ export const roofSegmentEditContribution = {
|
|
|
288
287
|
},
|
|
289
288
|
parametrics: roofSegmentParametrics,
|
|
290
289
|
handles: resolveRoofSegmentHandles,
|
|
291
|
-
floorplan: buildRoofSegmentFloorplan,
|
|
292
290
|
// Its roof draws the outline and creases from it: a live edit rebuilds that roof's plan.
|
|
293
291
|
floorplanAffectedIds: roofFloorplanAffectedIds,
|
|
294
292
|
// Body-move target. The generic Path 2 fallback writes plan coords
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/roof-segment/definition.render.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,OAAO,eAAe,CAAC,GAAG;IACvF,IAAI,EAAE,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/roof-segment/definition.render.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,OAAO,eAAe,CAAC,GAAG;IACvF,IAAI,EAAE,cAAc,CAAA;CA+DrB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RoofSegmentNode as RoofSegmentNodeSchema, } from '@pascal-app/core';
|
|
2
|
+
import { buildRoofSegmentFloorplan } from './floorplan.js';
|
|
2
3
|
import { matchRoofSegmentMeasurementFeature, roofSegmentMeasurementFeatures } from './measurement.js';
|
|
3
4
|
import { RoofSegmentNode } from './schema.js';
|
|
4
5
|
import { roofSegmentSlots } from './slots.js';
|
|
@@ -46,6 +47,7 @@ export const roofSegmentRenderDefinition = {
|
|
|
46
47
|
features: (node, ctx) => roofSegmentMeasurementFeatures(node, ctx.parent?.type === 'roof' ? ctx.parent : null),
|
|
47
48
|
match: (node, ctx, point, maxDistance) => matchRoofSegmentMeasurementFeature(node, ctx.parent?.type === 'roof' ? ctx.parent : null, point, maxDistance),
|
|
48
49
|
},
|
|
50
|
+
floorplan: buildRoofSegmentFloorplan,
|
|
49
51
|
presentation: {
|
|
50
52
|
label: 'Roof Segment',
|
|
51
53
|
description: 'A single pitched plane of a parent roof.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/separator/definition.edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/separator/definition.edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGvE,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,CAAC,OAAO,aAAa,CAShF,CAAA"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { buildSeparatorFloorplan } from './floorplan.js';
|
|
2
1
|
import { separatorMoveEndpointAffordance } from './floorplan-affordances.js';
|
|
3
2
|
export const separatorEditContribution = {
|
|
4
3
|
// Its pushes and end drags snap as a wall's do.
|
|
5
4
|
snapProfile: 'structural',
|
|
6
|
-
floorplan: buildSeparatorFloorplan,
|
|
7
5
|
// An invisible wall moves as a wall does, taking the ones joined to it along:
|
|
8
6
|
// its side arrows push it (the plan's `move-arrow`s, the 3D selection
|
|
9
7
|
// handles) and its ends drag, on the plan and in 3D.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/separator/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/separator/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGvE,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,CAAC,OAAO,aAAa,CAAC,GAAG;IACnF,IAAI,EAAE,WAAW,CAAA;CA2BlB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SeparatorNode } from '@pascal-app/core';
|
|
2
|
+
import { buildSeparatorFloorplan } from './floorplan.js';
|
|
2
3
|
export const separatorRenderDefinition = {
|
|
3
4
|
kind: 'separator',
|
|
4
5
|
bake: 'strip',
|
|
@@ -18,6 +19,7 @@ export const separatorRenderDefinition = {
|
|
|
18
19
|
dirtyTracking: false,
|
|
19
20
|
rendersChildren: false,
|
|
20
21
|
renderer: { kind: 'parametric', module: () => import('./renderer.js') },
|
|
22
|
+
floorplan: buildSeparatorFloorplan,
|
|
21
23
|
presentation: {
|
|
22
24
|
icon: { kind: 'iconify', name: 'lucide:split' },
|
|
23
25
|
label: 'Separator',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AnyNode, DoorNode, FloorplanGeometry, WallNode, WindowNode } from '@pascal-app/core';
|
|
2
|
-
import { type FloorplanSchedule } from '@pascal-app/
|
|
2
|
+
import { type FloorplanSchedule } from '@pascal-app/core';
|
|
3
3
|
import { type ConstructionLengthProfile, type ConstructionLinearUnit } from './construction-length.js';
|
|
4
4
|
type OpeningNode = DoorNode | WindowNode;
|
|
5
5
|
export type OpeningConstructionType = 'framed' | 'masonry';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opening-documentation.d.ts","sourceRoot":"","sources":["../../src/shared/opening-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,iBAAiB,EAEjB,QAAQ,EACR,UAAU,EACX,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"opening-documentation.d.ts","sourceRoot":"","sources":["../../src/shared/opening-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,iBAAiB,EAEjB,QAAQ,EACR,UAAU,EACX,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAEL,KAAK,iBAAiB,EAQvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAE5B,MAAM,uBAAuB,CAAA;AAE9B,KAAK,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;AAGxC,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,SAAS,CAAA;AAC1D,MAAM,MAAM,yBAAyB,GACjC,SAAS,GACT,eAAe,GACf,iBAAiB,GACjB,gBAAgB,CAAA;AAEpB,MAAM,MAAM,6BAA6B,GAAG;IAC1C,gBAAgB,EAAE,uBAAuB,CAAA;IACzC,SAAS,EAAE,yBAAyB,CAAA;IACpC,cAAc,EAAE,YAAY,GAAG,cAAc,CAAA;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,+FAA+F;IAC/F,gBAAgB,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpD,CAAA;AAsBD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,GAAG,yBAAyB,CAE5B;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,GAAG,yBAAyB,CAE5B;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,sBAAsB,CAAA;IAC5B,OAAO,CAAC,EAAE,yBAAyB,CAAA;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,iBAAiB,GAAG,IAAI,CAwC3B;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACnC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,sBAAsB,CAAA;IAC5B,OAAO,CAAC,EAAE,yBAAyB,CAAA;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,iBAAiB,GAAG,IAAI,CA8C3B;AAwBD,eAAO,MAAM,kBAAkB,QAAmB,CAAA;AAClD,eAAO,MAAM,wBAAwB,QAAqB,CAAA;AAC1D,eAAO,MAAM,qBAAqB,QAAqB,CAAA;AACvD,eAAO,MAAM,wBAAwB,QAAqB,CAAA;AAC1D,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,QAAoB,CAAA;AAErD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,yBAAyB,GAAG,SAAS,EAChD,EACE,aAAkB,EAClB,MAAkB,EAClB,QAAgB,GACjB,GAAE;IACD,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iGAAiG;IACjG,QAAQ,CAAC,EAAE,OAAO,CAAA;CACd,GACL,iBAAiB,GAAG,IAAI,CA2I1B;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,WAAW,GACnB,6BAA6B,CAoB/B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { doorHandleStyle, getDoorOpeningSize, getOpeningFloorDatum, getWallLocalFaceZ, resolveHostedOpeningFrameDepth, wallSupportForNodes, } from '@pascal-app/core';
|
|
2
|
-
import { resolveMarkDetail, withFloorplanGeometryMetadata, } from '@pascal-app/editor';
|
|
1
|
+
import { doorHandleStyle, getDoorOpeningSize, getOpeningFloorDatum, getWallLocalFaceZ, resolveHostedOpeningFrameDepth, resolveMarkDetail, wallSupportForNodes, withFloorplanGeometryMetadata, } from '@pascal-app/core';
|
|
3
2
|
import { formatConstructionLength, } from './construction-length.js';
|
|
4
3
|
function openingLevelData(openings, nodes, kind) {
|
|
5
4
|
let drafted;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opening-placement-dimensions.d.ts","sourceRoot":"","sources":["../../src/shared/opening-placement-dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,iBAAiB,EAEtB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"opening-placement-dimensions.d.ts","sourceRoot":"","sources":["../../src/shared/opening-placement-dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EASpB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAA;AAIzB;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,QAAQ,GAAG,UAAU,EAC9B,GAAG,EAAE,eAAe,GACnB,iBAAiB,EAAE,CAmHrB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { computeOpeningGuides, getDoorOpeningSize, getWallFaceOffsets, isCurvedWall, openingHostFacing, useScene, } from '@pascal-app/core';
|
|
2
|
-
import { readFloorplanContext } from '@pascal-app/editor';
|
|
1
|
+
import { computeOpeningGuides, getDoorOpeningSize, getWallFaceOffsets, isCurvedWall, openingHostFacing, readFloorplanContext, useScene, } from '@pascal-app/core';
|
|
3
2
|
import { formatConstructionLength } from './construction-length.js';
|
|
4
3
|
import { resolveWallOpeningCeiling } from './wall-opening-ceiling.js';
|
|
5
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/shelf/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/shelf/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAOvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAkIzC,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,CAAC,OAAO,SAAS,CAgCxE,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { restingFloorplanAffectedIds } from '../shared/resting-surface-plan.js';
|
|
2
2
|
import { sanitizeShelfDimensions } from './dimensions.js';
|
|
3
|
-
import { buildShelfFloorplan } from './floorplan.js';
|
|
4
3
|
import { shelfResizeAffordance, shelfRotateAffordance } from './floorplan-affordances.js';
|
|
5
4
|
import { shelfFloorplanMoveTarget } from './floorplan-move.js';
|
|
6
5
|
import { shelfPaint } from './paint.js';
|
|
@@ -127,7 +126,6 @@ export const shelfEditContribution = {
|
|
|
127
126
|
},
|
|
128
127
|
parametrics: shelfParametrics,
|
|
129
128
|
handles: shelfHandles,
|
|
130
|
-
floorplan: buildShelfFloorplan,
|
|
131
129
|
floorplanAffectedIds: restingFloorplanAffectedIds,
|
|
132
130
|
// 2D move handler — Path 1 in `FloorplanRegistryMoveOverlay`. Without
|
|
133
131
|
// this the overlay falls through to Path 2 which stomps the SVG
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/shelf/definition.render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/shelf/definition.render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAKvE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,CAAC,OAAO,SAAS,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAuH3F,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { shelfSlots } from '@pascal-app/core';
|
|
2
2
|
import { staticBatchable } from '../shared/node-batch/batchable.js';
|
|
3
3
|
import { sanitizeShelfDimensions } from './dimensions.js';
|
|
4
|
+
import { buildShelfFloorplan } from './floorplan.js';
|
|
4
5
|
import { buildShelfGeometry, shelfRowSurfaceYs } from './geometry.js';
|
|
5
6
|
import { ShelfNode } from './schema.js';
|
|
6
7
|
export const shelfRenderDefinition = {
|
|
@@ -109,6 +110,7 @@ export const shelfRenderDefinition = {
|
|
|
109
110
|
JSON.stringify(s.slots ?? null),
|
|
110
111
|
]);
|
|
111
112
|
},
|
|
113
|
+
floorplan: buildShelfFloorplan,
|
|
112
114
|
presentation: {
|
|
113
115
|
label: 'Shelf',
|
|
114
116
|
description: 'A configurable shelving unit. Items host on each row.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/skylight/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/skylight/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAOvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AA2M5C,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,OAAO,YAAY,CA4B9E,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { buildSkylightFloorplan } from './floorplan.js';
|
|
2
1
|
import { closeSkylightOpenState, isOperableSkylightNode, toggleSkylightOpenState, } from './interaction.js';
|
|
3
2
|
import { skylightParametrics } from './parametrics.js';
|
|
4
3
|
// In-world handle constants. Offsets are measured from the skylight's
|
|
@@ -192,7 +191,6 @@ export const skylightEditContribution = {
|
|
|
192
191
|
snapProfile: 'item',
|
|
193
192
|
parametrics: skylightParametrics,
|
|
194
193
|
handles: skylightHandles,
|
|
195
|
-
floorplan: buildSkylightFloorplan,
|
|
196
194
|
preview: () => import('./preview.js'),
|
|
197
195
|
tool: () => import('./tool.js'),
|
|
198
196
|
affordanceTools: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/skylight/definition.render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/skylight/definition.render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,OAAO,YAAY,CAAC,GAAG;IACjF,IAAI,EAAE,UAAU,CAAA;CAkDjB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SkylightNode as SkylightNodeSchema, } from '@pascal-app/core';
|
|
2
|
+
import { buildSkylightFloorplan } from './floorplan.js';
|
|
2
3
|
import { buildSkylightRoofCut } from './roof-cut.js';
|
|
3
4
|
import { SkylightNode } from './schema.js';
|
|
4
5
|
export const skylightRenderDefinition = {
|
|
@@ -37,6 +38,7 @@ export const skylightRenderDefinition = {
|
|
|
37
38
|
module: () => import('./system.js'),
|
|
38
39
|
priority: 3,
|
|
39
40
|
},
|
|
41
|
+
floorplan: buildSkylightFloorplan,
|
|
40
42
|
presentation: {
|
|
41
43
|
label: 'Skylight',
|
|
42
44
|
description: 'Framed glass opening on a roof segment.',
|
package/dist/skylight/panel.js
CHANGED
|
@@ -144,7 +144,7 @@ export default function SkylightPanel() {
|
|
|
144
144
|
let hi_z = Number.NEGATIVE_INFINITY;
|
|
145
145
|
for (const childId of roof.children ?? []) {
|
|
146
146
|
const seg = scenestate.nodes[childId];
|
|
147
|
-
if (
|
|
147
|
+
if (seg?.type !== 'roof-segment')
|
|
148
148
|
continue;
|
|
149
149
|
const segObj = sceneRegistry.nodes.get(seg.id);
|
|
150
150
|
if (!segObj)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/slab/definition.edit.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/slab/definition.edit.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAkBvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AA0NxC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CAiDtE,CAAA"}
|
|
@@ -2,7 +2,6 @@ import { MIN_SLAB_THICKNESS, markSlabChangeDependents, pointInPolygon2D, syncSta
|
|
|
2
2
|
import { clearStructuralElevationGuide, DRAFTING_SURFACE_EXTENSION_KEY, publishStructuralElevationGuide, resolveStructuralElevationSnap, } from '@pascal-app/editor';
|
|
3
3
|
import { sameOutlineSurfaceCounterparts } from '../shared/surface-counterparts.js';
|
|
4
4
|
import { applySlabBaseElevationChange, applySlabThicknessChange, applySlabTopChange, getSlabBaseElevation, slabElevationUpperBound, } from './elevation-limit.js';
|
|
5
|
-
import { buildSlabFloorplan } from './floorplan.js';
|
|
6
5
|
import { slabAddVertexAffordance, slabDeleteVertexAffordance, slabMoveEdgeAffordance, slabMoveVertexAffordance, } from './floorplan-affordances.js';
|
|
7
6
|
import { slabFloorplanMoveTarget } from './floorplan-move.js';
|
|
8
7
|
import { slabPaint } from './paint.js';
|
|
@@ -205,9 +204,6 @@ export const slabEditContribution = {
|
|
|
205
204
|
// The fill reads walls + sibling slabs via ctx (per-edge render offsets),
|
|
206
205
|
// so committed sibling edits must invalidate the cached floor-plan entry.
|
|
207
206
|
floorplanDependsOnSiblings: true,
|
|
208
|
-
// Stage C: floor-plan rendering. Legacy `slabPolygons` short-circuits
|
|
209
|
-
// to [] when slab is registered (see floorplan-panel.tsx).
|
|
210
|
-
floorplan: buildSlabFloorplan,
|
|
211
207
|
// 2D move handler — translates polygon by cursor delta from first
|
|
212
208
|
// pointer position. The 3D `MoveSlabTool` in `affordanceTools.move`
|
|
213
209
|
// skips events sourced from the 2D scene so the two paths don't
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/slab/definition.render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/slab/definition.render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAMvE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CA8FxF,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { liftedManualSlab, pointInPolygon2D, slabSlots, } from '@pascal-app/core';
|
|
2
2
|
import { surfaceBatchable } from '../shared/node-batch/batchable.js';
|
|
3
3
|
import { polygonMeasurementFeatures } from '../shared/polygon-measurement.js';
|
|
4
|
+
import { buildSlabFloorplan } from './floorplan.js';
|
|
4
5
|
import { buildSlabGeometry } from './geometry.js';
|
|
5
6
|
import { slabQuickMeasurement } from './quick-measurement.js';
|
|
6
7
|
import { SlabNode } from './schema.js';
|
|
@@ -79,6 +80,9 @@ export const slabRenderDefinition = {
|
|
|
79
80
|
module: () => import('./system.js'),
|
|
80
81
|
priority: 4,
|
|
81
82
|
},
|
|
83
|
+
// Stage C: floor-plan rendering. Legacy `slabPolygons` short-circuits
|
|
84
|
+
// to [] when slab is registered (see floorplan-panel.tsx).
|
|
85
|
+
floorplan: buildSlabFloorplan,
|
|
82
86
|
presentation: {
|
|
83
87
|
label: 'Slab',
|
|
84
88
|
description: 'A polygon-bounded floor surface that hosts items on top.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/slab/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/slab/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EAKpB,KAAK,QAAQ,EAEd,MAAM,kBAAkB,CAAA;AAEzB;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAE3D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAgGjG"}
|
package/dist/slab/floorplan.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { cutterContextNodes, getRenderableSlabPolygon, hostedCutterHoles, isDerivedNode, slabPolygonContextFromGeometry, } from '@pascal-app/core';
|
|
2
|
-
import { readFloorplanContext } from '@pascal-app/editor';
|
|
1
|
+
import { cutterContextNodes, getRenderableSlabPolygon, hostedCutterHoles, isDerivedNode, readFloorplanContext, slabPolygonContextFromGeometry, } from '@pascal-app/core';
|
|
3
2
|
/**
|
|
4
3
|
* Whether the plan offers the slab's outline and hole handles: only a slab the
|
|
5
4
|
* user drew. A floor plate's outline (and its room-cut holes) follow the rooms
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/solar-panel/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/solar-panel/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAwN9C,eAAO,MAAM,0BAA0B,EAAE,oBAAoB,CAAC,OAAO,cAAc,CAalF,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { buildSolarPanelFloorplan } from './floorplan.js';
|
|
2
1
|
import { solarPanelParametrics } from './parametrics.js';
|
|
3
2
|
// Handle constants — same scheme as the skylight: edge-to-arrow-center
|
|
4
3
|
// offsets that need to clear half the chevron's body (~13 cm at default
|
|
@@ -200,7 +199,6 @@ export const solarPanelEditContribution = {
|
|
|
200
199
|
snapProfile: 'item',
|
|
201
200
|
parametrics: solarPanelParametrics,
|
|
202
201
|
handles: solarPanelHandles,
|
|
203
|
-
floorplan: buildSolarPanelFloorplan,
|
|
204
202
|
preview: () => import('./preview.js'),
|
|
205
203
|
tool: () => import('./tool.js'),
|
|
206
204
|
affordanceTools: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/solar-panel/definition.render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/solar-panel/definition.render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,eAAO,MAAM,0BAA0B,EAAE,oBAAoB,CAAC,OAAO,cAAc,CAAC,GAAG;IACrF,IAAI,EAAE,aAAa,CAAA;CA0CpB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SolarPanelNode as SolarPanelNodeSchema } from '@pascal-app/core';
|
|
2
|
+
import { buildSolarPanelFloorplan } from './floorplan.js';
|
|
2
3
|
import { SolarPanelNode } from './schema.js';
|
|
3
4
|
export const solarPanelRenderDefinition = {
|
|
4
5
|
kind: 'solar-panel',
|
|
@@ -29,6 +30,7 @@ export const solarPanelRenderDefinition = {
|
|
|
29
30
|
kind: 'parametric',
|
|
30
31
|
module: () => import('./renderer.js'),
|
|
31
32
|
},
|
|
33
|
+
floorplan: buildSolarPanelFloorplan,
|
|
32
34
|
presentation: {
|
|
33
35
|
label: 'Solar Panel',
|
|
34
36
|
description: 'Grid of photovoltaic panels mounted on a roof segment.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/spawn/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/spawn/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAIvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AA8CzC,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,CAAC,OAAO,SAAS,CAcxE,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { buildSpawnFloorplan } from './floorplan.js';
|
|
2
1
|
import { spawnRotateAffordance } from './floorplan-affordances.js';
|
|
3
2
|
import { spawnFloorplanMoveTarget } from './floorplan-move.js';
|
|
4
3
|
import { spawnParametrics } from './parametrics.js';
|
|
@@ -43,14 +42,6 @@ export const spawnEditContribution = {
|
|
|
43
42
|
snapProfile: 'item',
|
|
44
43
|
parametrics: spawnParametrics,
|
|
45
44
|
handles: [spawnRotateHandle(), spawnMoveHandle()],
|
|
46
|
-
// Stage C migration: floor-plan rendering via def.floorplan.
|
|
47
|
-
// floorplan-panel.tsx's `floorplanSpawnEntries` short-circuits to []
|
|
48
|
-
// when `nodeRegistry.has('spawn')`, so this builder is the single
|
|
49
|
-
// path. FloorplanRegistryLayer renders + handles click-to-select;
|
|
50
|
-
// FloorplanRegistryActionMenu handles move / duplicate (disabled) /
|
|
51
|
-
// delete. Legacy spawn click handlers in FloorplanNodeLayer become
|
|
52
|
-
// dead code once Phase 6 cleanup removes the [] entries path.
|
|
53
|
-
floorplan: buildSpawnFloorplan,
|
|
54
45
|
floorplanMoveTarget: spawnFloorplanMoveTarget,
|
|
55
46
|
floorplanAffordances: {
|
|
56
47
|
'spawn-rotate': spawnRotateAffordance,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/spawn/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/spawn/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,CAAC,OAAO,SAAS,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CA+C3F,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { buildSpawnFloorplan } from './floorplan.js';
|
|
1
2
|
import { SpawnNode } from './schema.js';
|
|
2
3
|
export const spawnRenderDefinition = {
|
|
3
4
|
kind: 'spawn',
|
|
@@ -35,6 +36,7 @@ export const spawnRenderDefinition = {
|
|
|
35
36
|
kind: 'parametric',
|
|
36
37
|
module: () => import('./renderer.js'),
|
|
37
38
|
},
|
|
39
|
+
floorplan: buildSpawnFloorplan,
|
|
38
40
|
presentation: {
|
|
39
41
|
label: 'Spawn Point',
|
|
40
42
|
description: 'Player or camera origin within a level. One per level.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/stair/definition.edit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/stair/definition.edit.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAYvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AA8XzC,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,CAAC,OAAO,SAAS,CA8CxE,CAAA"}
|