@pascal-app/core 1.0.0-beta.1 → 1.0.0-beta.3

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.
Files changed (33) hide show
  1. package/dist/hooks/spatial-grid/floor-placed-elevation.js +2 -2
  2. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  3. package/dist/hooks/spatial-grid/spatial-grid-manager.js +8 -5
  4. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  5. package/dist/hooks/spatial-grid/spatial-grid-sync.js +13 -2
  6. package/dist/index.d.ts +3 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +3 -3
  9. package/dist/lib/space-detection.d.ts.map +1 -1
  10. package/dist/lib/space-detection.js +76 -21
  11. package/dist/lib/terrain-codec.d.ts +6 -1
  12. package/dist/lib/terrain-codec.d.ts.map +1 -1
  13. package/dist/lib/terrain-codec.js +50 -16
  14. package/dist/lib/terrain-source.d.ts +1 -0
  15. package/dist/lib/terrain-source.d.ts.map +1 -1
  16. package/dist/lib/terrain-source.js +4 -1
  17. package/dist/lib/terrain-support.d.ts +25 -0
  18. package/dist/lib/terrain-support.d.ts.map +1 -1
  19. package/dist/lib/terrain-support.js +71 -3
  20. package/dist/registry/types.d.ts +19 -0
  21. package/dist/registry/types.d.ts.map +1 -1
  22. package/dist/store/use-live-terrain.d.ts +10 -0
  23. package/dist/store/use-live-terrain.d.ts.map +1 -1
  24. package/dist/store/use-live-terrain.js +26 -2
  25. package/dist/store/use-scene.d.ts.map +1 -1
  26. package/dist/store/use-scene.js +2 -22
  27. package/dist/systems/slab/slab-support.d.ts +14 -1
  28. package/dist/systems/slab/slab-support.d.ts.map +1 -1
  29. package/dist/systems/slab/slab-support.js +23 -5
  30. package/dist/utils/retired-scene-nodes.d.ts +6 -0
  31. package/dist/utils/retired-scene-nodes.d.ts.map +1 -0
  32. package/dist/utils/retired-scene-nodes.js +30 -0
  33. package/package.json +6 -1
@@ -1,4 +1,4 @@
1
- import { terrainSupportLift } from '../../lib/terrain-support';
1
+ import { levelBaseElevationAt } from '../../lib/terrain-support';
2
2
  import { nodeRegistry } from '../../registry';
3
3
  import { spatialGridManager } from './spatial-grid-manager';
4
4
  export { GROUND_SUPPORT_ID } from './support-host-id';
@@ -58,7 +58,7 @@ export function getFloorPlacedElevation({ node, nodes, position, rotation, level
58
58
  */
59
59
  let groundLiftCache = null;
60
60
  const groundLift = () => {
61
- groundLiftCache ??= terrainSupportLift(nodes, resolvedLevelId, position[0], position[2]) ?? 0;
61
+ groundLiftCache ??= levelBaseElevationAt(nodes, resolvedLevelId, position[0], position[2]);
62
62
  return groundLiftCache;
63
63
  };
64
64
  // A persisted support host pins the elevation while it still exists and
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-grid-manager.d.ts","sourceRoot":"","sources":["../../../src/hooks/spatial-grid/spatial-grid-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spatial-grid-manager.d.ts","sourceRoot":"","sources":["../../../src/hooks/spatial-grid/spatial-grid-manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { getRenderableSlabPolygon } from '../../lib/slab-polygon';
2
- import { terrainSupportLift } from '../../lib/terrain-support';
2
+ import { levelBaseElevationAt } from '../../lib/terrain-support';
3
3
  import { nodeRegistry } from '../../registry';
4
4
  import { getScaledDimensions, isLowProfileItemSurface } from '../../schema';
5
5
  import { getWallPlaneTop } from '../../services/storey';
@@ -799,9 +799,12 @@ export class SpatialGridManager {
799
799
  .elevation;
800
800
  }
801
801
  getSlabSupportForWall(levelId, start, end, curveOffset = 0, thickness = DEFAULT_WALL_THICKNESS, preferredSlabId, maxElevation, supportOffset = 0) {
802
+ // Sampled at the wall's own start point — the same anchor the mesh is
803
+ // positioned at, so the resolver and the renderer cannot disagree about
804
+ // where the ground is under this wall.
805
+ const levelBase = levelBaseElevationAt(useScene.getState().nodes, levelId, start[0], start[1]);
802
806
  if (preferredSlabId === GROUND_SUPPORT_ID) {
803
- const nodes = useScene.getState().nodes;
804
- const elevation = (terrainSupportLift(nodes, levelId, start[0], start[1]) ?? 0) + supportOffset;
807
+ const elevation = levelBase + supportOffset;
805
808
  return {
806
809
  elevation,
807
810
  electedSlabId: null,
@@ -811,7 +814,7 @@ export class SpatialGridManager {
811
814
  }
812
815
  const slabMap = this.slabsByLevel.get(levelId);
813
816
  if (!slabMap) {
814
- const elevation = supportOffset;
817
+ const elevation = levelBase + supportOffset;
815
818
  return {
816
819
  elevation,
817
820
  electedSlabId: null,
@@ -819,7 +822,7 @@ export class SpatialGridManager {
819
822
  baseSegments: [{ start: 0, end: 1, elevation }],
820
823
  };
821
824
  }
822
- const support = computeWallSlabSupport({ start, end, curveOffset, thickness }, [...slabMap.values()].map((slab) => this.effectiveSlabRecord(slab)), this.getLevelWallNodes(levelId).map((wall) => getEffectiveNode(wall)), preferredSlabId, maxElevation);
825
+ const support = computeWallSlabSupport({ start, end, curveOffset, thickness }, [...slabMap.values()].map((slab) => this.effectiveSlabRecord(slab)), this.getLevelWallNodes(levelId).map((wall) => getEffectiveNode(wall)), preferredSlabId, maxElevation, levelBase);
823
826
  if (supportOffset === 0)
824
827
  return support;
825
828
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-grid-sync.d.ts","sourceRoot":"","sources":["../../../src/hooks/spatial-grid/spatial-grid-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAY,QAAQ,EAAY,MAAM,cAAc,CAAA;AAY/F,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAmBpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,GAAG,IAAI,CASf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAChC,SAAS,GAAG,IAAI,CAgBlB;AAKD,wBAAgB,mBAAmB,IAAI,MAAM,IAAI,CAgIhD;AAMD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAcnC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAOnC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAqBnC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAoCnC;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAUnC"}
1
+ {"version":3,"file":"spatial-grid-sync.d.ts","sourceRoot":"","sources":["../../../src/hooks/spatial-grid/spatial-grid-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAY,QAAQ,EAAY,MAAM,cAAc,CAAA;AAY/F,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAmBpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,GAAG,IAAI,CASf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAChC,SAAS,GAAG,IAAI,CAgBlB;AAKD,wBAAgB,mBAAmB,IAAI,MAAM,IAAI,CAgIhD;AAMD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAcnC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAOnC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAqBnC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAgDnC;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,QAUnC"}
@@ -1,5 +1,5 @@
1
1
  import { getRenderableSlabPolygon } from '../../lib/slab-polygon';
2
- import { isLevelAtSiteDatum } from '../../lib/terrain-support';
2
+ import { isLevelAtSiteDatum, isLevelBaseConsumer } from '../../lib/terrain-support';
3
3
  import { nodeRegistry } from '../../registry';
4
4
  import { getLevelBelow } from '../../services/storey';
5
5
  import useLiveTerrain from '../../store/use-live-terrain';
@@ -302,8 +302,19 @@ export function markTerrainSupportDependents(nodes, markDirty) {
302
302
  continue;
303
303
  }
304
304
  const floorPlaced = nodeRegistry.get(node.type)?.capabilities?.floorPlaced;
305
- if (!floorPlaced)
305
+ if (!floorPlaced) {
306
+ // A kind whose geometry builder resolved its own origin from the ground
307
+ // (`ctx.levelBaseAt`) has that ground baked into its meshes, so it has to
308
+ // rebuild even though nothing about the node changed. This is the
309
+ // invalidation half of the builder seam: without it a fence keeps the
310
+ // hillside it was built on and floats after the next stroke. Kinds that
311
+ // are `floorPlaced` need no entry here — the sweep below already covers
312
+ // them, through a mesh transform rather than a rebuild.
313
+ if (isLevelBaseConsumer(node.type) && isGrade(resolveLevelId(node, nodes))) {
314
+ markDirty(node.id);
315
+ }
306
316
  continue;
317
+ }
307
318
  if (floorPlaced.applies && !floorPlaced.applies(node))
308
319
  continue;
309
320
  // Items hosted on a shelf or table inherit Y from the parent group; only
package/dist/index.d.ts CHANGED
@@ -17,11 +17,11 @@ export { getRenderableSlabPolygon, type SlabEdgeWallBandSnap, type SlabPolygonCo
17
17
  export { deriveSlotId, isSlotMaterialName, SLOT_MATERIAL_PREFIX, slotLabelFromId, } from './lib/slots';
18
18
  export { type AutoCeilingPlanningContext, type AutoCeilingSyncPlan, type AutoSlabPlanningContext, type AutoSlabSyncPlan, type AutoZoneSyncPlan, detectSpacesForLevel, initSpaceDetectionSync, isSpaceDetectionPaused, pauseSpaceDetection, planAutoCeilingsForLevel, planAutoSlabsForLevel, planAutoZonesForLevel, resolveAutoZonePolygon, resumeSpaceDetection, type Space, type SpaceBoundaryFace, wallClosesRoom, wallTouchesOthers, } from './lib/space-detection';
19
19
  export { advanceStroke, type BrushSettings, type BrushShape, beginStroke, brushHeightAt, DEFAULT_BRUSH_SETTINGS, detachStrokeAnchor, highestOver, MIN_BRUSH_RADIUS_IN_SPACINGS, maxCoverage, minBrushRadius, RAISE_METRES_PER_STROKE, sampleTarget, type TerrainStroke, type TerrainVerb, weightAt, } from './lib/terrain-brush';
20
- export { decodeTerrainField, encodeTerrainField, isDatumField } from './lib/terrain-codec';
20
+ export { decodeHeightPatch, decodeTerrainField, type EncodedHeightPatch, encodeHeightPatch, encodeTerrainField, isDatumField, } from './lib/terrain-codec';
21
21
  export { applyHeightPatch, createTerrainField, DEFAULT_TERRAIN_SPACING, DEFAULT_TERRAIN_STEP, diffToPatches, flattenPatch, type HeightPatch, heightAt, heightAtSample, isFlatOver, normalAt, quantize, sampleRangeOver, slopeAt, surfaceHeightAt, type TerrainField, } from './lib/terrain-field';
22
22
  export { raycastTerrain, type TerrainHit } from './lib/terrain-raycast';
23
- export { commitTerrainField, terrainFieldForEdit, terrainFieldOf } from './lib/terrain-source';
24
- export { isSiteDatum, SITE_DATUM_EPSILON, SITE_DATUM_Y, terrainSupportLift, } from './lib/terrain-support';
23
+ export { commitTerrainField, persistedTerrainFieldOf, terrainFieldForEdit, terrainFieldOf, } from './lib/terrain-source';
24
+ export { isLevelBaseConsumer, isSiteDatum, levelBaseElevationAt, noteLevelBaseConsumer, SITE_DATUM_EPSILON, SITE_DATUM_Y, terrainSupportLift, } from './lib/terrain-support';
25
25
  export { closestOnSegment, collectLevelWallSegments, nearestWallSegment, WALL_SNAP_DISTANCE_M, type WallSegment, type WallSegmentClosest, } from './lib/wall-distance';
26
26
  export { deriveZoneQuantityReport, type ZoneQuantityReport, type ZoneQuantityValue, } from './lib/zone-quantities';
27
27
  export { getCatalogMaterialById, getDynamicLibraryMaterials, getLibraryMaterialIdFromRef, getLibraryMaterialsVersion, getMaterialPresetByRef, getMaterialsForCategory, getSceneMaterialIdFromRef, LIBRARY_MATERIAL_REF_PREFIX, MATERIAL_CATALOG, MATERIAL_CATEGORIES, MATERIAL_SURFACES, type MaterialCatalogItem, type MaterialCategory, type MaterialRef, type MaterialSource, type MaterialSurface, type ParsedMaterialRef, parseMaterialRef, registerLibraryMaterials, SCENE_MATERIAL_REF_PREFIX, subscribeLibraryMaterials, toLibraryMaterialRef, toSceneMaterialRef, unregisterLibraryMaterials, } from './material-library';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,11 +16,11 @@ export { getRenderableSlabPolygon, slabPolygonContextFromGeometry, snapSlabEdgeT
16
16
  export { deriveSlotId, isSlotMaterialName, SLOT_MATERIAL_PREFIX, slotLabelFromId, } from './lib/slots';
17
17
  export { detectSpacesForLevel, initSpaceDetectionSync, isSpaceDetectionPaused, pauseSpaceDetection, planAutoCeilingsForLevel, planAutoSlabsForLevel, planAutoZonesForLevel, resolveAutoZonePolygon, resumeSpaceDetection, wallClosesRoom, wallTouchesOthers, } from './lib/space-detection';
18
18
  export { advanceStroke, beginStroke, brushHeightAt, DEFAULT_BRUSH_SETTINGS, detachStrokeAnchor, highestOver, MIN_BRUSH_RADIUS_IN_SPACINGS, maxCoverage, minBrushRadius, RAISE_METRES_PER_STROKE, sampleTarget, weightAt, } from './lib/terrain-brush';
19
- export { decodeTerrainField, encodeTerrainField, isDatumField } from './lib/terrain-codec';
19
+ export { decodeHeightPatch, decodeTerrainField, encodeHeightPatch, encodeTerrainField, isDatumField, } from './lib/terrain-codec';
20
20
  export { applyHeightPatch, createTerrainField, DEFAULT_TERRAIN_SPACING, DEFAULT_TERRAIN_STEP, diffToPatches, flattenPatch, heightAt, heightAtSample, isFlatOver, normalAt, quantize, sampleRangeOver, slopeAt, surfaceHeightAt, } from './lib/terrain-field';
21
21
  export { raycastTerrain } from './lib/terrain-raycast';
22
- export { commitTerrainField, terrainFieldForEdit, terrainFieldOf } from './lib/terrain-source';
23
- export { isSiteDatum, SITE_DATUM_EPSILON, SITE_DATUM_Y, terrainSupportLift, } from './lib/terrain-support';
22
+ export { commitTerrainField, persistedTerrainFieldOf, terrainFieldForEdit, terrainFieldOf, } from './lib/terrain-source';
23
+ export { isLevelBaseConsumer, isSiteDatum, levelBaseElevationAt, noteLevelBaseConsumer, SITE_DATUM_EPSILON, SITE_DATUM_Y, terrainSupportLift, } from './lib/terrain-support';
24
24
  export { closestOnSegment, collectLevelWallSegments, nearestWallSegment, WALL_SNAP_DISTANCE_M, } from './lib/wall-distance';
25
25
  export { deriveZoneQuantityReport, } from './lib/zone-quantities';
26
26
  export { getCatalogMaterialById, getDynamicLibraryMaterials, getLibraryMaterialIdFromRef, getLibraryMaterialsVersion, getMaterialPresetByRef, getMaterialsForCategory, getSceneMaterialIdFromRef, LIBRARY_MATERIAL_REF_PREFIX, MATERIAL_CATALOG, MATERIAL_CATEGORIES, MATERIAL_SURFACES, parseMaterialRef, registerLibraryMaterials, SCENE_MATERIAL_REF_PREFIX, subscribeLibraryMaterials, toLibraryMaterialRef, toSceneMaterialRef, unregisterLibraryMaterials, } from './material-library';
@@ -1 +1 @@
1
- {"version":3,"file":"space-detection.d.ts","sourceRoot":"","sources":["../../src/lib/space-detection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"space-detection.d.ts","sourceRoot":"","sources":["../../src/lib/space-detection.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { computeWallSlabSupport } from '../systems/slab/slab-support';
7
7
  import { getClampedWallCurveOffset, getWallCurveFrameAt, isCurvedWall, } from '../systems/wall/wall-curve';
8
8
  import { resolveWallTop } from '../systems/wall/wall-top';
9
9
  import { simplifyClosedPolygon } from './polygon-geometry';
10
- import { terrainSupportLift } from './terrain-support';
10
+ import { levelBaseElevationAt } from './terrain-support';
11
11
  const DEFAULT_AUTO_SLAB_ELEVATION = 0.05;
12
12
  const CEILING_HEIGHT_EPSILON = 1e-6;
13
13
  const ROOM_CURVE_TOLERANCE = 0.04;
@@ -24,6 +24,8 @@ const WALL_JUNCTION_TOLERANCE = 0.08;
24
24
  // deleted) and the node is demoted to manual so user data survives.
25
25
  const ORPHAN_MERGE_COVERAGE_THRESHOLD = 0.6;
26
26
  const COVERAGE_SAMPLE_STEPS = 12;
27
+ // Rewrite deadband for an existing auto surface's elevation/height: below this
28
+ // the derived plane is the same plane and writing it would churn history.
27
29
  const ROOM_VERTICAL_PLANE_EPSILON = 1e-3;
28
30
  function pointFromTuple(point) {
29
31
  return { x: point[0], y: point[1] };
@@ -210,14 +212,49 @@ function resolveCeilingClampBound(polygon, context) {
210
212
  return context.ceilingClampBound(polygon);
211
213
  return (context.storeyHeight ?? DEFAULT_LEVEL_HEIGHT) - CEILING_CLAMP_MARGIN;
212
214
  }
213
- function consensusElevation(values) {
214
- if (values.length === 0 || values.some((value) => !Number.isFinite(value)))
215
+ /**
216
+ * The base a boundary wall actually stands on, in level-local metres.
217
+ *
218
+ * Resolved the same way the wall renderer resolves it — the level base under
219
+ * the wall's own start point (sculpted ground or the flat plane), the slab
220
+ * election on top of that, plus the wall's stored `supportOffset`. Reading the
221
+ * ground for `GROUND_SUPPORT_ID` walls only is what left stamped room presets
222
+ * flat: `resolveWallSupportSlabPatch` writes no host at all for a wall on bare
223
+ * terrain, so the sentinel is a hint about pointer intent, never a precondition
224
+ * for standing on the ground.
225
+ */
226
+ function boundaryWallBase(wall, walls, supportSlabs, nodes, levelId) {
227
+ const levelBase = levelBaseElevationAt(nodes, levelId, wall.start[0], wall.start[1]);
228
+ const offset = wall.supportOffset ?? 0;
229
+ if (wall.supportSlabId === GROUND_SUPPORT_ID)
230
+ return levelBase + offset;
231
+ return (computeWallSlabSupport(wall, supportSlabs, walls, wall.supportSlabId ?? null, null, levelBase)
232
+ .elevation + offset);
233
+ }
234
+ /**
235
+ * The plane an auto floor/ceiling takes when its enclosing walls disagree.
236
+ *
237
+ * `floor` takes the HIGHEST wall base and `ceiling` the LOWEST wall top —
238
+ * the only pair that cannot open a hole: a floor at the lowest base would
239
+ * leave daylight under every wall standing higher, and a ceiling at the
240
+ * highest top would poke out through the shortest wall. Both surfaces stay
241
+ * flat (a slab is one scalar elevation by schema; see `vertical-model.md`),
242
+ * so a room on a slope is a level room cut into the hillside — the walls on
243
+ * the low side extend down to meet it, which is what their `baseSegments`
244
+ * fill-down already does.
245
+ *
246
+ * Non-finite inputs are the one abstain: a broken graph should keep the
247
+ * existing placement rather than move a surface to NaN.
248
+ */
249
+ function roomFloorPlane(wallBases) {
250
+ if (wallBases.length === 0 || wallBases.some((value) => !Number.isFinite(value)))
215
251
  return undefined;
216
- const min = Math.min(...values);
217
- const max = Math.max(...values);
218
- if (max - min > ROOM_VERTICAL_PLANE_EPSILON)
252
+ return Math.max(...wallBases);
253
+ }
254
+ function roomCeilingPlane(wallTops) {
255
+ if (wallTops.length === 0 || wallTops.some((value) => !Number.isFinite(value)))
219
256
  return undefined;
220
- return values.reduce((sum, value) => sum + value, 0) / values.length;
257
+ return Math.min(...wallTops);
221
258
  }
222
259
  function autoRoomVerticalPlacements(spaces, walls, supportSlabs, nodes, storeyHeight) {
223
260
  const wallsById = new Map(walls.map((wall) => [wall.id, wall]));
@@ -229,19 +266,12 @@ function autoRoomVerticalPlacements(spaces, walls, supportSlabs, nodes, storeyHe
229
266
  });
230
267
  if (boundaryWalls.length !== space.wallIds.length)
231
268
  continue;
232
- const wallBases = boundaryWalls.map((wall) => {
233
- const offset = wall.supportOffset ?? 0;
234
- if (wall.supportSlabId === GROUND_SUPPORT_ID) {
235
- return ((terrainSupportLift(nodes, space.levelId, wall.start[0], wall.start[1]) ?? 0) + offset);
236
- }
237
- return (computeWallSlabSupport(wall, supportSlabs, walls, wall.supportSlabId ?? null).elevation +
238
- offset);
239
- });
240
- const base = consensusElevation(wallBases);
269
+ const wallBases = boundaryWalls.map((wall) => boundaryWallBase(wall, walls, supportSlabs, nodes, space.levelId));
270
+ const base = roomFloorPlane(wallBases);
241
271
  if (base === undefined)
242
272
  continue;
243
273
  const wallTops = boundaryWalls.map((wall, index) => resolveWallTop(wall, storeyHeight, wallBases[index] ?? base));
244
- const top = consensusElevation(wallTops);
274
+ const top = roomCeilingPlane(wallTops);
245
275
  if (top === undefined)
246
276
  continue;
247
277
  placements.set(polygonSignature(space.polygon.map(pointFromTuple)), {
@@ -615,7 +645,7 @@ function sameTuplePolygon(current, next) {
615
645
  return (current.length === next.length &&
616
646
  current.every((point, index) => point[0] === next[index]?.[0] && point[1] === next[index]?.[1]));
617
647
  }
618
- function wallGeometrySignature(wall) {
648
+ function wallGeometrySignature(wall, nodes, levelId) {
619
649
  return [
620
650
  wall.id,
621
651
  wall.start[0].toFixed(4),
@@ -630,10 +660,35 @@ function wallGeometrySignature(wall) {
630
660
  wall.supportSlabId ?? 'elected',
631
661
  (wall.supportOffset ?? 0).toFixed(4),
632
662
  getClampedWallCurveOffset(wall).toFixed(4),
663
+ // The ground under this wall, sampled at the SAME point
664
+ // `boundaryWallBase` samples it. Sculpting changes only `site.terrain`,
665
+ // so without a terrain term here every signature stays byte-identical
666
+ // and the sync early-exits — a room's floor and ceiling could never
667
+ // follow ground that moved beneath its walls.
668
+ //
669
+ // The sample, not the field, and not the resolved base: hashing the
670
+ // heightfield would re-trigger every level for a stroke on the far side
671
+ // of the lot, and resolving the full slab election would fold slab
672
+ // POLYGONS into the signature, which is exactly the delete/recreate
673
+ // feedback the comment below is about. Sampling where the placement
674
+ // samples means the two cannot disagree in either direction — no missed
675
+ // re-run, no spurious one.
676
+ //
677
+ // Granularity is per stroke, not per dab: live dabs publish to
678
+ // `useLiveTerrain` and never touch the scene store, so this runs once on
679
+ // release — inside the stroke's own `runAsSingleSceneHistoryStep`, which
680
+ // is what puts the moved floor and the terrain that moved it in the same
681
+ // undo step. Mid-drag the ground-hosted walls follow the brush while the
682
+ // floor waits for release; re-deriving per dab would mean a scene write
683
+ // per dab and a floor that jitters under the cursor.
684
+ levelBaseElevationAt(nodes, levelId, wall.start[0], wall.start[1]).toFixed(4),
633
685
  ].join('|');
634
686
  }
635
- function levelWallSnapshot(walls) {
636
- return walls.map(wallGeometrySignature).sort().join('||');
687
+ function levelWallSnapshot(walls, nodes, levelId) {
688
+ return walls
689
+ .map((wall) => wallGeometrySignature(wall, nodes, levelId))
690
+ .sort()
691
+ .join('||');
637
692
  }
638
693
  function zoneGeometrySignature(zone) {
639
694
  return [
@@ -701,7 +756,7 @@ function levelStructureSnapshots(nodes) {
701
756
  const aboveSlabKey = aboveId
702
757
  ? (coveringUndersidesByLevel.get(aboveId) ?? []).sort().join(';')
703
758
  : '';
704
- snapshots.set(levelId, `${storeyKey}#${levelWallSnapshot(walls)}##${zones.map(zoneGeometrySignature).sort().join('||')}##${slabKey}##${aboveSlabKey}`);
759
+ snapshots.set(levelId, `${storeyKey}#${levelWallSnapshot(walls, nodes, levelId)}##${zones.map(zoneGeometrySignature).sort().join('||')}##${slabKey}##${aboveSlabKey}`);
705
760
  }
706
761
  return snapshots;
707
762
  }
@@ -25,7 +25,12 @@
25
25
  * the scene.
26
26
  */
27
27
  import { type TerrainData } from '../schema/terrain';
28
- import type { TerrainField } from './terrain-field';
28
+ import type { HeightPatch, TerrainField } from './terrain-field';
29
+ export type EncodedHeightPatch = Omit<HeightPatch, 'heights'> & {
30
+ heights: string;
31
+ };
32
+ export declare function encodeHeightPatch(patch: HeightPatch): EncodedHeightPatch;
33
+ export declare function decodeHeightPatch(value: unknown): HeightPatch | null;
29
34
  export declare function encodeTerrainField(field: TerrainField): TerrainData;
30
35
  /**
31
36
  * Rebuild a field from persisted data, or `null` if the data is unusable.
@@ -1 +1 @@
1
- {"version":3,"file":"terrain-codec.d.ts","sourceRoot":"","sources":["../../src/lib/terrain-codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAoDnD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAenE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAwCrE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAKzD"}
1
+ {"version":3,"file":"terrain-codec.d.ts","sourceRoot":"","sources":["../../src/lib/terrain-codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAyEhE,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,kBAAkB,CAExE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CA4BpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAUnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAgCrE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAKzD"}
@@ -76,12 +76,55 @@ function decodeBase64(text) {
76
76
  }
77
77
  return bytes;
78
78
  }
79
- export function encodeTerrainField(field) {
80
- const bytes = new Uint8Array(field.heights.length * 2);
79
+ function encodeInt16Samples(samples) {
80
+ const bytes = new Uint8Array(samples.length * 2);
81
81
  const view = new DataView(bytes.buffer);
82
- for (let i = 0; i < field.heights.length; i++) {
83
- view.setInt16(i * 2, field.heights[i] ?? 0, true);
82
+ for (let i = 0; i < samples.length; i++) {
83
+ view.setInt16(i * 2, samples[i] ?? 0, true);
84
+ }
85
+ return encodeBase64(bytes);
86
+ }
87
+ function decodeInt16Samples(text, sampleCount) {
88
+ const bytes = decodeBase64(text);
89
+ if (!bytes || encodeBase64(bytes) !== text || bytes.byteLength !== sampleCount * 2)
90
+ return null;
91
+ const samples = new Int16Array(sampleCount);
92
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
93
+ for (let i = 0; i < samples.length; i++) {
94
+ samples[i] = view.getInt16(i * 2, true);
84
95
  }
96
+ return samples;
97
+ }
98
+ export function encodeHeightPatch(patch) {
99
+ return { ...patch, heights: encodeInt16Samples(patch.heights) };
100
+ }
101
+ export function decodeHeightPatch(value) {
102
+ if (!value || typeof value !== 'object')
103
+ return null;
104
+ const patch = value;
105
+ if (!Number.isInteger(patch.col0) ||
106
+ !Number.isInteger(patch.row0) ||
107
+ !Number.isInteger(patch.cols) ||
108
+ !Number.isInteger(patch.rows)) {
109
+ return null;
110
+ }
111
+ const col0 = patch.col0;
112
+ const row0 = patch.row0;
113
+ const cols = patch.cols;
114
+ const rows = patch.rows;
115
+ if (col0 < 0 ||
116
+ row0 < 0 ||
117
+ cols < 1 ||
118
+ rows < 1 ||
119
+ col0 + cols > MAX_TERRAIN_SIDE ||
120
+ row0 + rows > MAX_TERRAIN_SIDE ||
121
+ typeof patch.heights !== 'string') {
122
+ return null;
123
+ }
124
+ const heights = decodeInt16Samples(patch.heights, cols * rows);
125
+ return heights ? { col0, row0, cols, rows, heights } : null;
126
+ }
127
+ export function encodeTerrainField(field) {
85
128
  return {
86
129
  type: 'heightfield',
87
130
  origin: [field.origin[0], field.origin[1]],
@@ -89,7 +132,7 @@ export function encodeTerrainField(field) {
89
132
  cols: field.cols,
90
133
  rows: field.rows,
91
134
  step: field.step,
92
- heights: encodeBase64(bytes),
135
+ heights: encodeInt16Samples(field.heights),
93
136
  };
94
137
  }
95
138
  /**
@@ -130,18 +173,9 @@ export function decodeTerrainField(data) {
130
173
  !Number.isFinite(d.origin[1])) {
131
174
  return null;
132
175
  }
133
- const bytes = decodeBase64(d.heights);
134
- if (!bytes)
176
+ const heights = decodeInt16Samples(d.heights, cols * rows);
177
+ if (!heights)
135
178
  return null;
136
- if (encodeBase64(bytes) !== d.heights)
137
- return null;
138
- if (bytes.byteLength !== cols * rows * 2)
139
- return null;
140
- const heights = new Int16Array(cols * rows);
141
- const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
142
- for (let i = 0; i < heights.length; i++) {
143
- heights[i] = view.getInt16(i * 2, true);
144
- }
145
179
  return {
146
180
  origin: [d.origin[0], d.origin[1]],
147
181
  spacing: d.spacing,
@@ -39,6 +39,7 @@ import { createTerrainField, type TerrainField } from './terrain-field';
39
39
  export declare function terrainFieldOf(site: (Pick<SiteNode, 'terrain'> & {
40
40
  id?: string;
41
41
  }) | null | undefined): TerrainField | null;
42
+ export declare function persistedTerrainFieldOf(site: Pick<SiteNode, 'terrain'> | null | undefined): TerrainField | null;
42
43
  /**
43
44
  * The field a site *would* sculpt into: its existing terrain, or a fresh flat
44
45
  * field sized to `options`.
@@ -1 +1 @@
1
- {"version":3,"file":"terrain-source.d.ts","sourceRoot":"","sources":["../../src/lib/terrain-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAUvE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GACrE,YAAY,GAAG,IAAI,CAkBrB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,GACjD,YAAY,CAEd;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAInE"}
1
+ {"version":3,"file":"terrain-source.d.ts","sourceRoot":"","sources":["../../src/lib/terrain-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAUvE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GACrE,YAAY,GAAG,IAAI,CAMrB;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,GACjD,YAAY,GAAG,IAAI,CAcrB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,GACjD,YAAY,CAEd;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAInE"}
@@ -48,6 +48,9 @@ export function terrainFieldOf(site) {
48
48
  if (live)
49
49
  return live;
50
50
  }
51
+ return persistedTerrainFieldOf(site);
52
+ }
53
+ export function persistedTerrainFieldOf(site) {
51
54
  const data = site?.terrain;
52
55
  if (!data)
53
56
  return null;
@@ -73,7 +76,7 @@ export function terrainFieldOf(site) {
73
76
  * would force every reader to allocate a field it does not need.
74
77
  */
75
78
  export function terrainFieldForEdit(site, options) {
76
- return terrainFieldOf(site) ?? createTerrainField(options);
79
+ return persistedTerrainFieldOf(site) ?? createTerrainField(options);
77
80
  }
78
81
  /**
79
82
  * Encode a field for persistence and prime the read cache with it.
@@ -57,4 +57,29 @@ export declare function isLevelAtSiteDatum(nodes: Record<string, AnyNode>, level
57
57
  * terrain, which is nearly all of them.
58
58
  */
59
59
  export declare function terrainSupportLift(nodes: Record<string, AnyNode>, levelId: string, x: number, z: number): number | null;
60
+ /**
61
+ * **The level base, in level-local metres, at level-local `x`/`z`** — the surface
62
+ * a node rests on when nothing built is under it. Sculpted ground where terrain
63
+ * supports this storey, `0` everywhere else.
64
+ *
65
+ * This is the one function every "nothing is under me, so I'm at zero" site in
66
+ * the codebase should call, and the reason it exists separately from
67
+ * {@link terrainSupportLift}: that function answers *"is there terrain here"*
68
+ * (nullable, so a caller can branch), while this one answers *"how high is the
69
+ * floor of the world here"* (total, so a caller does not have to know terrain
70
+ * exists). Spelling the second question `terrainSupportLift(…) ?? 0` at each
71
+ * site is what made terrain opt-in per kind — every new consumer had to remember
72
+ * to ask, and the ones that forgot silently assumed the plane `y = 0`. Kinds
73
+ * inherit terrain by resolving their base through here instead of hardcoding a
74
+ * zero; nothing has to be registered for that to work.
75
+ *
76
+ * Callers that must distinguish "flat ground" from "a built surface flush with
77
+ * the storey base" still need {@link terrainSupportLift}'s null — both read `0`
78
+ * here and only the first follows a hillside.
79
+ */
80
+ export declare function levelBaseElevationAt(nodes: Record<string, AnyNode>, levelId: string, x: number, z: number): number;
81
+ /** Record that `type`'s geometry builder resolved its origin from the ground. */
82
+ export declare function noteLevelBaseConsumer(type: string): void;
83
+ /** Whether `type`'s geometry has to be rebuilt when the sculpted ground moves. */
84
+ export declare function isLevelBaseConsumer(type: string): boolean;
60
85
  //# sourceMappingURL=terrain-support.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terrain-support.d.ts","sourceRoot":"","sources":["../../src/lib/terrain-support.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,WAAW,CAAA;AAOnD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,SAAO,CAAA;AAEtC,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAqFD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,GAAG,IAAI,CAYf"}
1
+ {"version":3,"file":"terrain-support.d.ts","sourceRoot":"","sources":["../../src/lib/terrain-support.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,WAAW,CAAA;AAOnD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,SAAO,CAAA;AAEtC,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAoGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,GAAG,IAAI,CAYf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CAER;AA0BD,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -53,12 +53,26 @@ function cachedLevelElevations(nodes) {
53
53
  levelElevationCache.set(nodes, elevations);
54
54
  return elevations;
55
55
  }
56
+ /**
57
+ * `siteOf` memoized on the `nodes` record identity, for the same reason
58
+ * `levelElevationCache` exists: the resolver is called per wall per frame (the
59
+ * spatial grid) and per wall per store update (the space-detection trigger), so
60
+ * an O(N) scan inside it makes those callers O(N²).
61
+ */
62
+ const siteCache = new WeakMap();
56
63
  function siteOf(nodes) {
64
+ const cached = siteCache.get(nodes);
65
+ if (cached !== undefined)
66
+ return cached;
67
+ let site = null;
57
68
  for (const node of Object.values(nodes)) {
58
- if (node?.type === 'site')
59
- return node;
69
+ if (node?.type === 'site') {
70
+ site = node;
71
+ break;
72
+ }
60
73
  }
61
- return null;
74
+ siteCache.set(nodes, site);
75
+ return site;
62
76
  }
63
77
  /**
64
78
  * Level-local XZ → world XZ, through the building's transform.
@@ -148,3 +162,57 @@ export function terrainSupportLift(nodes, levelId, x, z) {
148
162
  // datum other than 0 does not double-count it.
149
163
  return heightAt(field, worldX, worldZ) - datum.baseWorldY;
150
164
  }
165
+ /**
166
+ * **The level base, in level-local metres, at level-local `x`/`z`** — the surface
167
+ * a node rests on when nothing built is under it. Sculpted ground where terrain
168
+ * supports this storey, `0` everywhere else.
169
+ *
170
+ * This is the one function every "nothing is under me, so I'm at zero" site in
171
+ * the codebase should call, and the reason it exists separately from
172
+ * {@link terrainSupportLift}: that function answers *"is there terrain here"*
173
+ * (nullable, so a caller can branch), while this one answers *"how high is the
174
+ * floor of the world here"* (total, so a caller does not have to know terrain
175
+ * exists). Spelling the second question `terrainSupportLift(…) ?? 0` at each
176
+ * site is what made terrain opt-in per kind — every new consumer had to remember
177
+ * to ask, and the ones that forgot silently assumed the plane `y = 0`. Kinds
178
+ * inherit terrain by resolving their base through here instead of hardcoding a
179
+ * zero; nothing has to be registered for that to work.
180
+ *
181
+ * Callers that must distinguish "flat ground" from "a built surface flush with
182
+ * the storey base" still need {@link terrainSupportLift}'s null — both read `0`
183
+ * here and only the first follows a hillside.
184
+ */
185
+ export function levelBaseElevationAt(nodes, levelId, x, z) {
186
+ return terrainSupportLift(nodes, levelId, x, z) ?? 0;
187
+ }
188
+ /**
189
+ * Kinds whose geometry builder has actually asked for the level base, learned at
190
+ * runtime from the first build rather than declared.
191
+ *
192
+ * A builder that bakes its vertical origin (`ctx.levelBaseAt`) must be rebuilt
193
+ * when the ground moves, and core cannot see inside a pure function to know
194
+ * which kinds do. The two declarative alternatives both fail the goal: a flag on
195
+ * the definition is another per-kind opt-in — the exact thing that left half the
196
+ * scene flat on a hillside — and over-approximating to "every kind with a
197
+ * geometry builder" would rebuild every cabinet and duct on the ground floor on
198
+ * every dab of a brush stroke.
199
+ *
200
+ * So the question is answered by the call itself: asking for the ground is what
201
+ * enrolls the kind in following it. A plugin inherits terrain by reading
202
+ * `ctx.levelBaseAt` and nothing else — no registration, no capability, no core
203
+ * change. Keyed by node *type*, not id: types are bounded and stable, so the set
204
+ * cannot leak with the scene, and a kind that asked once will ask again on every
205
+ * subsequent build of every instance.
206
+ *
207
+ * Ordering is not a hazard: geometry builds on mount, long before any sculpt can
208
+ * happen, and a node created after a stroke builds against the current field.
209
+ */
210
+ const levelBaseConsumerKinds = new Set();
211
+ /** Record that `type`'s geometry builder resolved its origin from the ground. */
212
+ export function noteLevelBaseConsumer(type) {
213
+ levelBaseConsumerKinds.add(type);
214
+ }
215
+ /** Whether `type`'s geometry has to be rebuilt when the sculpted ground moves. */
216
+ export function isLevelBaseConsumer(type) {
217
+ return levelBaseConsumerKinds.has(type);
218
+ }
@@ -16,6 +16,25 @@ export type GeometryContext = {
16
16
  siblings: AnyNode[];
17
17
  /** Resolved parent (null for root-level nodes). */
18
18
  parent: AnyNode | null;
19
+ /**
20
+ * **The level base at level-local `x`/`z`** — the surface a node rests on
21
+ * when nothing built is under it. Sculpted ground where terrain supports this
22
+ * node's storey, `0` everywhere else (`levelBaseElevationAt`).
23
+ *
24
+ * This is how a pure builder that bakes its own vertical origin inherits
25
+ * terrain. Without it the only way to ask was to import the scene store,
26
+ * which a builder must not do, so every such kind hardcoded the plane
27
+ * `y = 0` — and stayed flat on a hillside. A kind that resolves its base
28
+ * through here follows the ground with nothing registered and nothing
29
+ * opted into; kinds whose Y comes from a parent group or from
30
+ * `capabilities.floorPlaced` ignore it.
31
+ *
32
+ * Populated by `<GeometrySystem>` for every `def.geometry` call. Absent for
33
+ * `def.floorplan` — the plan view draws no elevation — so builders shared
34
+ * between the two must treat it as optional rather than assume flat ground
35
+ * in 2D.
36
+ */
37
+ levelBaseAt?: (x: number, z: number) => number;
19
38
  /**
20
39
  * Pre-computed level-batch data, populated by the dispatcher when the
21
40
  * kind declares `def.computeLevelData` (3D) or
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAa/D,MAAM,MAAM,eAAe,GAAG;IAC5B,2EAA2E;IAC3E,OAAO,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS,CAAA;IACtD,qEAAqE;IACrE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,sEAAsE;IACtE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,mDAAmD;IACnD,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;IAClD,0EAA0E;IAC1E,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC9C;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,EAAE,OAAO,CAAA;QACjB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;QAC3B,wFAAwF;QACxF,WAAW,EAAE,OAAO,CAAA;QACpB,uBAAuB;QACvB,OAAO,EAAE,OAAO,CAAA;QAChB;;;;;;WAMG;QACH,MAAM,EAAE,OAAO,CAAA;QACf;;;;WAIG;QACH,OAAO,EAAE,gBAAgB,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,UAAU,GACV,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,QAAQ,CAAA;AAEZ,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,gBAAgB,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAA;AAEnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,0BAA0B,CAAA;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IACtD,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,wBAAwB,CAAA;IAClC,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,MAAM,EAAE,gBAAgB,CAAA;IACxB,OAAO,EAAE,sBAAsB,EAAE,CAAA;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,OAAO,IAAI;IACjD,6EAA6E;IAC7E,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,eAAe,KAAK,kBAAkB,EAAE,CAAA;IACjE,iEAAiE;IACjE,OAAO,CAAC,EAAE,CACR,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,2BAA2B,KACnC,kBAAkB,GAAG,IAAI,CAAA;IAC9B,yEAAyE;IACzE,KAAK,CAAC,EAAE,CACN,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,MAAM,KAChB,yBAAyB,GAAG,IAAI,CAAA;IACrC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,eAAe,KAAK,sBAAsB,GAAG,IAAI,CAAA;CAChF,CAAA;AASD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;OAOG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,yBAAyB,EAAE,MAAM,CAAA;IACjC,wBAAwB,EAAE,MAAM,CAAA;IAChC,0BAA0B,EAAE,MAAM,CAAA;IAClC;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,iBAAiB,EAAE,MAAM,CAAA;IACzB,0BAA0B,EAAE,MAAM,CAAA;IAClC,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAaD,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;AAE5D,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,cAAc,GAAG,YAAY,GAAG,KAAK,CAAA;AAE9F,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,UAAU,CAAA;AAExD,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC5C;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAA;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC3C,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAA;IAC1F;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAcD,MAAM,MAAM,QAAQ,GAAG;IACrB,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAA;IACV,0BAA0B;IAC1B,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,sEAAsE;IACtE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C;+EAC2E;IAC3E,QAAQ,EAAE,MAAM,CAAA;IAChB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;oDAEgD;IAChD,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IACjC;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AASD,MAAM,MAAM,QAAQ,GAAG;IACrB,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAA;IACX,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,iFAAiF;IACjF,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;IAC/C,4EAA4E;IAC5E,KAAK,EAAE,MAAM,MAAM,CAAA;IACnB;oFACgF;IAChF,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,2FAA2F;IAC3F,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAAC,GAC9C,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GAAG,cAAc,CAAC,GACzE,CAAC;IACC,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,SAAS,cAAc,EAAE,CAAA;CAClC,GAAG,cAAc,CAAC,GACnB,CAAC;IACC,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,GAAG,cAAc,CAAC,GACnB,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAAC,GACxE,CAAC;IACC,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,cAAc,CAAC;AACrB;;;;;;;;;;;;GAYG;GACD;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IACvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAA;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC7C;AACH;;;;;;;;;;;GAWG;GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,cAAc,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B,uEAAuE;IACvE,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,cAAc,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3D,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC7C;AACH;;;;;GAKG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACvF;;;;;GAKG;GACD;IACE,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;CAC3C;AACH;;;;;;;GAOG;GACD;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,KAAK,EAAE,cAAc,CAAA;IACrB,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAA;IACxB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB;AACH;;;;;;GAMG;GACD;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,KAAK,EAAE,cAAc,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB;AACH;;;;;;;GAOG;GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB;AACH;;;;;;;;;;GAUG;GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,cAAc,CAAA;CACtB;AACH;;;;;;GAMG;GACD;IACE,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,cAAc,CAAA;IACrB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AACH;;;;;;;;;;;;GAYG;GACD;IACE,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,cAAc,CAAA;IACrB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB;AACH;;;;;;;GAOG;GACD;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;CAClC;AACH;;;;;;GAMG;GACD;IACE,IAAI,EAAE,qBAAqB,CAAA;IAC3B,KAAK,EAAE,cAAc,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;CACd;AACH;;;;;;;;;;;;GAYG;GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,cAAc,CAAA;IACrB,GAAG,EAAE,cAAc,CAAA;IACnB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,4EAA4E;IAC5E,YAAY,EAAE,cAAc,CAAA;IAC5B,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAA;IACtB,kEAAkE;IAClE,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oEAAoE;IACpE,UAAU,CAAC,EAAE,mBAAmB,CAAA;IAChC,iFAAiF;IACjF,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,SAAS;QACjB,KAAK,EAAE,cAAc,CAAA;QACrB,GAAG,EAAE,cAAc,CAAA;QACnB;;;;;;WAMG;QACH,cAAc,CAAC,EAAE,cAAc,CAAA;QAC/B,YAAY,CAAC,EAAE,cAAc,CAAA;QAC7B,IAAI,EAAE,MAAM,CAAA;KACb,EAAE,CAAA;IACH,0EAA0E;IAC1E,YAAY,EAAE,cAAc,CAAA;IAC5B,6EAA6E;IAC7E,cAAc,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,4FAA4F;IAC5F,UAAU,CAAC,EAAE,mBAAmB,CAAA;IAChC,gFAAgF;IAChF,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC7C,CAAA;AAsBL,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;AAEtE,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,6EAA6E;IAC7E,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,EAAE;QACV,SAAS,EAAE,wBAAwB,CAAA;QACnC,SAAS,EAAE,4BAA4B,CAAA;KACxC,GAAG,IAAI,CAAA;IACR;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAA;IACpB;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,IAAI,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,KAAK,CAAC,IAAI,EAAE;QACV,IAAI,EAAE,CAAC,CAAA;QACP,8DAA8D;QAC9D,OAAO,EAAE,OAAO,CAAA;QAChB,4CAA4C;QAC5C,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACjC,oDAAoD;QACpD,gBAAgB,EAAE,wBAAwB,CAAA;QAC1C,yCAAyC;QACzC,YAAY,EAAE,MAAM,CAAA;KACrB,GAAG,0BAA0B,CAAA;CAC/B,CAAA;AAgCD,MAAM,MAAM,0BAA0B,GAAG;IACvC,iFAAiF;IACjF,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE;QACV,SAAS,EAAE,wBAAwB,CAAA;QACnC,SAAS,EAAE,4BAA4B,CAAA;KACxC,GAAG,IAAI,CAAA;IACR;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAA;IACpB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,IAAI,IAAI,CAAA;IACf;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;CAClC,KAAK,0BAA0B,CAAA;AAIhC,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,CAAC,CAAA;IACb,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAC5B,CAAA;AAID,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9D,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,GACT,SAAS,GACT,YAAY,CAAA;AAEhB,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;AAE3E;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,YAAY,CAAA;AAE/C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAEvD,MAAM,MAAM,sBAAsB,CAAC,CAAC,GAAG,OAAO,IAAI;IAChD,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,IAAI;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,CAAC,CAAA;IACT,QAAQ,EAAE,YAAY,CAAA;IACtB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAClD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,CAAA;IAE/C,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9C;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB,qFAAqF;IACrF,IAAI,CAAC,EAAE,UAAU,CAAA;IAEjB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,KAAK,QAAQ,CAAA;IAC/D;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAChB,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KACpC,aAAa,GAAG,aAAa,EAAE,GAAG,IAAI,GAAG,SAAS,CAAA;IACvD;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAA;IAC1C;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAA;IACnE;;;;;;;;;;OAUG;IACH,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE;QACjC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC/B,KAAK,OAAO,CAAA;IACb;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,KAAK,iBAAiB,GAAG,IAAI,CAAA;IAChF,sFAAsF;IACtF,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,SAAS,EAAE,CAAA;IAClE,mFAAmF;IACnF,WAAW,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;IACrC;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtE;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD;;;;OAIG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,wBAAwB,CAAA;IAC/C;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE;QACL;;;WAGG;QACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAA;QACzF;;;WAGG;QACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAA;QACvF;;;WAGG;QACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAA;KAChG,CAAA;IACD;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE;QACf;wCACgC;QAChC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,KAAK,OAAO,CAAA;KACpE,CAAA;IACD;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,MAAM,EAAE,SAAS,CAAA;QACjB,IAAI,EAAE,OAAO,CAAA;QACb,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACjC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;QAC9C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KACpD,KAAK,SAAS,SAAS,EAAE,CAAA;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACjC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;QAC9C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KACpD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAChC;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAA;IACxC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC,CAAA;IAChF,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtC;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IAEtB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;IAEzB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IAEzE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,GAAG,CAAC,EAAE,YAAY,CAAA;IAElB;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IAEjC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;AAIpF,MAAM,MAAM,eAAe,GAAG;IAC5B,kCAAkC;IAClC,CAAC,CAAC,EAAE,cAAc,CAAA;IAClB,oCAAoC;IACpC,CAAC,CAAC,EAAE,cAAc,CAAA;IAClB,4EAA4E;IAC5E,CAAC,CAAC,EAAE,cAAc,CAAA;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;OAKG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACrC;;;;OAIG;IACH,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CAC7B,CAAA;AAID;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+CAA+C;IAC/C,IAAI,EAAE,OAAO,CAAA;IACb,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAA;IACjD,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;sEACkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;qFACiF;IACjF,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,OAAO;AACjB;uDACuD;AACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACnC;;yDAEyD;GACvD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAC9B;kDACkD;GAChD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAChD;wBACwB;GACtB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC,CAAA;CAAE,CAAA;AAE5E,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAAA;AAErE,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB;IACE,IAAI,EAAE,YAAY,CAAA;IAClB,MAAM,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAC/D,GACD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAA;CAAE,CAAA;AAE3D;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,MAAM,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC;YAAE,KAAK,EAAE,CAAC,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAClE,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC;YAAE,QAAQ,EAAE,QAAQ,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,EAAE,CAAA;IACtB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,2BAA2B,CAAA;CACvF,CAAA;AAID,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAA;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAA;IAC7C;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,OAAO,EACb,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACtC;QAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5F,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAA;IACjC,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,eAAe,EAAE,CAAA;IAC5C;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;;;;;OAQG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,MAAM,GAAG,IAAI,CAAA;IACtD;;;OAGG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACtD;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;IACvC;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7D;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK;QAC3D,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;QACpC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;KACnC,GAAG,IAAI,CAAA;CACT,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC/C,0EAA0E;IAC1E,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,CAAC,GAAG,IAAI,CAAA;IAC1E,2EAA2E;IAC3E,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAA;CACpE,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,CAAA;AAE9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEzD,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,GAAG,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,KAAK,qBAAqB,GAAG,SAAS,CAAA;CACxF,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;IAC9C,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CACrD,KAAK,eAAe,EAAE,CAAA;AAEvB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAA;IACb;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oFAAoF;IACpF,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,wEAAwE;IACxE,aAAa,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACjD,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sGAAsG;IACtG,SAAS,CAAC,EAAE,QAAQ,CAAA;IACpB;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,GAAG,CAAA;CACV,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,+IAA+I;IAC/I,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;CAClC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,KAAK,cAAc,GAAG,IAAI,CAAA;IACzE;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACzB;;;;;;;OAOG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAA;CACpE,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QACT;;;;WAIG;QACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QAC3B,mDAAmD;QACnD,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC5E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,aAAa,GAAG,IAAI,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,2EAA2E;IAC3E,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,OAAO,GAAG,IAAI,CAAA;IAC1F,uEAAuE;IACvE,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,MAAM,CAAA;IACvF,WAAW,EAAE,CACX,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACtC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,WAAW,EAAE,CACX,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACtC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,iBAAiB,CAAA;KAAE,KAAK,OAAO,CAAA;IACtF;;;;OAIG;IACH,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACrC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,CACpB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxC,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC/C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACrC,oBAAoB,EAAE,CAAA;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;CACxE,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAA;IACf,eAAe,EAAE,SAAS,CAAA;IAC1B,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9B,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,OAAO,CAAA;IACb,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,SAAS,EAAE,SAAS,SAAS,EAAE,CAAA;IAC/B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;IACpC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,eAAe,GAAG,IAAI,CAAA;CAC1D,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,cAAc,GAAG,IAAI,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC5C,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,cAAc,GAAG,IAAI,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,cAAc,GAAG,IAAI,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IACjC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,eAAe,GAAG,IAAI,CAAA;CAC1D,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE/E,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC,CAAA;KAAE,CAAA;IACnD,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAA;IAC3E,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,YAAY,EAAE,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,gBAAgB,GAAG,IAAI,CAAA;CAC3D,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,CACzC,IAAI,EAAE,OAAO,EACb,GAAG,CAAC,EAAE,2BAA2B,KAC9B,oBAAoB,CAAA;AAEzB,MAAM,MAAM,6BAA6B,GAAG,CAC1C,IAAI,EAAE,OAAO,EACb,GAAG,CAAC,EAAE,2BAA2B,KAC9B,SAAS,oBAAoB,EAAE,CAAA;AAEpC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,4BAA4B,CAAA;IACxC,UAAU,CAAC,EAAE,6BAA6B,CAAA;IAC1C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC1F;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7E,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE,OAAO,EACb,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACtC,kBAAkB,GAAG,IAAI,CAAA;AAI9B,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,eAAe,GAAG;QAAE,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,EAAE,CAAA;KAAE,CAAA;IACvF,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,aAAa,CAAC,EAAE,aAAa,GAAG,UAAU,GAAG,MAAM,CAAA;CACpD,CAAA;AAID,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IACpC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACvB,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAA;IAC7C;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACnD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC;QAAE,EAAE,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAA;IAClF;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,KAC9B,KAAK,CAAC;QAAE,EAAE,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAA;IACrD;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,CAChB,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EACjC,gBAAgB,EAAE,WAAW,CAAC,SAAS,CAAC,KACrC,SAAS,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IACpE;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CACzE,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;IAC7B,oEAAoE;IACpE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IACpB;IACE,GAAG,EAAE,MAAM,CAAC,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAA;CAC7B,GACD;IAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE,GAChE;IACE,GAAG,EAAE,MAAM,CAAC,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B;uEACmE;IACnE,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;IAChC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;CAC9B,GACD;IAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE,GAC7D;IAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE,GAC9D;IAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE,GACjE;IAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE;AAC/E;;;;iEAIiE;GAC/D;IACE,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,CAAC,CAAA;IAC5E,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;CAC9B,CAAA;AAEL,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAAA;AAInF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC7C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,KAAK,OAAO,CAAA;IAC3C,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAClE,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAID,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC5C,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAEtF,MAAM,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,IAAI;IACnC,KAAK,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAA;IAChG,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,KAAK,KAAK,CAAA;IAC/D,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,KAAK,KAAK,CAAA;IACpE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAA;IACvE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAA;IAC7D,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;CAC5C,CAAA;AAGD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAA;AAItC,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,EAAE,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS,CAAA;IAClE;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IACxD,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,SAAS,CAAA;IAC1D,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAA;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAA;IAChC,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAA;IAClC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,IAAI,CAAA;IACjD;;;;;;;;;OASG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,qBAAqB,KAAK,SAAS,GAAG,IAAI,CAAA;CACjG,CAAA;AAID,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAC9B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAA;IACpD,OAAO,EAAE,MAAM,gBAAgB,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAC5D,OAAO,EAAE,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"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"}
@@ -31,9 +31,15 @@ export type LiveTerrainStroke = {
31
31
  */
32
32
  readonly lastPatch: HeightPatch | null;
33
33
  };
34
+ export type RemoteLiveTerrainStroke = {
35
+ readonly sourceId: string;
36
+ readonly field: TerrainField;
37
+ readonly lastPatch: HeightPatch;
38
+ };
34
39
  type LiveTerrainState = {
35
40
  /** Keyed by site node id — a scene can hold more than one site. */
36
41
  strokes: Map<string, LiveTerrainStroke>;
42
+ remoteStrokes: Map<string, RemoteLiveTerrainStroke>;
37
43
  /**
38
44
  * Start a stroke from `field`.
39
45
  *
@@ -56,6 +62,10 @@ type LiveTerrainState = {
56
62
  /** The live field for a site, or undefined when no stroke is in flight. */
57
63
  fieldOf(siteId: string): TerrainField | undefined;
58
64
  strokeOf(siteId: string): LiveTerrainStroke | undefined;
65
+ remoteStrokeOf(siteId: string): RemoteLiveTerrainStroke | undefined;
66
+ previewRemote(siteId: string, sourceId: string, field: TerrainField, patch: HeightPatch): void;
67
+ endRemote(siteId: string, sourceId: string): void;
68
+ endRemoteSource(sourceId: string): void;
59
69
  /** End the stroke. The caller persists the field first if it wants to keep it. */
60
70
  end(siteId: string): void;
61
71
  endAll(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-live-terrain.d.ts","sourceRoot":"","sources":["../../src/store/use-live-terrain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,mEAAmE;IACnE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACvC;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAChD,oEAAoE;IACpE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACtE,2EAA2E;IAC3E,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAA;IACvD,kFAAkF;IAClF,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,IAAI,IAAI,CAAA;CACf,CAAA;AAED,QAAA,MAAM,cAAc,+EAkCjB,CAAA;AAEH,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"use-live-terrain.d.ts","sourceRoot":"","sources":["../../src/store/use-live-terrain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;CAChC,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,mEAAmE;IACnE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACvC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IACnD;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAChD,oEAAoE;IACpE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACtE,2EAA2E;IAC3E,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAA;IACvD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAA;IACnE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IAC9F,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACjD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,kFAAkF;IAClF,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,IAAI,IAAI,CAAA;CACf,CAAA;AAED,QAAA,MAAM,cAAc,+EAiEjB,CAAA;AAEH,eAAe,cAAc,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { create } from 'zustand';
2
2
  const useLiveTerrain = create((set, get) => ({
3
3
  strokes: new Map(),
4
+ remoteStrokes: new Map(),
4
5
  begin: (siteId, field) => set((state) => {
5
6
  const next = new Map(state.strokes);
6
7
  next.set(siteId, { snapshot: field, field, lastPatch: null });
@@ -17,8 +18,29 @@ const useLiveTerrain = create((set, get) => ({
17
18
  next.set(siteId, { snapshot: current.snapshot, field, lastPatch: patch });
18
19
  return { strokes: next };
19
20
  }),
20
- fieldOf: (siteId) => get().strokes.get(siteId)?.field,
21
+ fieldOf: (siteId) => get().strokes.get(siteId)?.field ?? get().remoteStrokes.get(siteId)?.field,
21
22
  strokeOf: (siteId) => get().strokes.get(siteId),
23
+ remoteStrokeOf: (siteId) => get().remoteStrokes.get(siteId),
24
+ previewRemote: (siteId, sourceId, field, patch) => set((state) => {
25
+ const next = new Map(state.remoteStrokes);
26
+ next.set(siteId, { sourceId, field, lastPatch: patch });
27
+ return { remoteStrokes: next };
28
+ }),
29
+ endRemote: (siteId, sourceId) => set((state) => {
30
+ if (state.remoteStrokes.get(siteId)?.sourceId !== sourceId)
31
+ return state;
32
+ const next = new Map(state.remoteStrokes);
33
+ next.delete(siteId);
34
+ return { remoteStrokes: next };
35
+ }),
36
+ endRemoteSource: (sourceId) => set((state) => {
37
+ const next = new Map(state.remoteStrokes);
38
+ for (const [siteId, stroke] of next) {
39
+ if (stroke.sourceId === sourceId)
40
+ next.delete(siteId);
41
+ }
42
+ return next.size === state.remoteStrokes.size ? state : { remoteStrokes: next };
43
+ }),
22
44
  end: (siteId) => set((state) => {
23
45
  if (!state.strokes.has(siteId))
24
46
  return state;
@@ -26,6 +48,8 @@ const useLiveTerrain = create((set, get) => ({
26
48
  next.delete(siteId);
27
49
  return { strokes: next };
28
50
  }),
29
- endAll: () => set((state) => (state.strokes.size === 0 ? state : { strokes: new Map() })),
51
+ endAll: () => set((state) => state.strokes.size === 0 && state.remoteStrokes.size === 0
52
+ ? state
53
+ : { remoteStrokes: new Map(), strokes: new Map() }),
30
54
  }));
31
55
  export default useLiveTerrain;
@@ -1 +1 @@
1
- {"version":3,"file":"use-scene.d.ts","sourceRoot":"","sources":["../../src/store/use-scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-scene.d.ts","sourceRoot":"","sources":["../../src/store/use-scene.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ import { getCeilingClampBound } from '../services/storey';
23
23
  import { computeWallSlabSupport } from '../systems/slab/slab-support';
24
24
  import { DEFAULT_WALL_HEIGHT } from '../systems/wall/wall-footprint';
25
25
  import { healSceneNodes } from '../utils/heal-scene-graph';
26
+ import { removeRetiredDrawingSheetNodes } from '../utils/retired-scene-nodes';
26
27
  import * as nodeActions from './actions/node-actions';
27
28
  import { areSceneSnapshotsEqual, getSceneHistoryPauseDepth, notifySceneCommit, pauseSceneHistory, resetSceneHistoryPauseDepth, resumeSceneHistory, } from './history-control';
28
29
  import useLiveNodeOverrides from './use-live-node-overrides';
@@ -468,26 +469,6 @@ function migrateConstructionDimension(node) {
468
469
  }),
469
470
  };
470
471
  }
471
- function removeRetiredDrawingSheets(nodes) {
472
- const retiredIds = new Set(Object.entries(nodes)
473
- .filter(([, node]) => node?.type === 'drawing-sheet')
474
- .map(([id]) => id));
475
- if (retiredIds.size === 0)
476
- return;
477
- for (const id of retiredIds)
478
- delete nodes[id];
479
- for (const [id, node] of Object.entries(nodes)) {
480
- if (!Array.isArray(node?.children))
481
- continue;
482
- const children = getStringArray(node.children);
483
- if (!children.some((childId) => retiredIds.has(childId)))
484
- continue;
485
- nodes[id] = {
486
- ...node,
487
- children: children.filter((childId) => !retiredIds.has(childId)),
488
- };
489
- }
490
- }
491
472
  function migrateWallAssembly(node) {
492
473
  if (!Object.hasOwn(node, 'assemblyLayers'))
493
474
  return node;
@@ -516,8 +497,7 @@ function migrateNodes(nodes) {
516
497
  // Repair pre-existing corruption (null children, zero-length walls) before
517
498
  // any per-type migration runs, so already-saved scenes load cleanly.
518
499
  const { nodes: healed } = healSceneNodes(nodes);
519
- const patchedNodes = { ...healed };
520
- removeRetiredDrawingSheets(patchedNodes);
500
+ const { nodes: patchedNodes } = removeRetiredDrawingSheetNodes(healed);
521
501
  // Scene materials minted while moving legacy wall fields onto `node.slots`;
522
502
  // merged into the scene material map by the caller (`setScene`).
523
503
  const mintedMaterials = {};
@@ -131,7 +131,20 @@ export type WallSlabSupportSegment = {
131
131
  * surface the cursor ray actually hit never captures the elected base.
132
132
  * `baseSegments` / `baseElevation` stay uncapped (geometry fill-down), and
133
133
  * an explicit `preferredSlabId` still wins over the cap.
134
+ *
135
+ * `levelBase` is what "no slab supports this here" evaluates to — the
136
+ * sculpted ground under the wall (`levelBaseElevationAt`), or 0 for a level
137
+ * with no terrain under it. A caller-resolved scalar rather than a terrain
138
+ * lookup in here, so this stays pure and the sample stays at the wall's own
139
+ * XZ. It substitutes for every place this function used to write a literal
140
+ * `0`, and nowhere else: a slab that supports the wall's faces still wins
141
+ * outright, so a slab pad on a hillside keeps its wall at the pad's
142
+ * elevation instead of being overruled by the ground around it. The one
143
+ * clamp — center-only support, where the old code already clamped a
144
+ * recessed slab up to `0` so a wall over a pool didn't sink — generalizes to
145
+ * "never below the ground", which is the same rule with the ground no longer
146
+ * assumed flat.
134
147
  */
135
- export declare function computeWallSlabSupport(wallLike: WallOverlapInput, slabs: readonly SlabNode[], levelWalls: WallNode[], preferredSlabId?: string | null, maxElevation?: number | null): WallSlabSupport;
148
+ export declare function computeWallSlabSupport(wallLike: WallOverlapInput, slabs: readonly SlabNode[], levelWalls: WallNode[], preferredSlabId?: string | null, maxElevation?: number | null, levelBase?: number): WallSlabSupport;
136
149
  export declare function computeWallSlabElevation(wallLike: WallOverlapInput, slabs: readonly SlabNode[], levelWalls: WallNode[]): number;
137
150
  //# sourceMappingURL=slab-support.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slab-support.d.ts","sourceRoot":"","sources":["../../../src/systems/slab/slab-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slab-support.d.ts","sourceRoot":"","sources":["../../../src/systems/slab/slab-support.ts"],"names":[],"mappings":"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"}
@@ -382,15 +382,33 @@ const WALL_SLAB_ELEVATION_POOL_EPSILON = 1e-4;
382
382
  * surface the cursor ray actually hit never captures the elected base.
383
383
  * `baseSegments` / `baseElevation` stay uncapped (geometry fill-down), and
384
384
  * an explicit `preferredSlabId` still wins over the cap.
385
+ *
386
+ * `levelBase` is what "no slab supports this here" evaluates to — the
387
+ * sculpted ground under the wall (`levelBaseElevationAt`), or 0 for a level
388
+ * with no terrain under it. A caller-resolved scalar rather than a terrain
389
+ * lookup in here, so this stays pure and the sample stays at the wall's own
390
+ * XZ. It substitutes for every place this function used to write a literal
391
+ * `0`, and nowhere else: a slab that supports the wall's faces still wins
392
+ * outright, so a slab pad on a hillside keeps its wall at the pad's
393
+ * elevation instead of being overruled by the ground around it. The one
394
+ * clamp — center-only support, where the old code already clamped a
395
+ * recessed slab up to `0` so a wall over a pool didn't sink — generalizes to
396
+ * "never below the ground", which is the same rule with the ground no longer
397
+ * assumed flat.
385
398
  */
386
- export function computeWallSlabSupport(wallLike, slabs, levelWalls, preferredSlabId, maxElevation) {
399
+ export function computeWallSlabSupport(wallLike, slabs, levelWalls, preferredSlabId, maxElevation, levelBase = 0) {
387
400
  const { start, end, curveOffset = 0, thickness = DEFAULT_WALL_THICKNESS } = wallLike;
388
401
  const halfThickness = Math.max(thickness / 2, 0);
389
402
  const polylines = wallTestPolylines(start, end, curveOffset, halfThickness);
390
403
  const polylineLengths = polylines.map(polylineLength);
391
404
  const wallLength = polylineLengths[0];
392
405
  if (wallLength < 1e-9) {
393
- return { elevation: 0, electedSlabId: null, baseElevation: 0, baseSegments: [] };
406
+ return {
407
+ elevation: levelBase,
408
+ electedSlabId: null,
409
+ baseElevation: levelBase,
410
+ baseSegments: [],
411
+ };
394
412
  }
395
413
  const minSupport = Math.max(1e-3, Math.min(WALL_SLAB_MIN_OVERLAP, wallLength * 0.5));
396
414
  const groups = [];
@@ -492,7 +510,7 @@ export function computeWallSlabSupport(wallLike, slabs, levelWalls, preferredSla
492
510
  const leftElevation = polylines.length >= 3 ? highestAt(normalizedByGroup, 1, midpoint) : Number.NEGATIVE_INFINITY;
493
511
  const rightElevation = polylines.length >= 3 ? highestAt(normalizedByGroup, 2, midpoint) : Number.NEGATIVE_INFINITY;
494
512
  const faceElevations = [leftElevation, rightElevation].filter(Number.isFinite);
495
- const segmentElevation = faceElevations.length > 0 ? Math.min(...faceElevations) : Math.max(centerElevation, 0);
513
+ const segmentElevation = faceElevations.length > 0 ? Math.min(...faceElevations) : Math.max(centerElevation, levelBase);
496
514
  if (electableNormalizedGroups === normalizedByGroup) {
497
515
  if (faceElevations.length > 0 || Number.isFinite(centerElevation)) {
498
516
  accumulateCarry(segmentElevation, end - start);
@@ -508,7 +526,7 @@ export function computeWallSlabSupport(wallLike, slabs, levelWalls, preferredSla
508
526
  : Number.NEGATIVE_INFINITY;
509
527
  const electFaces = [electLeft, electRight].filter(Number.isFinite);
510
528
  if (electFaces.length > 0 || Number.isFinite(electCenter)) {
511
- accumulateCarry(electFaces.length > 0 ? Math.min(...electFaces) : Math.max(electCenter, 0), end - start);
529
+ accumulateCarry(electFaces.length > 0 ? Math.min(...electFaces) : Math.max(electCenter, levelBase), end - start);
512
530
  }
513
531
  }
514
532
  const previous = baseSegments[baseSegments.length - 1];
@@ -538,7 +556,7 @@ export function computeWallSlabSupport(wallLike, slabs, levelWalls, preferredSla
538
556
  : majorityElevation !== Number.NEGATIVE_INFINITY
539
557
  ? majorityElevation
540
558
  : bestElevation === Number.NEGATIVE_INFINITY
541
- ? 0
559
+ ? levelBase
542
560
  : bestElevation;
543
561
  const electedSlabId = preferredElectedSlabId ??
544
562
  evaluatedGroups
@@ -0,0 +1,6 @@
1
+ export type RetiredSceneNodeMigration<TNode> = {
2
+ nodes: Record<string, TNode>;
3
+ removedNodeIds: ReadonlySet<string>;
4
+ };
5
+ export declare function removeRetiredDrawingSheetNodes<TNode>(nodes: Record<string, TNode>): RetiredSceneNodeMigration<TNode>;
6
+ //# sourceMappingURL=retired-scene-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retired-scene-nodes.d.ts","sourceRoot":"","sources":["../../src/utils/retired-scene-nodes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,CAAC,KAAK,IAAI;IAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC5B,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CACpC,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAClD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC3B,yBAAyB,CAAC,KAAK,CAAC,CAkClC"}
@@ -0,0 +1,30 @@
1
+ export function removeRetiredDrawingSheetNodes(nodes) {
2
+ const removedNodeIds = new Set(Object.entries(nodes)
3
+ .filter(([, node]) => {
4
+ return (node !== null &&
5
+ typeof node === 'object' &&
6
+ !Array.isArray(node) &&
7
+ node.type === 'drawing-sheet');
8
+ })
9
+ .map(([id]) => id));
10
+ if (removedNodeIds.size === 0)
11
+ return { nodes, removedNodeIds };
12
+ const migratedNodes = { ...nodes };
13
+ for (const id of removedNodeIds)
14
+ delete migratedNodes[id];
15
+ for (const [id, node] of Object.entries(migratedNodes)) {
16
+ if (!(node !== null && typeof node === 'object' && !Array.isArray(node)))
17
+ continue;
18
+ const children = node.children;
19
+ if (!Array.isArray(children))
20
+ continue;
21
+ if (!children.some((childId) => typeof childId === 'string' && removedNodeIds.has(childId))) {
22
+ continue;
23
+ }
24
+ migratedNodes[id] = {
25
+ ...node,
26
+ children: children.filter((childId) => !(typeof childId === 'string' && removedNodeIds.has(childId))),
27
+ };
28
+ }
29
+ return { nodes: migratedNodes, removedNodeIds };
30
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pascal-app/core",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.3",
4
4
  "description": "Core library for Pascal 3D building editor",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,6 +16,11 @@
16
16
  "import": "./dist/utils/clone-scene-graph.js",
17
17
  "default": "./dist/utils/clone-scene-graph.js"
18
18
  },
19
+ "./scene-migrations": {
20
+ "types": "./dist/utils/retired-scene-nodes.d.ts",
21
+ "import": "./dist/utils/retired-scene-nodes.js",
22
+ "default": "./dist/utils/retired-scene-nodes.js"
23
+ },
19
24
  "./registry": {
20
25
  "types": "./dist/registry/index.d.ts",
21
26
  "import": "./dist/registry/index.js",