@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,5 +1,4 @@
|
|
|
1
1
|
import { computeStairSegmentFloorStackTransforms, planStairSweepEdit, resolveStairTotalRise, resolveStairWinder, useScene, } from '@pascal-app/core';
|
|
2
|
-
import { buildStairFloorplan } from './floorplan.js';
|
|
3
2
|
import { curvedStairInnerRadiusAffordance, curvedStairSweepAffordance, curvedStairWidthAffordance, segmentLengthAffordance, segmentWidthAffordance, stairRotateAffordance, } from './floorplan-affordances.js';
|
|
4
3
|
import { stairFloorplanMoveTarget } from './floorplan-move.js';
|
|
5
4
|
import { stairPaint } from './paint.js';
|
|
@@ -317,11 +316,6 @@ function stairHandles(node) {
|
|
|
317
316
|
return handles;
|
|
318
317
|
}
|
|
319
318
|
export const stairEditContribution = {
|
|
320
|
-
extensions: {
|
|
321
|
-
'pascal:editor/floorplan': {
|
|
322
|
-
linkedLevelIds: (node) => node.toLevelId && node.toLevelId !== node.parentId ? [node.toLevelId] : [],
|
|
323
|
-
},
|
|
324
|
-
},
|
|
325
319
|
snapProfile: 'structural',
|
|
326
320
|
// A footprint with a clear front: you approach a stair from the low end,
|
|
327
321
|
// which sits on the -Z side of the run (the run ascends along +Z). Show the
|
|
@@ -348,13 +342,6 @@ export const stairEditContribution = {
|
|
|
348
342
|
tool: () => import('./tool.js'),
|
|
349
343
|
parametrics: stairParametrics,
|
|
350
344
|
handles: stairHandles,
|
|
351
|
-
// Stage C — stair is the parent; it walks its `stair-segment` children
|
|
352
|
-
// via `ctx.children` and emits the whole stack as one registry entry.
|
|
353
|
-
// Each flight's transform depends on every prior sibling's
|
|
354
|
-
// `length` / `height` / `attachmentSide`, so individual segments can't
|
|
355
|
-
// compute their own polygon in isolation. See
|
|
356
|
-
// `nodes/src/stair/floorplan.ts` for the emitter.
|
|
357
|
-
floorplan: buildStairFloorplan,
|
|
358
345
|
floorplanMoveTarget: stairFloorplanMoveTarget,
|
|
359
346
|
// 2D drag affordances mirror the 3D in-world arrows on selected stairs:
|
|
360
347
|
// - `segment-width` / `segment-length` drive per-segment side & length
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/stair/definition.render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/stair/definition.render.ts"],"names":[],"mappings":"AAQA,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;CA0E3F,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getStairFloorPlacedFootprints, StairNode as StairNodeSchema, stairFootprintAABB, stairSlots, } from '@pascal-app/core';
|
|
2
|
+
import { buildStairFloorplan } from './floorplan.js';
|
|
2
3
|
import { StairNode } from './schema.js';
|
|
3
4
|
export const stairRenderDefinition = {
|
|
4
5
|
kind: 'stair',
|
|
@@ -52,6 +53,15 @@ export const stairRenderDefinition = {
|
|
|
52
53
|
module: () => import('./system.js'),
|
|
53
54
|
priority: 3,
|
|
54
55
|
},
|
|
56
|
+
// Stage C — stair is the parent; it walks its `stair-segment` children
|
|
57
|
+
// via `ctx.children` and emits the whole stack as one registry entry.
|
|
58
|
+
// Each flight's transform depends on every prior sibling's
|
|
59
|
+
// `length` / `height` / `attachmentSide`, so individual segments can't
|
|
60
|
+
// compute their own polygon in isolation. See
|
|
61
|
+
// `nodes/src/stair/floorplan.ts` for the emitter.
|
|
62
|
+
floorplan: buildStairFloorplan,
|
|
63
|
+
// A stair that climbs to an upper floor shows on that floor's plan too.
|
|
64
|
+
floorplanLinkedLevelIds: (node) => node.toLevelId && node.toLevelId !== node.parentId ? [node.toLevelId] : [],
|
|
55
65
|
presentation: {
|
|
56
66
|
label: 'Stair',
|
|
57
67
|
description: 'A stair composed of one or more flights with configurable treads, risers, railings.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentation.d.ts","sourceRoot":"","sources":["../../src/stair/documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"documentation.d.ts","sourceRoot":"","sources":["../../src/stair/documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAGtB,KAAK,eAAe,EAMpB,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAMzB,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EAEpB,MAAM,cAAc,CAAA;AAUrB,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAAA;AAE9C,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACvC,kBAAkB,CAUpB;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,kBAAkB,GAC5B,wBAAwB,GAAG,IAAI,CA0BjC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,eAAe,GACnB,iBAAiB,EAAE,CAYrB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { resolveStairArcDimensions, resolveStairTotalRise, resolveStairWinder, useScene, } from '@pascal-app/core';
|
|
2
|
-
import { floorplanGeometryMetadata, readFloorplanContext } from '@pascal-app/editor';
|
|
1
|
+
import { floorplanGeometryMetadata, readFloorplanContext, resolveStairArcDimensions, resolveStairTotalRise, resolveStairWinder, useScene, } from '@pascal-app/core';
|
|
3
2
|
import { formatConstructionLength, } from '../shared/construction-length.js';
|
|
4
3
|
const ANNOTATION_OFFSET = 0.28;
|
|
5
4
|
const ANNOTATION_FONT_SIZE = 0.125;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/stair/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,eAAe,EACf,SAAS,EAEV,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/stair/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,eAAe,EACf,SAAS,EAEV,MAAM,kBAAkB,CAAA;AA+BzB,oEAAoE;AACpE,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,EACnB,GAAG,EAAE,eAAe,GACnB,iBAAiB,GAAG,IAAI,CAoiB1B"}
|
package/dist/stair/floorplan.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { computeSegmentTransforms, measureStairDetail, resolveStairArcDimensions, resolveStairHandrailPaths, resolveStairRailPaths, resolveStairWalkingPaths, rotateXZ, } from '@pascal-app/core';
|
|
1
|
+
import { buildSvgAnnularSectorPath, buildSvgArcPath, buildSvgArrowHeadPoints, computeSegmentTransforms, floorplanGeometryMetadata, getArcPlanPoint, measureStairDetail, resolveStairArcDimensions, resolveStairHandrailPaths, resolveStairRailPaths, resolveStairWalkingPaths, rotateXZ, } from '@pascal-app/core';
|
|
2
2
|
// Offset from the stair's footprint edge to the rotation chevron's
|
|
3
3
|
// origin. Same magnitude as `STAIR_ROTATE_CORNER_OFFSET` in
|
|
4
4
|
// `definition.ts` so the 2D handle visually lines up with where the 3D
|
|
5
5
|
// curved-arrow gizmo would sit at the matching world point.
|
|
6
6
|
const STAIR_ROTATE_PLAN_OFFSET = 0.4;
|
|
7
|
-
import { buildSvgAnnularSectorPath, buildSvgArcPath, buildSvgArrowHeadPoints, floorplanGeometryMetadata, getArcPlanPoint, } from '@pascal-app/editor';
|
|
8
7
|
import { buildStairDocumentation, resolveStairPlanDirection, resolveStraightStairDirectionArrow, stairPlanBreakStep, } from './documentation.js';
|
|
9
8
|
import { buildFloorplanStairEntry } from './plan-entry.js';
|
|
10
9
|
/** The stair parent emits its complete cumulative segment chain. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-entry.d.ts","sourceRoot":"","sources":["../../src/stair/plan-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"plan-entry.d.ts","sourceRoot":"","sources":["../../src/stair/plan-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAkB5E,KAAK,oBAAoB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAA;AAC5D,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACvC,YAAY,EAAE,OAAO,EAAE,CAAA;IACvB,OAAO,EAAE,gBAAgB,CAAA;IACzB,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,SAAS,EAAE,OAAO,EAAE,EAAE,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,wBAAwB,GAAG,IAAI,CAAA;IACtC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAA;IACxB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,0BAA0B,EAAE,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AA8TD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,qBAAqB,EAChC,aAAa,UAAO,GACnB,OAAO,EAAE,CA0BX;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,cAAc,UAAQ,GACrB,mBAAmB,GAAG,IAAI,CAiG5B"}
|
package/dist/stair/plan-entry.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { computeSegmentTransforms, measureStairDetail, resolveStairArcDimensions, resolveStairConstruction, resolveStairWalkingPaths, resolveStairWinder, resolveStairWinderFootprint, stairSegmentDetailError, } from '@pascal-app/core';
|
|
2
|
-
import { clampPlanValue, getPlanPointDistance, getThickPlanLinePolygon, interpolatePlanPoint, movePlanPointTowards, rotatePlanVector, } from '@pascal-app/editor';
|
|
1
|
+
import { clampPlanValue, computeSegmentTransforms, getPlanPointDistance, getThickPlanLinePolygon, interpolatePlanPoint, measureStairDetail, movePlanPointTowards, resolveStairArcDimensions, resolveStairConstruction, resolveStairWalkingPaths, resolveStairWinder, resolveStairWinderFootprint, rotatePlanVector, stairSegmentDetailError, } from '@pascal-app/core';
|
|
3
2
|
const FLOORPLAN_STAIR_OUTLINE_BAND_THICKNESS = 0.05;
|
|
4
3
|
const FLOORPLAN_STAIR_OUTLINE_MAX_FRACTION = 0.18;
|
|
5
4
|
const FLOORPLAN_STAIR_TREAD_BAND_THICKNESS = 0.05 * 0.82;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/structural-grid/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/structural-grid/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAElD,eAAO,MAAM,8BAA8B,EAAE,oBAAoB,CAAC,OAAO,kBAAkB,CAe1F,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { buildStructuralGridFloorplan } from './floorplan.js';
|
|
2
1
|
export const structuralGridEditContribution = {
|
|
3
2
|
extensions: {
|
|
4
3
|
'pascal:editor/floorplan': {
|
|
@@ -8,7 +7,6 @@ export const structuralGridEditContribution = {
|
|
|
8
7
|
},
|
|
9
8
|
},
|
|
10
9
|
snapProfile: 'structural',
|
|
11
|
-
floorplan: buildStructuralGridFloorplan,
|
|
12
10
|
toolHints: [
|
|
13
11
|
{ key: 'Left click', label: 'Start grid axis' },
|
|
14
12
|
{ key: 'Left click', label: 'Finish grid axis' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/structural-grid/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/structural-grid/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE7C,eAAO,MAAM,8BAA8B,EAAE,oBAAoB,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAC7F,IAAI,EAAE,iBAAiB,CAAA;CAoCxB,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { buildStructuralGridFloorplan } from './floorplan.js';
|
|
1
2
|
import { StructuralGridNode } from './schema.js';
|
|
2
3
|
export const structuralGridRenderDefinition = {
|
|
3
4
|
kind: 'structural-grid',
|
|
@@ -22,6 +23,7 @@ export const structuralGridRenderDefinition = {
|
|
|
22
23
|
presettable: false,
|
|
23
24
|
},
|
|
24
25
|
dirtyTracking: false,
|
|
26
|
+
floorplan: buildStructuralGridFloorplan,
|
|
25
27
|
presentation: {
|
|
26
28
|
label: 'Structural Grid',
|
|
27
29
|
description: 'Persistent construction grid axis with identification bubbles.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/turbine-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/turbine-vent/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAuD/C,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,OAAO,eAAe,CAgBpF,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { buildTurbineVentFloorplan } from './floorplan.js';
|
|
2
1
|
import { turbineVentPaint } from './paint.js';
|
|
3
2
|
import { turbineVentParametrics } from './parametrics.js';
|
|
4
3
|
const SIDE_HANDLE_OFFSET = 0.25;
|
|
@@ -53,7 +52,6 @@ export const turbineVentEditContribution = {
|
|
|
53
52
|
},
|
|
54
53
|
parametrics: turbineVentParametrics,
|
|
55
54
|
handles: turbineVentHandles,
|
|
56
|
-
floorplan: buildTurbineVentFloorplan,
|
|
57
55
|
preview: () => import('./preview.js'),
|
|
58
56
|
tool: () => import('./tool.js'),
|
|
59
57
|
affordanceTools: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/turbine-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/turbine-vent/definition.render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,CAAC,OAAO,eAAe,CAAC,GAAG;IACvF,IAAI,EAAE,cAAc,CAAA;CAwCrB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TurbineVentNode as TurbineVentNodeSchema, turbineVentSlots } from '@pascal-app/core';
|
|
2
|
+
import { buildTurbineVentFloorplan } from './floorplan.js';
|
|
2
3
|
import { TurbineVentNode } from './schema.js';
|
|
3
4
|
export const turbineVentRenderDefinition = {
|
|
4
5
|
kind: 'turbine-vent',
|
|
@@ -27,6 +28,7 @@ export const turbineVentRenderDefinition = {
|
|
|
27
28
|
kind: 'parametric',
|
|
28
29
|
module: () => import('./renderer.js'),
|
|
29
30
|
},
|
|
31
|
+
floorplan: buildTurbineVentFloorplan,
|
|
30
32
|
presentation: {
|
|
31
33
|
label: 'Turbine Vent',
|
|
32
34
|
description: 'Wind-driven spinning whirlybird exhaust vent for a roof slope.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextual-dimensions.d.ts","sourceRoot":"","sources":["../../src/wall/contextual-dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAGtB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"contextual-dimensions.d.ts","sourceRoot":"","sources":["../../src/wall/contextual-dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAGtB,KAAK,eAAe,EAOpB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AAEzB,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,yBAAyB,EAAE,OAAO,CAAA;IAClC,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAAA;AAgOD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,eAAe,GACnB,iBAAiB,GAAG,IAAI,CAiD1B;AAED,wBAAgB,0CAA0C,CACxD,IAAI,EAAE,iBAAiB,EACvB,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,uBAAuB,GAC/B,iBAAiB,GAAG,IAAI,CAyE1B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { formatLinearMeasurement, getWallCurveFrameAt, getWallCurveLength, getWallFaceOffsets, isCurvedWall, } from '@pascal-app/core';
|
|
2
|
-
import { readFloorplanContext, readFloorplanMetricNotationOverride } from '@pascal-app/editor';
|
|
1
|
+
import { formatLinearMeasurement, getWallCurveFrameAt, getWallCurveLength, getWallFaceOffsets, isCurvedWall, readFloorplanContext, readFloorplanMetricNotationOverride, } from '@pascal-app/core';
|
|
3
2
|
const WALL_CONNECTION_TOLERANCE = 0.03;
|
|
4
3
|
function formatLength(value, ctx) {
|
|
5
4
|
return formatLinearMeasurement(value, ctx.viewState?.unit ?? 'metric', readFloorplanMetricNotationOverride(ctx) ?? 'meters');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/wall/definition.edit.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/wall/definition.edit.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAkBvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AA8BxC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CAoJtE,CAAA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DRAFTING_SURFACE_EXTENSION_KEY, getWallDrawVariant, PANEL_MODEL_EXTENSION, selectedWallDimensions, useEditor, } from '@pascal-app/editor';
|
|
2
2
|
import { buildWallContextualDimensions } from './contextual-dimensions.js';
|
|
3
3
|
import { hasWallCurveBlockingChildren } from './curve-eligibility.js';
|
|
4
|
-
import { buildWallFloorplan, computeWallFloorplanLevelData } from './floorplan.js';
|
|
5
4
|
import { wallCurveAffordance, wallMoveEndpointAffordance, wallThicknessAffordance, } from './floorplan-affordances.js';
|
|
6
5
|
import { wallFloorplanMoveTarget } from './floorplan-move.js';
|
|
7
6
|
import { wallFloorplanSiblingOverrides } from './floorplan-overrides.js';
|
|
@@ -112,10 +111,6 @@ export const wallEditContribution = {
|
|
|
112
111
|
move: () => import('./move-tool.js'),
|
|
113
112
|
split: () => import('./split-tool.js'),
|
|
114
113
|
},
|
|
115
|
-
// Stage C: floor-plan rendering. Precomputes the level miter graph once
|
|
116
|
-
// per render pass, then the builder reads its own junctions by wall id.
|
|
117
|
-
computeFloorplanLevelData: computeWallFloorplanLevelData,
|
|
118
|
-
floorplan: buildWallFloorplan,
|
|
119
114
|
floorplanDependsOnSiblings: true,
|
|
120
115
|
// 2D drag affordances triggered by `endpoint-handle` primitives in
|
|
121
116
|
// `def.floorplan`'s output. Sister to `affordanceTools` (3D) — the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/wall/definition.render.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/wall/definition.render.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AASvE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CA0GxF,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DEFAULT_WALL_THICKNESS, getWallBaseElevationForNodes, getWallEffectiveHeightForNodes, isRailingWall, wallSlots, } from '@pascal-app/core';
|
|
2
2
|
import { wallSeenFromOutside } from './exterior.js';
|
|
3
|
+
import { buildWallFloorplan, computeWallFloorplanLevelData } from './floorplan.js';
|
|
3
4
|
import { matchWallMeasurementFeature, resolveWallMeasurementFeature, wallMeasurementFeatures, } from './measurement.js';
|
|
4
5
|
import { wallQuickMeasurement } from './quick-measurement.js';
|
|
5
6
|
import { WallNode } from './schema.js';
|
|
@@ -87,6 +88,10 @@ export const wallRenderDefinition = {
|
|
|
87
88
|
match: (node, _ctx, point, maxDistance) => matchWallMeasurementFeature(node, point, maxDistance),
|
|
88
89
|
resolve: (node, _ctx, reference) => resolveWallMeasurementFeature(node, reference),
|
|
89
90
|
},
|
|
91
|
+
// Stage C: floor-plan rendering. Precomputes the level miter graph once
|
|
92
|
+
// per render pass, then the builder reads its own junctions by wall id.
|
|
93
|
+
computeFloorplanLevelData: computeWallFloorplanLevelData,
|
|
94
|
+
floorplan: buildWallFloorplan,
|
|
90
95
|
presentation: {
|
|
91
96
|
label: 'Wall',
|
|
92
97
|
description: 'A straight or curved wall segment. Hosts doors, windows, lean-to extensions, and wall-mounted items.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/wall/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/wall/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,iBAAiB,EAItB,KAAK,eAAe,EAiBpB,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EAClB,KAAK,QAAQ,EAKd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAML,KAAK,6BAA6B,EACnC,MAAM,2BAA2B,CAAA;AA4ClC,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,aAAa,CAAA;IACrB,cAAc,EAAE,aAAa,CAAA;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,mBAAmB,EAAE,kBAAkB,CAAA;IACvC,+FAA+F;IAC/F,QAAQ,CAAC,sBAAsB,EAAE,6BAA6B,CAAA;CAC/D,CAAA;AAqJD,wBAAgB,6BAA6B,CAAC,EAC5C,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,GAAG,sBAAsB,CAoBzB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAoRjG"}
|
package/dist/wall/floorplan.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { calculateLevelLayerMiters, calculateLevelMiters, getWallBodyCenterOffset, getWallCurveFrameAt, getWallCurveLength, getWallEffectiveHeightForNodes, getWallFaceOffsets, getWallLayerPolylines, getWallLocalFaceZ, getWallMidpointHandlePoint, getWallPlanFootprint, getWallThickness, isCurvedWall, isRailingWall, wallLayerBoundaryOffsets, } from '@pascal-app/core';
|
|
2
|
-
import { floorplanGeometryMetadata, readFloorplanContext, WALL_PULL_AFFORDANCE, WALL_PULL_GRIP_TITLE, WALL_PUSH_AFFORDANCE, wallPullSeed, } from '@pascal-app/editor';
|
|
1
|
+
import { calculateLevelLayerMiters, calculateLevelMiters, floorplanGeometryMetadata, getWallBodyCenterOffset, getWallCurveFrameAt, getWallCurveLength, getWallEffectiveHeightForNodes, getWallFaceOffsets, getWallLayerPolylines, getWallLocalFaceZ, getWallMidpointHandlePoint, getWallPlanFootprint, getWallThickness, isCurvedWall, isRailingWall, readFloorplanContext, WALL_PULL_AFFORDANCE, WALL_PULL_GRIP_TITLE, WALL_PUSH_AFFORDANCE, wallLayerBoundaryOffsets, wallPullSeed, } from '@pascal-app/core';
|
|
3
2
|
import { constructionDimensionStandard } from '../shared/construction-dimension-standards.js';
|
|
4
3
|
import { buildCurvedWallConstructionDimensions, buildLevelWallConstructionDimensionPlan, buildWallConstructionDimensions, constructionDimensionFace, renderPlannedConstructionDimensions, } from './construction-dimensions.js';
|
|
5
4
|
import { buildCurtainWallFloorplan } from './curtain-wall-floorplan.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/window/definition.edit.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/window/definition.edit.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAqBvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AA+N1C,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CAAC,OAAO,UAAU,CAgD1E,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getDormerWallHorizontalBoundsAtHeight, getDormerWallOpeningVerticalBounds, } from '@pascal-app/core';
|
|
2
2
|
import { curtainOpeningResizeMax } from '../shared/curtain-opening-limits.js';
|
|
3
|
-
import { buildWindowFloorplanSchedule
|
|
3
|
+
import { buildWindowFloorplanSchedule } from '../shared/opening-documentation.js';
|
|
4
4
|
import { publishOpeningResizeGuides } from '../shared/opening-guides-runtime.js';
|
|
5
5
|
import { createOpeningPropertyPreview } from '../shared/opening-property-preview.js';
|
|
6
6
|
import { openingPropertyPreviewHost } from '../shared/opening-property-preview-host.js';
|
|
@@ -10,7 +10,6 @@ import { readHostWallCeiling, readHostWallCeilingMaxWidth } from '../shared/wall
|
|
|
10
10
|
import { wallFloorplanSiblingOverrides } from '../wall/floorplan-overrides.js';
|
|
11
11
|
import { buildWindowContextualDimensions } from './contextual-dimensions.js';
|
|
12
12
|
import { resolveWindowHandlePortalTarget } from './definition.render.js';
|
|
13
|
-
import { buildWindowFloorplan } from './floorplan.js';
|
|
14
13
|
import { windowWidthAffordance } from './floorplan-affordances.js';
|
|
15
14
|
import { windowFloorplanMoveTarget } from './floorplan-move.js';
|
|
16
15
|
import { windowPaint } from './paint.js';
|
|
@@ -220,10 +219,6 @@ export const windowEditContribution = {
|
|
|
220
219
|
? scriptedOpeningHandles(node, windowWidthHandle, () => windowHeightHandle('top'))
|
|
221
220
|
: windowHandles,
|
|
222
221
|
preview: () => import('./preview.js'),
|
|
223
|
-
// Stage C: floor-plan polygon. ctx.parent gives the wall for direction
|
|
224
|
-
// + thickness — same shape as door.
|
|
225
|
-
floorplan: buildWindowFloorplan,
|
|
226
|
-
computeFloorplanLevelData: computeWindowFloorplanLevelData,
|
|
227
222
|
floorplanDependsOnSiblings: true,
|
|
228
223
|
// Opening symbols position from `ctx.parent` (the host wall); merge the
|
|
229
224
|
// walls' live drag overrides so the symbol tracks a wall / group drag in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/window/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,QAAQ,EACR,UAAU,IAAI,cAAc,EAC7B,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/window/definition.render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,QAAQ,EACR,UAAU,IAAI,cAAc,EAC7B,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAOvE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAC3B,SAAS,GAAG,IAAI,CAWlB;AAED,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CAAC,OAAO,UAAU,CAAC,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAoE5F,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { windowSlots } from '@pascal-app/core';
|
|
2
2
|
import { NEW_WINDOW_FRAME_THICKNESS } from '@pascal-app/core/building';
|
|
3
3
|
import { windowBatchable } from '../shared/node-batch/batchable.js';
|
|
4
|
+
import { computeWindowFloorplanLevelData } from '../shared/opening-documentation.js';
|
|
4
5
|
import { buildRoofWallOpeningCut } from '../shared/roof-wall-opening-cut.js';
|
|
5
6
|
import { openingSeenFromOutside } from '../wall/exterior.js';
|
|
7
|
+
import { buildWindowFloorplan } from './floorplan.js';
|
|
6
8
|
import { windowMechanism } from './mechanism.js';
|
|
7
9
|
import { WindowNode } from './schema.js';
|
|
8
10
|
export function resolveWindowHandlePortalTarget(window, scene) {
|
|
@@ -70,6 +72,10 @@ export const windowRenderDefinition = {
|
|
|
70
72
|
module: () => import('./system.js'),
|
|
71
73
|
priority: 3,
|
|
72
74
|
},
|
|
75
|
+
// Stage C: floor-plan polygon. ctx.parent gives the wall for direction
|
|
76
|
+
// + thickness — same shape as door.
|
|
77
|
+
floorplan: buildWindowFloorplan,
|
|
78
|
+
computeFloorplanLevelData: computeWindowFloorplanLevelData,
|
|
73
79
|
presentation: {
|
|
74
80
|
label: 'Window',
|
|
75
81
|
description: 'A window cut into a wall. Animated open/close for opening windows.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/window/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,eAAe,EAEf,UAAU,EACX,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/window/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,eAAe,EAEf,UAAU,EACX,MAAM,kBAAkB,CAAA;AAiFzB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,eAAe,GACnB,iBAAiB,GAAG,IAAI,CA6R1B"}
|
package/dist/window/floorplan.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { cornerPair, getWallBodyCenterOffset, openingExteriorFace, openingHostFacing, } from '@pascal-app/core';
|
|
2
|
-
import { floorplanGeometryMetadata, readFloorplanContext } from '@pascal-app/editor';
|
|
1
|
+
import { cornerPair, floorplanGeometryMetadata, getWallBodyCenterOffset, openingExteriorFace, openingHostFacing, readFloorplanContext, } from '@pascal-app/core';
|
|
3
2
|
import { buildOpeningCasingPlan } from '../shared/opening-casing.js';
|
|
4
3
|
import { buildOpeningMarkAnnotation, } from '../shared/opening-documentation.js';
|
|
5
4
|
import { buildOpeningPlacementDimensions } from '../shared/opening-placement-dimensions.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.edit.d.ts","sourceRoot":"","sources":["../../src/zone/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/zone/definition.edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAWvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGxC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CA6BtE,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { buildZoneContextualDimensions } from './contextual-dimensions.js';
|
|
2
|
-
import { buildZoneFloorplan } from './floorplan.js';
|
|
3
2
|
import { zoneAddVertexAffordance, zoneDeleteVertexAffordance, zoneMoveEdgeAffordance, zoneMoveVertexAffordance, } from './floorplan-affordances.js';
|
|
4
3
|
import { zoneFloorplanMoveTarget } from './floorplan-move.js';
|
|
5
4
|
import { zoneParametrics } from './parametrics.js';
|
|
@@ -14,7 +13,6 @@ export const zoneEditContribution = {
|
|
|
14
13
|
},
|
|
15
14
|
},
|
|
16
15
|
parametrics: zoneParametrics,
|
|
17
|
-
floorplan: buildZoneFloorplan,
|
|
18
16
|
// Every unit under the building, not just the current owner: a zone that
|
|
19
17
|
// joins its first unit has no owner to depend on until the unit changes.
|
|
20
18
|
floorplanDependencies: (node, nodes) => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.render.d.ts","sourceRoot":"","sources":["../../src/zone/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/zone/definition.render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAIvE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAoDxF,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ZoneNode as ZoneNodeSchema } from '@pascal-app/core';
|
|
2
2
|
import { polygonMeasurementFeatures } from '../shared/polygon-measurement.js';
|
|
3
|
+
import { buildZoneFloorplan } from './floorplan.js';
|
|
3
4
|
import { zoneQuickMeasurement } from './quick-measurement.js';
|
|
4
5
|
import { ZoneNode } from './schema.js';
|
|
5
6
|
export const zoneRenderDefinition = {
|
|
@@ -42,6 +43,7 @@ export const zoneRenderDefinition = {
|
|
|
42
43
|
module: () => import('./system.js'),
|
|
43
44
|
priority: 4,
|
|
44
45
|
},
|
|
46
|
+
floorplan: buildZoneFloorplan,
|
|
45
47
|
presentation: {
|
|
46
48
|
label: 'Zone',
|
|
47
49
|
description: 'A polygonal site zone (lawn, water, paving) with a TSL gradient material.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/zone/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"floorplan.d.ts","sourceRoot":"","sources":["../../src/zone/floorplan.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAGtB,KAAK,eAAe,EAIpB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AAQzB;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAiKjG"}
|
package/dist/zone/floorplan.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { polygonInteriorPoint, } from '@pascal-app/core';
|
|
2
|
-
import { floorplanGeometryMetadata, readFloorplanContext } from '@pascal-app/editor';
|
|
1
|
+
import { floorplanGeometryMetadata, polygonInteriorPoint, readFloorplanContext, } from '@pascal-app/core';
|
|
3
2
|
import { formatConstructionLength, } from '../shared/construction-length.js';
|
|
4
3
|
import { buildRoomClearDimensions } from './room-clear-dimensions.js';
|
|
5
4
|
import { owningUnitForZone } from './unit-membership.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-clear-dimensions.d.ts","sourceRoot":"","sources":["../../src/zone/room-clear-dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"room-clear-dimensions.d.ts","sourceRoot":"","sources":["../../src/zone/room-clear-dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EAKpB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AAsBzB,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,eAAe,GACnB,iBAAiB,EAAE,CA4DrB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { detectSpacesForLevel, getWallLocalFaceZ, } from '@pascal-app/core';
|
|
2
|
-
import { readFloorplanContext } from '@pascal-app/editor';
|
|
1
|
+
import { detectSpacesForLevel, getWallLocalFaceZ, readFloorplanContext, } from '@pascal-app/core';
|
|
3
2
|
import { formatConstructionLength, } from '../shared/construction-length.js';
|
|
4
3
|
const LINE_TOLERANCE = 1e-4;
|
|
5
4
|
const ANGLE_TOLERANCE = 1e-3;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { type AnyNode, type ZoneNode } from '@pascal-app/core';
|
|
2
|
-
import type { FloorplanSchedule } from '@pascal-app/editor';
|
|
1
|
+
import { type AnyNode, type FloorplanSchedule, type ZoneNode } from '@pascal-app/core';
|
|
3
2
|
import { type ConstructionLengthProfile, type ConstructionLinearUnit } from '../shared/construction-length.js';
|
|
4
3
|
export declare function buildRoomFloorplanSchedule(args: {
|
|
5
4
|
siblings: ReadonlyArray<ZoneNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-documentation.d.ts","sourceRoot":"","sources":["../../src/zone/room-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"room-documentation.d.ts","sourceRoot":"","sources":["../../src/zone/room-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAE5B,MAAM,+BAA+B,CAAA;AAKtC,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;CACpC,GAAG,iBAAiB,GAAG,IAAI,CA0C3B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { deriveZoneQuantityReport } from '@pascal-app/core';
|
|
1
|
+
import { deriveZoneQuantityReport, } from '@pascal-app/core';
|
|
2
2
|
import { formatConstructionLength, } from '../shared/construction-length.js';
|
|
3
3
|
const SQUARE_FEET_PER_SQUARE_METER = 10.76391041671;
|
|
4
4
|
const ROOM_NUMBER_COLLATOR = new Intl.Collator('en', { numeric: true, sensitivity: 'base' });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pascal-app/nodes",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Built-in node bundles for the Pascal 3D editor — one folder per kind, exported as `builtinPlugin`",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"bench:elevator": "bun test ./src/elevator/__bench__/rendering.bench.tsx && bun ./src/elevator/__bench__/runtime.ts"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@pascal-app/core": "^1.1.
|
|
48
|
-
"@pascal-app/editor": "^1.1.
|
|
49
|
-
"@pascal-app/viewer": "^1.1.
|
|
47
|
+
"@pascal-app/core": "^1.1.1",
|
|
48
|
+
"@pascal-app/editor": "^1.1.1",
|
|
49
|
+
"@pascal-app/viewer": "^1.1.1",
|
|
50
50
|
"@react-three/drei": "^10",
|
|
51
51
|
"@react-three/fiber": "^9",
|
|
52
52
|
"lucide-react": "^1",
|
|
@@ -58,10 +58,10 @@
|
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@modelcontextprotocol/client": "^2.4.0",
|
|
60
60
|
"@modelcontextprotocol/server": "^2.4.0",
|
|
61
|
-
"@pascal-app/core": "^1.1.
|
|
62
|
-
"@pascal-app/editor": "^1.1.
|
|
63
|
-
"@pascal-app/mcp": "^1.1.
|
|
64
|
-
"@pascal-app/viewer": "^1.1.
|
|
61
|
+
"@pascal-app/core": "^1.1.1",
|
|
62
|
+
"@pascal-app/editor": "^1.1.1",
|
|
63
|
+
"@pascal-app/mcp": "^1.1.1",
|
|
64
|
+
"@pascal-app/viewer": "^1.1.1",
|
|
65
65
|
"@pascal/typescript-config": "*",
|
|
66
66
|
"@react-three/test-renderer": "^9.1.1",
|
|
67
67
|
"@types/bun": "^1.4.4",
|