@pascal-app/core 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-operations/__fixtures__/native-materials.d.ts +4 -0
- package/dist/agent-operations/__fixtures__/native-materials.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts +11283 -11279
- package/dist/agent-operations/__fixtures__/roof-bearing-cases.d.ts.map +1 -1
- package/dist/agent-operations/__fixtures__/verify-scene-cases.d.ts +77 -77
- package/dist/agent-operations/author-scene.d.ts.map +1 -1
- package/dist/agent-operations/author-scene.js +2 -3
- package/dist/agent-operations/circulation-spaces.d.ts +3181 -3180
- package/dist/agent-operations/circulation-spaces.d.ts.map +1 -1
- package/dist/agent-operations/level-reads.js +1 -1
- package/dist/agent-operations/move-plan.d.ts.map +1 -1
- package/dist/agent-operations/move-plan.js +11 -9
- package/dist/agent-operations/scene-queries.d.ts +2328 -2327
- package/dist/agent-operations/scene-queries.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.d.ts.map +1 -1
- package/dist/agent-operations/verify-scene.js +4 -2
- package/dist/agent-operations/wall-object-observations.d.ts.map +1 -1
- package/dist/agent-operations/wall-object-observations.js +1 -1
- package/dist/agent-tools/wall-openings.js +2 -2
- package/dist/building/__fixtures__/wall-opening-cases.d.ts +229 -228
- package/dist/building/__fixtures__/wall-opening-cases.d.ts.map +1 -1
- package/dist/building/level-duplication.d.ts +3681 -3679
- package/dist/building/level-duplication.d.ts.map +1 -1
- package/dist/building/merge-windows.d.ts.map +1 -1
- package/dist/building/merge-windows.js +4 -3
- package/dist/building/wall-openings.d.ts +20 -6
- package/dist/building/wall-openings.d.ts.map +1 -1
- package/dist/building/wall-openings.js +74 -25
- package/dist/commands/structure/shared.d.ts +1 -0
- package/dist/commands/structure/shared.d.ts.map +1 -1
- package/dist/commands/structure/zone-wall-merge.d.ts +2351 -2348
- package/dist/commands/structure/zone-wall-merge.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.d.ts.map +1 -1
- package/dist/contracts/reference-inventory.js +0 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +6 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-manager.js +30 -9
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +3181 -3180
- package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
- package/dist/hooks/spatial-grid/spatial-grid-sync.js +8 -4
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -4
- package/dist/lib/__fixtures__/mezzanine.d.ts +8595 -8591
- package/dist/lib/__fixtures__/mezzanine.d.ts.map +1 -1
- package/dist/lib/absorb-wall-separators.d.ts +1664 -1663
- package/dist/lib/absorb-wall-separators.d.ts.map +1 -1
- package/dist/lib/build-mode.d.ts +11 -0
- package/dist/lib/build-mode.d.ts.map +1 -0
- package/dist/lib/build-mode.js +24 -0
- package/dist/lib/corner-pair.d.ts +2 -0
- package/dist/lib/corner-pair.d.ts.map +1 -1
- package/dist/lib/door-interaction.d.ts +14 -0
- package/dist/lib/door-interaction.d.ts.map +1 -0
- package/dist/lib/door-interaction.js +62 -0
- package/dist/lib/elevator-support.d.ts +15 -0
- package/dist/lib/elevator-support.d.ts.map +1 -0
- package/dist/lib/elevator-support.js +40 -0
- package/dist/lib/floor-intent-changes.d.ts.map +1 -1
- package/dist/lib/floor-intent-changes.js +6 -4
- package/dist/lib/hierarchy.d.ts +19 -0
- package/dist/lib/hierarchy.d.ts.map +1 -0
- package/dist/lib/hierarchy.js +53 -0
- package/dist/lib/opening-floor-datum.d.ts +1 -1
- package/dist/lib/opening-floor-datum.d.ts.map +1 -1
- package/dist/lib/opening-floor-datum.js +2 -2
- package/dist/lib/own-floor-intent.d.ts.map +1 -1
- package/dist/lib/own-floor-intent.js +2 -2
- package/dist/lib/polygon-boolean.d.ts.map +1 -1
- package/dist/lib/polygon-boolean.js +2 -1
- package/dist/lib/room-floor-elevation.d.ts +12 -0
- package/dist/lib/room-floor-elevation.d.ts.map +1 -0
- package/dist/lib/room-floor-elevation.js +41 -0
- package/dist/lib/room-floor-feasibility.d.ts.map +1 -1
- package/dist/lib/room-floor-feasibility.js +1 -1
- package/dist/lib/space-detection.d.ts.map +1 -1
- package/dist/lib/space-detection.js +1 -0
- package/dist/lib/wall-face-script.d.ts.map +1 -1
- package/dist/lib/wall-face-script.js +3 -3
- package/dist/lib/window-interaction.d.ts +16 -0
- package/dist/lib/window-interaction.d.ts.map +1 -0
- package/dist/lib/window-interaction.js +82 -0
- package/dist/lib/zone-quantities.js +1 -1
- package/dist/node-slots/column.d.ts +5 -0
- package/dist/node-slots/column.d.ts.map +1 -1
- package/dist/node-slots/column.js +10 -0
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/registry.d.ts +5 -0
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +10 -0
- package/dist/registry/types.d.ts +24 -0
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/nodes/roof-segment-resize.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment-resize.js +2 -2
- package/dist/schema/nodes/roof-segment.d.ts +2 -0
- package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
- package/dist/schema/nodes/roof-segment.js +40 -2
- package/dist/schema/nodes/wall.d.ts +1 -0
- package/dist/schema/nodes/wall.d.ts.map +1 -1
- package/dist/schema/nodes/wall.js +6 -0
- package/dist/schema/types.d.ts +1 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/movement.d.ts +7 -0
- package/dist/services/movement.d.ts.map +1 -1
- package/dist/services/movement.js +13 -0
- package/dist/services/port-connectivity.d.ts +15 -6
- package/dist/services/port-connectivity.d.ts.map +1 -1
- package/dist/services/port-connectivity.js +83 -17
- package/dist/services/roof-bearing.js +2 -1
- package/dist/services/storey.d.ts +6 -1
- package/dist/services/storey.d.ts.map +1 -1
- package/dist/services/storey.js +11 -2
- package/dist/spatial/usage-field/swings.d.ts +1 -0
- package/dist/spatial/usage-field/swings.d.ts.map +1 -1
- package/dist/spatial/usage-field/walls.d.ts +2 -0
- package/dist/spatial/usage-field/walls.d.ts.map +1 -1
- package/dist/spatial/usage-field/walls.js +18 -4
- package/dist/store/actions/node-actions.d.ts +1614 -1613
- package/dist/store/actions/node-actions.d.ts.map +1 -1
- package/dist/store/actions/node-actions.js +23 -5
- package/dist/store/derived-node-guard.d.ts.map +1 -1
- package/dist/store/derived-node-guard.js +2 -1
- package/dist/store/scene-annotations.d.ts +5033 -5031
- package/dist/store/scene-annotations.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-geometry.d.ts +25 -0
- package/dist/systems/elevator/elevator-geometry.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-geometry.js +40 -8
- package/dist/systems/elevator/elevator-opening-sync.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-opening-sync.js +4 -35
- package/dist/systems/elevator/elevator-runtime.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-runtime.js +95 -18
- package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
- package/dist/systems/elevator/elevator-service.js +24 -4
- package/dist/systems/roof/roof-elevation.d.ts.map +1 -1
- package/dist/systems/roof/roof-elevation.js +2 -1
- package/dist/systems/slab/__fixtures__/floor-step.d.ts +1614 -1610
- package/dist/systems/slab/__fixtures__/floor-step.d.ts.map +1 -1
- package/dist/systems/slab/__fixtures__/raised-room.d.ts +2924 -2920
- package/dist/systems/slab/__fixtures__/raised-room.d.ts.map +1 -1
- package/dist/systems/stair/stair-opening-preview.d.ts +1147 -1146
- package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.d.ts +10 -0
- package/dist/systems/wall/wall-curve.d.ts.map +1 -1
- package/dist/systems/wall/wall-curve.js +38 -0
- package/dist/systems/wall/wall-frame.d.ts.map +1 -1
- package/dist/systems/wall/wall-frame.js +8 -0
- package/dist/systems/wall/wall-merge.d.ts +9 -1
- package/dist/systems/wall/wall-merge.d.ts.map +1 -1
- package/dist/systems/wall/wall-merge.js +38 -6
- package/dist/systems/wall/wall-top.d.ts +10 -3
- package/dist/systems/wall/wall-top.d.ts.map +1 -1
- package/dist/systems/wall/wall-top.js +24 -8
- package/dist/systems/wall/wall-topology.d.ts.map +1 -1
- package/dist/systems/wall/wall-topology.js +19 -1
- package/dist/utils/ensure-scene-openings.d.ts +4354 -4352
- package/dist/utils/ensure-scene-openings.d.ts.map +1 -1
- package/dist/utils/floor-plate-migration.d.ts +1664 -1663
- package/dist/utils/floor-plate-migration.d.ts.map +1 -1
- package/dist/utils/measurement-format.d.ts +27 -0
- package/dist/utils/measurement-format.d.ts.map +1 -0
- package/dist/utils/measurement-format.js +143 -0
- package/dist/utils/owned-floor-opening-migration.d.ts +1147 -1146
- package/dist/utils/owned-floor-opening-migration.d.ts.map +1 -1
- package/dist/utils/reconcile-structure-on-load.d.ts +439 -438
- package/dist/utils/reconcile-structure-on-load.d.ts.map +1 -1
- package/dist/validation/validate-build-json.d.ts.map +1 -1
- package/dist/validation/validate-build-json.js +3 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floor-plate-migration.d.ts","sourceRoot":"","sources":["../../src/utils/floor-plate-migration.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,OAAO,EAAqC,MAAM,WAAW,CAAA;AAkB3E,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,aAAa,GAAG,oBAAoB,GAAG,cAAc,GAAG,uBAAuB,CAAA;IACrF,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAqCD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAU,EAClD,QAAQ,UAAO
|
|
1
|
+
{"version":3,"file":"floor-plate-migration.d.ts","sourceRoot":"","sources":["../../src/utils/floor-plate-migration.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,OAAO,EAAqC,MAAM,WAAW,CAAA;AAkB3E,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,aAAa,GAAG,oBAAoB,GAAG,cAAc,GAAG,uBAAuB,CAAA;IACrF,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAqCD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAU,EAClD,QAAQ,UAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoLhB;AAw0CD,eAAO,MAAM,kBAAkB;;;;;;CAI9B,CAAA;AAED,eAAO,MAAM,gBAAgB;;;;;;;CAG1B,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MeasurementPoint } from '../schema/index.js';
|
|
2
|
+
export type LinearUnit = 'metric' | 'imperial';
|
|
3
|
+
export type MetricNotation = 'meters' | 'millimeters';
|
|
4
|
+
type MeasurementAngleArcOptions = {
|
|
5
|
+
radius?: number;
|
|
6
|
+
sampleCount?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function buildMeasurementAngleArcPoints(start: MeasurementPoint, vertex: MeasurementPoint, end: MeasurementPoint, options?: MeasurementAngleArcOptions): MeasurementPoint[];
|
|
9
|
+
type LinearControlValueOptions = {
|
|
10
|
+
minMeters?: number;
|
|
11
|
+
maxMeters?: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function metersToLinearUnit(meters: number, unit: LinearUnit): number;
|
|
14
|
+
export declare function linearUnitToMeters(value: number, unit: LinearUnit): number;
|
|
15
|
+
export declare function parseLinearMeasurementInput(value: string, unit: LinearUnit, locale: string): number | null;
|
|
16
|
+
export declare function linearControlValueToMeters(value: number, unit: LinearUnit, options?: LinearControlValueOptions): number;
|
|
17
|
+
export declare function getLinearUnitLabel(unit: LinearUnit): string;
|
|
18
|
+
export declare function squareMetersToAreaUnit(squareMeters: number, unit: LinearUnit): number;
|
|
19
|
+
export declare function getAreaUnitLabel(unit: LinearUnit): string;
|
|
20
|
+
export declare function formatAreaLabel(squareMeters: number, unit: LinearUnit, fractionDigits?: number): string;
|
|
21
|
+
export declare function cubicMetersToVolumeUnit(cubicMeters: number, unit: LinearUnit): number;
|
|
22
|
+
export declare function getVolumeUnitLabel(unit: LinearUnit): string;
|
|
23
|
+
export declare function formatVolumeLabel(cubicMeters: number, unit: LinearUnit, fractionDigits?: number): string;
|
|
24
|
+
export declare function formatLinearMeasurement(meters: number, unit: LinearUnit, metricNotation?: MetricNotation): string;
|
|
25
|
+
export declare function formatAngleRadians(angle: number): string;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=measurement-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measurement-format.d.ts","sourceRoot":"","sources":["../../src/utils/measurement-format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAEjD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAA;AAC9C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,aAAa,CAAA;AAErD,KAAK,0BAA0B,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AA2BD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,gBAAgB,EACrB,OAAO,GAAE,0BAA+B,GACvC,gBAAgB,EAAE,CAgDpB;AAKD,KAAK,yBAAyB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAE3E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAE1E;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAGf;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,yBAA8B,GACtC,MAAM,CAMR;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE3D;AAKD,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAErF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,UAAU,EAChB,cAAc,SAAI,GACjB,MAAM,CAOR;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAErF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,EAChB,cAAc,SAAI,GACjB,MAAM,CAOR;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,cAAc,GAAE,cAAyB,GACxC,MAAM,CA6BR;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,UAE/C"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { formatNumber, parseLocalizedNumber } from '../i18n/format.js';
|
|
2
|
+
const ANGLE_ARC_EPSILON = 1e-9;
|
|
3
|
+
const subtractPoint = (point, origin) => [
|
|
4
|
+
point[0] - origin[0],
|
|
5
|
+
point[1] - origin[1],
|
|
6
|
+
point[2] - origin[2],
|
|
7
|
+
];
|
|
8
|
+
const pointLength = (point) => Math.hypot(...point);
|
|
9
|
+
const scalePoint = (point, scale) => [
|
|
10
|
+
point[0] * scale,
|
|
11
|
+
point[1] * scale,
|
|
12
|
+
point[2] * scale,
|
|
13
|
+
];
|
|
14
|
+
const crossPoint = (first, second) => [
|
|
15
|
+
first[1] * second[2] - first[2] * second[1],
|
|
16
|
+
first[2] * second[0] - first[0] * second[2],
|
|
17
|
+
first[0] * second[1] - first[1] * second[0],
|
|
18
|
+
];
|
|
19
|
+
const dotPoint = (first, second) => first[0] * second[0] + first[1] * second[1] + first[2] * second[2];
|
|
20
|
+
export function buildMeasurementAngleArcPoints(start, vertex, end, options = {}) {
|
|
21
|
+
if (![...start, ...vertex, ...end].every(Number.isFinite))
|
|
22
|
+
return [];
|
|
23
|
+
const startVector = subtractPoint(start, vertex);
|
|
24
|
+
const endVector = subtractPoint(end, vertex);
|
|
25
|
+
const startLength = pointLength(startVector);
|
|
26
|
+
const endLength = pointLength(endVector);
|
|
27
|
+
if (startLength <= ANGLE_ARC_EPSILON || endLength <= ANGLE_ARC_EPSILON)
|
|
28
|
+
return [];
|
|
29
|
+
const startDirection = scalePoint(startVector, 1 / startLength);
|
|
30
|
+
const endDirection = scalePoint(endVector, 1 / endLength);
|
|
31
|
+
const cosine = Math.max(-1, Math.min(1, dotPoint(startDirection, endDirection)));
|
|
32
|
+
const angle = Math.acos(cosine);
|
|
33
|
+
if (angle <= 1e-4)
|
|
34
|
+
return [];
|
|
35
|
+
let normal = crossPoint(startDirection, endDirection);
|
|
36
|
+
let normalLength = pointLength(normal);
|
|
37
|
+
if (normalLength <= ANGLE_ARC_EPSILON) {
|
|
38
|
+
const reference = Math.abs(startDirection[1]) < 0.9 ? [0, 1, 0] : [1, 0, 0];
|
|
39
|
+
normal = crossPoint(startDirection, reference);
|
|
40
|
+
normalLength = pointLength(normal);
|
|
41
|
+
}
|
|
42
|
+
if (normalLength <= ANGLE_ARC_EPSILON)
|
|
43
|
+
return [];
|
|
44
|
+
normal = scalePoint(normal, 1 / normalLength);
|
|
45
|
+
const tangent = crossPoint(normal, startDirection);
|
|
46
|
+
const shortestSide = Math.min(startLength, endLength);
|
|
47
|
+
const preferredRadius = options.radius ?? Math.min(Math.max(shortestSide * 0.28, 0.08), 0.75);
|
|
48
|
+
const radius = Math.min(Math.max(preferredRadius, 0), shortestSide * 0.45);
|
|
49
|
+
if (radius <= ANGLE_ARC_EPSILON)
|
|
50
|
+
return [];
|
|
51
|
+
const sampleCount = Math.min(64, Math.max(4, Math.round(options.sampleCount ?? Math.max(8, (angle / Math.PI) * 32))));
|
|
52
|
+
return Array.from({ length: sampleCount + 1 }, (_, index) => {
|
|
53
|
+
const sampleAngle = angle * (index / sampleCount);
|
|
54
|
+
const direction = [
|
|
55
|
+
startDirection[0] * Math.cos(sampleAngle) + tangent[0] * Math.sin(sampleAngle),
|
|
56
|
+
startDirection[1] * Math.cos(sampleAngle) + tangent[1] * Math.sin(sampleAngle),
|
|
57
|
+
startDirection[2] * Math.cos(sampleAngle) + tangent[2] * Math.sin(sampleAngle),
|
|
58
|
+
];
|
|
59
|
+
return [
|
|
60
|
+
vertex[0] + direction[0] * radius,
|
|
61
|
+
vertex[1] + direction[1] * radius,
|
|
62
|
+
vertex[2] + direction[2] * radius,
|
|
63
|
+
];
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
const METERS_PER_FOOT = 0.3048;
|
|
67
|
+
const FEET_PER_METER = 1 / METERS_PER_FOOT;
|
|
68
|
+
export function metersToLinearUnit(meters, unit) {
|
|
69
|
+
return unit === 'imperial' ? meters * FEET_PER_METER : meters;
|
|
70
|
+
}
|
|
71
|
+
export function linearUnitToMeters(value, unit) {
|
|
72
|
+
return unit === 'imperial' ? value * METERS_PER_FOOT : value;
|
|
73
|
+
}
|
|
74
|
+
export function parseLinearMeasurementInput(value, unit, locale) {
|
|
75
|
+
const parsed = parseLocalizedNumber(value, locale);
|
|
76
|
+
return parsed === null ? null : linearUnitToMeters(parsed, unit);
|
|
77
|
+
}
|
|
78
|
+
export function linearControlValueToMeters(value, unit, options = {}) {
|
|
79
|
+
const meters = linearUnitToMeters(value, unit);
|
|
80
|
+
const minMeters = options.minMeters ?? Number.NEGATIVE_INFINITY;
|
|
81
|
+
const maxMeters = options.maxMeters ?? Number.POSITIVE_INFINITY;
|
|
82
|
+
return Math.min(Math.max(meters, minMeters), maxMeters);
|
|
83
|
+
}
|
|
84
|
+
export function getLinearUnitLabel(unit) {
|
|
85
|
+
return unit === 'imperial' ? 'ft' : 'm';
|
|
86
|
+
}
|
|
87
|
+
const SQUARE_FEET_PER_SQUARE_METER = FEET_PER_METER * FEET_PER_METER;
|
|
88
|
+
const CUBIC_FEET_PER_CUBIC_METER = SQUARE_FEET_PER_SQUARE_METER * FEET_PER_METER;
|
|
89
|
+
export function squareMetersToAreaUnit(squareMeters, unit) {
|
|
90
|
+
return unit === 'imperial' ? squareMeters * SQUARE_FEET_PER_SQUARE_METER : squareMeters;
|
|
91
|
+
}
|
|
92
|
+
export function getAreaUnitLabel(unit) {
|
|
93
|
+
return unit === 'imperial' ? 'ft²' : 'm²';
|
|
94
|
+
}
|
|
95
|
+
export function formatAreaLabel(squareMeters, unit, fractionDigits = 1) {
|
|
96
|
+
if (!Number.isFinite(squareMeters))
|
|
97
|
+
return '--';
|
|
98
|
+
return `${formatNumber(squareMetersToAreaUnit(squareMeters, unit), {
|
|
99
|
+
min: fractionDigits,
|
|
100
|
+
max: fractionDigits,
|
|
101
|
+
})}${getAreaUnitLabel(unit)}`;
|
|
102
|
+
}
|
|
103
|
+
export function cubicMetersToVolumeUnit(cubicMeters, unit) {
|
|
104
|
+
return unit === 'imperial' ? cubicMeters * CUBIC_FEET_PER_CUBIC_METER : cubicMeters;
|
|
105
|
+
}
|
|
106
|
+
export function getVolumeUnitLabel(unit) {
|
|
107
|
+
return unit === 'imperial' ? 'ft³' : 'm³';
|
|
108
|
+
}
|
|
109
|
+
export function formatVolumeLabel(cubicMeters, unit, fractionDigits = 1) {
|
|
110
|
+
if (!Number.isFinite(cubicMeters))
|
|
111
|
+
return '--';
|
|
112
|
+
return `${formatNumber(cubicMetersToVolumeUnit(cubicMeters, unit), {
|
|
113
|
+
min: fractionDigits,
|
|
114
|
+
max: fractionDigits,
|
|
115
|
+
})}${getVolumeUnitLabel(unit)}`;
|
|
116
|
+
}
|
|
117
|
+
export function formatLinearMeasurement(meters, unit, metricNotation = 'meters') {
|
|
118
|
+
if (!Number.isFinite(meters))
|
|
119
|
+
return '--';
|
|
120
|
+
const absoluteMeters = Math.abs(meters);
|
|
121
|
+
if (unit === 'imperial') {
|
|
122
|
+
const feet = metersToLinearUnit(absoluteMeters, unit);
|
|
123
|
+
let wholeFeet = Math.floor(feet);
|
|
124
|
+
let inches = Math.round((feet - wholeFeet) * 12);
|
|
125
|
+
if (inches === 12) {
|
|
126
|
+
wholeFeet += 1;
|
|
127
|
+
inches = 0;
|
|
128
|
+
}
|
|
129
|
+
const sign = meters < 0 && (wholeFeet !== 0 || inches !== 0) ? '-' : '';
|
|
130
|
+
return `${sign}${wholeFeet}'${inches}"`;
|
|
131
|
+
}
|
|
132
|
+
if (metricNotation === 'millimeters') {
|
|
133
|
+
const roundedMillimeters = Math.round(absoluteMeters * 1000);
|
|
134
|
+
const sign = meters < 0 && roundedMillimeters !== 0 ? '-' : '';
|
|
135
|
+
return `${sign}${formatNumber(roundedMillimeters, { max: 0 })}mm`;
|
|
136
|
+
}
|
|
137
|
+
const roundedMeters = Number.parseFloat(absoluteMeters.toFixed(2));
|
|
138
|
+
const sign = meters < 0 && roundedMeters !== 0 ? '-' : '';
|
|
139
|
+
return `${sign}${formatNumber(roundedMeters, { max: 2 })}m`;
|
|
140
|
+
}
|
|
141
|
+
export function formatAngleRadians(angle) {
|
|
142
|
+
return `${Math.round((angle * 180) / Math.PI)}°`;
|
|
143
|
+
}
|