@ifc-lite/drawing-2d 1.16.2 → 1.18.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/drawing-generator.d.ts +9 -1
- package/dist/drawing-generator.d.ts.map +1 -1
- package/dist/drawing-generator.js +86 -62
- package/dist/drawing-generator.js.map +1 -1
- package/dist/edge-extractor.d.ts +13 -18
- package/dist/edge-extractor.d.ts.map +1 -1
- package/dist/edge-extractor.js +87 -73
- package/dist/edge-extractor.js.map +1 -1
- package/dist/feature-elements.d.ts +7 -0
- package/dist/feature-elements.d.ts.map +1 -0
- package/dist/feature-elements.js +54 -0
- package/dist/feature-elements.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/math.d.ts +6 -1
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +6 -1
- package/dist/math.js.map +1 -1
- package/dist/profile-projector.d.ts +23 -16
- package/dist/profile-projector.d.ts.map +1 -1
- package/dist/profile-projector.js +63 -52
- package/dist/profile-projector.js.map +1 -1
- package/dist/projection-bands.d.ts +107 -0
- package/dist/projection-bands.d.ts.map +1 -0
- package/dist/projection-bands.js +185 -0
- package/dist/projection-bands.js.map +1 -0
- package/dist/storey-bands.d.ts +80 -0
- package/dist/storey-bands.d.ts.map +1 -0
- package/dist/storey-bands.js +96 -0
- package/dist/storey-bands.js.map +1 -0
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projection bands — classify geometry that lies *beyond* the section cut
|
|
3
|
+
* into the two architectural floor-plan reference bands (issue #979):
|
|
4
|
+
*
|
|
5
|
+
* - **VISIBLE** (toward the floor, the side a down-looking plan keeps):
|
|
6
|
+
* drawn as a **thin solid** projected edge.
|
|
7
|
+
* - **OVERHEAD** (above the cut — beams, soffits, roofs, eaves):
|
|
8
|
+
* drawn **dashed** (mapped to `visibility: 'hidden'` downstream so the
|
|
9
|
+
* existing hidden-line styling applies with no renderer change).
|
|
10
|
+
*
|
|
11
|
+
* # Sign convention (locked — matches the rest of the pipeline)
|
|
12
|
+
* Given a world coordinate `coord` along the cut axis and the plane
|
|
13
|
+
* `position`, the signed, *flip-adjusted* depth is
|
|
14
|
+
*
|
|
15
|
+
* `d = flipped ? -(coord - position) : (coord - position)`
|
|
16
|
+
*
|
|
17
|
+
* which is exactly `depthAlong` (profile-projector) / the
|
|
18
|
+
* `HiddenLineClassifier` depth-buffer convention, and the mirror of the
|
|
19
|
+
* annotation-cull half-space test in `useDrawingGeneration`.
|
|
20
|
+
* With `d`:
|
|
21
|
+
*
|
|
22
|
+
* - `d < 0` ⇒ BELOW the cut (toward the floor, nearer the viewer) ⇒ VISIBLE
|
|
23
|
+
* - `d > 0` ⇒ ABOVE the cut (overhead, farther from the viewer) ⇒ OVERHEAD
|
|
24
|
+
*
|
|
25
|
+
* `flipped` only mirrors which half-space is "below"; it never re-derives a
|
|
26
|
+
* flipped plane normal (the cutter keeps the unflipped normal — see
|
|
27
|
+
* `section-cutter.ts`), so band math applies the flip sign itself.
|
|
28
|
+
*
|
|
29
|
+
* All depths are in the same metric, RTC-shifted world space the section
|
|
30
|
+
* cutter and `MeshData.positions` use (WASM applies `unit_scale` upstream).
|
|
31
|
+
*/
|
|
32
|
+
import type { SectionPlaneConfig, Vec3, DrawingLine, MeshOutline2D } from './types.js';
|
|
33
|
+
import type { Point2D } from './types.js';
|
|
34
|
+
/** Classification of geometry relative to the two projection bands. */
|
|
35
|
+
export type ProjectionBand = 'visible' | 'overhead' | 'spanning' | 'cull';
|
|
36
|
+
/** Depth window beyond the cut, per side, in world units. Both > 0. */
|
|
37
|
+
export interface ProjectionBandDepths {
|
|
38
|
+
/** How far below the cut (toward the floor) to project as VISIBLE/solid. */
|
|
39
|
+
below: number;
|
|
40
|
+
/** How far above the cut (overhead) to project as OVERHEAD/dashed. */
|
|
41
|
+
above: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Flip-adjusted depth of a raw coordinate along the cut axis — the scalar
|
|
45
|
+
* mirror of {@link signedDepth} for callers that only have an axis coordinate
|
|
46
|
+
* (e.g. an element's `axisMin`/`axisMax`) rather than a full 3D point. Keeps
|
|
47
|
+
* the `flipped ? -raw : raw` sign convention in a single place.
|
|
48
|
+
*/
|
|
49
|
+
export declare function signedAxisDepth(coord: number, position: number, flipped: boolean): number;
|
|
50
|
+
/**
|
|
51
|
+
* Flip-adjusted signed depth of a world point from the cut plane.
|
|
52
|
+
* `d < 0` ⇒ below (visible side); `d > 0` ⇒ above (overhead side).
|
|
53
|
+
*/
|
|
54
|
+
export declare function signedDepth(point: Vec3, plane: SectionPlaneConfig): number;
|
|
55
|
+
/**
|
|
56
|
+
* The camera viewing direction (unit, pointing away from the viewer into the
|
|
57
|
+
* scene) for silhouette detection. For a cardinal axis it is the −axis (or
|
|
58
|
+
* +axis when flipped); for a custom plane it follows the plane normal.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getViewDirectionForPlane(plane: SectionPlaneConfig): Vec3;
|
|
61
|
+
/**
|
|
62
|
+
* Project a world point into the drawing's 2D space using the SAME basis the
|
|
63
|
+
* section cutter uses, so projected construction lines coincide exactly with
|
|
64
|
+
* the cut polygons. Cardinal axes → `projectTo2D`; custom plane → the
|
|
65
|
+
* tangent/bitangent basis (`projectTo2DBasis`).
|
|
66
|
+
*/
|
|
67
|
+
export declare function projectPointForPlane(point: Vec3, plane: SectionPlaneConfig): Point2D;
|
|
68
|
+
/**
|
|
69
|
+
* Classify a flip-adjusted depth *range* `[dMin, dMax]` into a projection band.
|
|
70
|
+
*
|
|
71
|
+
* - VISIBLE band occupies `[-below, 0)` (below the cut, toward the floor).
|
|
72
|
+
* - OVERHEAD band occupies `(0, +above]` (above the cut, overhead).
|
|
73
|
+
*
|
|
74
|
+
* An element overlapping both (e.g. a wall cut at mid-height) is `'spanning'`
|
|
75
|
+
* and drawn solid — its footprint is real near-floor geometry; the cut line
|
|
76
|
+
* itself is emitted separately by the section cutter.
|
|
77
|
+
*/
|
|
78
|
+
export declare function classifyDepthRange(dMin: number, dMax: number, depths: ProjectionBandDepths): ProjectionBand;
|
|
79
|
+
/**
|
|
80
|
+
* Classify a single world-space line segment by its endpoints' depths.
|
|
81
|
+
* Used by the silhouette/edge fallback where each edge is classified on its
|
|
82
|
+
* own (no extrusion range).
|
|
83
|
+
*/
|
|
84
|
+
export declare function classifySegmentBand(a: Vec3, b: Vec3, plane: SectionPlaneConfig, depths: ProjectionBandDepths): ProjectionBand;
|
|
85
|
+
/**
|
|
86
|
+
* Map a band to the `DrawingLine.visibility` the renderer keys off:
|
|
87
|
+
* overhead → `'hidden'` (dashed), everything kept → `'visible'` (solid).
|
|
88
|
+
* Returns `null` for `'cull'` so the caller drops the line.
|
|
89
|
+
*/
|
|
90
|
+
export declare function bandVisibility(band: ProjectionBand): 'visible' | 'hidden' | null;
|
|
91
|
+
/**
|
|
92
|
+
* Convert a winding-robust mesh footprint outline (from the Rust
|
|
93
|
+
* `meshOutline2d` binding) into band-classified construction-projection lines
|
|
94
|
+
* (issue #979). The whole element is classified by its axis extent
|
|
95
|
+
* (`axisMin`/`axisMax`) — below the cut → solid, above → dashed. Contours are
|
|
96
|
+
* already in drawing 2D space, so they're emitted as closed loops verbatim.
|
|
97
|
+
*
|
|
98
|
+
* This is the winding-robust alternative to the normal-based silhouette path:
|
|
99
|
+
* it draws the true projected footprint even when the source mesh is wound
|
|
100
|
+
* inconsistently (common for ifc-lite roofs/stairs/site).
|
|
101
|
+
*/
|
|
102
|
+
export declare function outlineToProjectionLines(outline: MeshOutline2D, meta: {
|
|
103
|
+
entityId: number;
|
|
104
|
+
ifcType: string;
|
|
105
|
+
modelIndex: number;
|
|
106
|
+
}, plane: SectionPlaneConfig, depths: ProjectionBandDepths): DrawingLine[];
|
|
107
|
+
//# sourceMappingURL=projection-bands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection-bands.d.ts","sourceRoot":"","sources":["../src/projection-bands.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C,uEAAuE;AACvE,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,UAAU,GACV,UAAU,GACV,MAAM,CAAC;AAEX,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AA+BD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAGzF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAI1E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAcxE;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAMpF;AAMD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAYhB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,IAAI,EACP,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAIhB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAUhF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC/D,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,oBAAoB,GAC3B,WAAW,EAAE,CAgCf"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { projectTo2D, projectTo2DBasis } from './math.js';
|
|
5
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
6
|
+
// AXIS HELPERS
|
|
7
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
8
|
+
/** The canonical (unflipped) +axis unit normal for a cardinal section axis. */
|
|
9
|
+
function cardinalNormal(axis) {
|
|
10
|
+
switch (axis) {
|
|
11
|
+
case 'x':
|
|
12
|
+
return { x: 1, y: 0, z: 0 };
|
|
13
|
+
case 'y':
|
|
14
|
+
return { x: 0, y: 1, z: 0 };
|
|
15
|
+
case 'z':
|
|
16
|
+
return { x: 0, y: 0, z: 1 };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The unit normal + plane offset used to measure depth. For a custom
|
|
21
|
+
* (face-picked) plane the cutter uses `normal`/`distance` verbatim, so reuse
|
|
22
|
+
* them; for cardinal axes the normal is the +axis unit and the offset is the
|
|
23
|
+
* plane `position`.
|
|
24
|
+
*/
|
|
25
|
+
function planeNormalDistance(plane) {
|
|
26
|
+
if (plane.customPlane) {
|
|
27
|
+
return { normal: plane.customPlane.normal, offset: plane.customPlane.distance };
|
|
28
|
+
}
|
|
29
|
+
return { normal: cardinalNormal(plane.axis), offset: plane.position };
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Flip-adjusted depth of a raw coordinate along the cut axis — the scalar
|
|
33
|
+
* mirror of {@link signedDepth} for callers that only have an axis coordinate
|
|
34
|
+
* (e.g. an element's `axisMin`/`axisMax`) rather than a full 3D point. Keeps
|
|
35
|
+
* the `flipped ? -raw : raw` sign convention in a single place.
|
|
36
|
+
*/
|
|
37
|
+
export function signedAxisDepth(coord, position, flipped) {
|
|
38
|
+
const raw = coord - position;
|
|
39
|
+
return flipped ? -raw : raw;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Flip-adjusted signed depth of a world point from the cut plane.
|
|
43
|
+
* `d < 0` ⇒ below (visible side); `d > 0` ⇒ above (overhead side).
|
|
44
|
+
*/
|
|
45
|
+
export function signedDepth(point, plane) {
|
|
46
|
+
const { normal, offset } = planeNormalDistance(plane);
|
|
47
|
+
const raw = point.x * normal.x + point.y * normal.y + point.z * normal.z - offset;
|
|
48
|
+
return plane.flipped ? -raw : raw;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The camera viewing direction (unit, pointing away from the viewer into the
|
|
52
|
+
* scene) for silhouette detection. For a cardinal axis it is the −axis (or
|
|
53
|
+
* +axis when flipped); for a custom plane it follows the plane normal.
|
|
54
|
+
*/
|
|
55
|
+
export function getViewDirectionForPlane(plane) {
|
|
56
|
+
const sign = plane.flipped ? 1 : -1;
|
|
57
|
+
if (plane.customPlane) {
|
|
58
|
+
const n = plane.customPlane.normal;
|
|
59
|
+
return { x: n.x * sign, y: n.y * sign, z: n.z * sign };
|
|
60
|
+
}
|
|
61
|
+
switch (plane.axis) {
|
|
62
|
+
case 'x':
|
|
63
|
+
return { x: sign, y: 0, z: 0 };
|
|
64
|
+
case 'y':
|
|
65
|
+
return { x: 0, y: sign, z: 0 };
|
|
66
|
+
case 'z':
|
|
67
|
+
return { x: 0, y: 0, z: sign };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
71
|
+
// PROJECTION (2D) — single entry point matching the section cutter
|
|
72
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
73
|
+
/**
|
|
74
|
+
* Project a world point into the drawing's 2D space using the SAME basis the
|
|
75
|
+
* section cutter uses, so projected construction lines coincide exactly with
|
|
76
|
+
* the cut polygons. Cardinal axes → `projectTo2D`; custom plane → the
|
|
77
|
+
* tangent/bitangent basis (`projectTo2DBasis`).
|
|
78
|
+
*/
|
|
79
|
+
export function projectPointForPlane(point, plane) {
|
|
80
|
+
if (plane.customPlane) {
|
|
81
|
+
const c = plane.customPlane;
|
|
82
|
+
return projectTo2DBasis(point, c.origin, c.tangent, c.bitangent);
|
|
83
|
+
}
|
|
84
|
+
return projectTo2D(point, plane.axis, plane.flipped);
|
|
85
|
+
}
|
|
86
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
87
|
+
// BAND CLASSIFICATION
|
|
88
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
89
|
+
/**
|
|
90
|
+
* Classify a flip-adjusted depth *range* `[dMin, dMax]` into a projection band.
|
|
91
|
+
*
|
|
92
|
+
* - VISIBLE band occupies `[-below, 0)` (below the cut, toward the floor).
|
|
93
|
+
* - OVERHEAD band occupies `(0, +above]` (above the cut, overhead).
|
|
94
|
+
*
|
|
95
|
+
* An element overlapping both (e.g. a wall cut at mid-height) is `'spanning'`
|
|
96
|
+
* and drawn solid — its footprint is real near-floor geometry; the cut line
|
|
97
|
+
* itself is emitted separately by the section cutter.
|
|
98
|
+
*/
|
|
99
|
+
export function classifyDepthRange(dMin, dMax, depths) {
|
|
100
|
+
// Guard against caller passing them swapped.
|
|
101
|
+
const lo = Math.min(dMin, dMax);
|
|
102
|
+
const hi = Math.max(dMin, dMax);
|
|
103
|
+
const visibleOverlap = lo < 0 && hi >= -depths.below;
|
|
104
|
+
const overheadOverlap = hi > 0 && lo <= depths.above;
|
|
105
|
+
if (visibleOverlap && overheadOverlap)
|
|
106
|
+
return 'spanning';
|
|
107
|
+
if (visibleOverlap)
|
|
108
|
+
return 'visible';
|
|
109
|
+
if (overheadOverlap)
|
|
110
|
+
return 'overhead';
|
|
111
|
+
return 'cull';
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Classify a single world-space line segment by its endpoints' depths.
|
|
115
|
+
* Used by the silhouette/edge fallback where each edge is classified on its
|
|
116
|
+
* own (no extrusion range).
|
|
117
|
+
*/
|
|
118
|
+
export function classifySegmentBand(a, b, plane, depths) {
|
|
119
|
+
const da = signedDepth(a, plane);
|
|
120
|
+
const db = signedDepth(b, plane);
|
|
121
|
+
return classifyDepthRange(da, db, depths);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Map a band to the `DrawingLine.visibility` the renderer keys off:
|
|
125
|
+
* overhead → `'hidden'` (dashed), everything kept → `'visible'` (solid).
|
|
126
|
+
* Returns `null` for `'cull'` so the caller drops the line.
|
|
127
|
+
*/
|
|
128
|
+
export function bandVisibility(band) {
|
|
129
|
+
switch (band) {
|
|
130
|
+
case 'overhead':
|
|
131
|
+
return 'hidden';
|
|
132
|
+
case 'visible':
|
|
133
|
+
case 'spanning':
|
|
134
|
+
return 'visible';
|
|
135
|
+
case 'cull':
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Convert a winding-robust mesh footprint outline (from the Rust
|
|
141
|
+
* `meshOutline2d` binding) into band-classified construction-projection lines
|
|
142
|
+
* (issue #979). The whole element is classified by its axis extent
|
|
143
|
+
* (`axisMin`/`axisMax`) — below the cut → solid, above → dashed. Contours are
|
|
144
|
+
* already in drawing 2D space, so they're emitted as closed loops verbatim.
|
|
145
|
+
*
|
|
146
|
+
* This is the winding-robust alternative to the normal-based silhouette path:
|
|
147
|
+
* it draws the true projected footprint even when the source mesh is wound
|
|
148
|
+
* inconsistently (common for ifc-lite roofs/stairs/site).
|
|
149
|
+
*/
|
|
150
|
+
export function outlineToProjectionLines(outline, meta, plane, depths) {
|
|
151
|
+
// The outline path is cardinal-only (the toggle is gated off for custom
|
|
152
|
+
// planes), so classify against the cardinal plane position.
|
|
153
|
+
const pos = plane.customPlane ? plane.customPlane.distance : plane.position;
|
|
154
|
+
const dMin = signedAxisDepth(outline.axisMin, pos, plane.flipped);
|
|
155
|
+
const dMax = signedAxisDepth(outline.axisMax, pos, plane.flipped);
|
|
156
|
+
const visibility = bandVisibility(classifyDepthRange(dMin, dMax, depths));
|
|
157
|
+
if (visibility === null)
|
|
158
|
+
return [];
|
|
159
|
+
const lines = [];
|
|
160
|
+
for (const ring of outline.contours) {
|
|
161
|
+
const n = Math.floor(ring.length / 2);
|
|
162
|
+
if (n < 3)
|
|
163
|
+
continue; // a closed ring needs ≥3 vertices (matches the Rust source)
|
|
164
|
+
for (let i = 0; i < n; i++) {
|
|
165
|
+
const j = (i + 1) % n; // close the loop (last → first)
|
|
166
|
+
const sx = ring[i * 2];
|
|
167
|
+
const sy = ring[i * 2 + 1];
|
|
168
|
+
const ex = ring[j * 2];
|
|
169
|
+
const ey = ring[j * 2 + 1];
|
|
170
|
+
if (Math.abs(sx - ex) < 1e-7 && Math.abs(sy - ey) < 1e-7)
|
|
171
|
+
continue;
|
|
172
|
+
lines.push({
|
|
173
|
+
line: { start: { x: sx, y: sy }, end: { x: ex, y: ey } },
|
|
174
|
+
category: 'projection',
|
|
175
|
+
visibility,
|
|
176
|
+
entityId: meta.entityId,
|
|
177
|
+
ifcType: meta.ifcType,
|
|
178
|
+
modelIndex: meta.modelIndex,
|
|
179
|
+
depth: 0,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return lines;
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=projection-bands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection-bands.js","sourceRoot":"","sources":["../src/projection-bands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Current-floor projection scoping for 2D floor plans (issue #979 follow-up).
|
|
3
|
+
*
|
|
4
|
+
* The construction projection (issue #979) originally projected the FULL model
|
|
5
|
+
* height on each side of the cut, so every storey's geometry bled onto every
|
|
6
|
+
* plan — a roof two floors up would draw (dashed) on the ground-floor plan.
|
|
7
|
+
* This module scopes the projection bands to the storey the cut sits in.
|
|
8
|
+
*
|
|
9
|
+
* # Coordinate frame (critical)
|
|
10
|
+
* The storey floor levels passed here MUST be derived from MESH geometry in the
|
|
11
|
+
* render frame (the same RTC-shifted, Y-up, metric frame as the section `cut`
|
|
12
|
+
* position) — never from the `IfcBuildingStorey.Elevation` attribute, which
|
|
13
|
+
* omits the building/site placement Z and is wrong for georeferenced models.
|
|
14
|
+
* This module is pure scalar arithmetic and is agnostic to how the levels were
|
|
15
|
+
* obtained; the viewer hook (`useDrawingGeneration`) does the derivation.
|
|
16
|
+
*/
|
|
17
|
+
import type { ProjectionBandDepths } from './projection-bands.js';
|
|
18
|
+
/** Minimal mesh shape needed to derive storey floor levels (structural — avoids
|
|
19
|
+
* a hard dependency on `@ifc-lite/geometry`'s `MeshData`). */
|
|
20
|
+
export interface StoreyFloorMesh {
|
|
21
|
+
readonly expressId: number;
|
|
22
|
+
readonly positions: Float32Array;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Per-storey floor levels (ascending) derived from mesh geometry, for
|
|
26
|
+
* current-floor projection scoping (issue #979 follow-up).
|
|
27
|
+
*
|
|
28
|
+
* Each storey's level is the MINIMUM world-Y over its member meshes, read from
|
|
29
|
+
* `positions` in the RTC-shifted render frame — the SAME frame as the section
|
|
30
|
+
* cut position. This deliberately avoids `IfcBuildingStorey.Elevation`, which
|
|
31
|
+
* omits the building/site placement Z and is wrong for georeferenced models.
|
|
32
|
+
*
|
|
33
|
+
* `elementToStorey` keys are LOCAL express ids, so callers must restrict this to
|
|
34
|
+
* single-model use (mesh `expressId` then equals the local id). Storeys whose
|
|
35
|
+
* members produced no mesh contribute no level and are dropped.
|
|
36
|
+
*
|
|
37
|
+
* # Known limitations (bounded; documented intentionally)
|
|
38
|
+
* - The min-Y is the underside of the storey's lowest member, typically the
|
|
39
|
+
* floor SLAB which conventionally extrudes a little BELOW the level datum — so
|
|
40
|
+
* the returned level sits ~one slab thickness below the architectural floor.
|
|
41
|
+
* The effect is a small (~slab-thickness) over-projection at storey
|
|
42
|
+
* boundaries, not a whole-floor bleed.
|
|
43
|
+
* - An element assigned to an upper storey but geometrically descending into a
|
|
44
|
+
* lower one (a stair flight, a double-height shaft) pulls that storey's level
|
|
45
|
+
* down, which can collapse two levels together; the scoping then degrades
|
|
46
|
+
* toward the unscoped full-extent behavior for that cut — never worse than the
|
|
47
|
+
* pre-#979-follow-up baseline. A placement-Z / percentile derivation is a
|
|
48
|
+
* possible future hardening.
|
|
49
|
+
*/
|
|
50
|
+
export declare function storeyFloorsFromMeshes(meshes: ReadonlyArray<StoreyFloorMesh>, elementToStorey: ReadonlyMap<number, number>): number[];
|
|
51
|
+
/**
|
|
52
|
+
* Compute the construction-projection band depths for the storey containing the
|
|
53
|
+
* cut, given the per-storey floor levels (ascending) and the model's axis
|
|
54
|
+
* extent — all along the cut axis, in the same render-frame metric space as
|
|
55
|
+
* `position`.
|
|
56
|
+
*
|
|
57
|
+
* The current storey `k` is the highest storey whose floor is at or below the
|
|
58
|
+
* cut. Its vertical slab is `[floor_k, ceil_k)`:
|
|
59
|
+
* - the bottom storey extends DOWN to the model bottom (`axisMin`) so site /
|
|
60
|
+
* foundation / terrain below the ground floor still projects (solid);
|
|
61
|
+
* - the top storey extends UP to the model top (`axisMax`) so the roof / eaves
|
|
62
|
+
* above the top storey still projects (dashed);
|
|
63
|
+
* - an intermediate storey is clamped to the next storey's floor (its ceiling),
|
|
64
|
+
* so the floor above is culled.
|
|
65
|
+
*
|
|
66
|
+
* The returned depths feed `ProjectionBandDepths` unchanged: `below` becomes the
|
|
67
|
+
* VISIBLE/solid band (toward the floor) and `above` the OVERHEAD/dashed band.
|
|
68
|
+
* Every depth is floored at `minDepth` so a cut sitting exactly on a storey
|
|
69
|
+
* boundary never yields a zero-width band that culls everything on the plane.
|
|
70
|
+
*
|
|
71
|
+
* @param storeyFloors Per-storey floor levels along the cut axis, ASCENDING,
|
|
72
|
+
* length ≥ 1 (caller should fall back to full-extent bands
|
|
73
|
+
* when fewer than 2 storeys exist).
|
|
74
|
+
* @param position Cut position along the axis (render-frame).
|
|
75
|
+
* @param axisMin Model minimum along the axis (render-frame).
|
|
76
|
+
* @param axisMax Model maximum along the axis (render-frame).
|
|
77
|
+
* @param minDepth Lower clamp for each band depth (default 1 mm).
|
|
78
|
+
*/
|
|
79
|
+
export declare function currentFloorBands(storeyFloors: number[], position: number, axisMin: number, axisMax: number, minDepth?: number): ProjectionBandDepths;
|
|
80
|
+
//# sourceMappingURL=storey-bands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storey-bands.d.ts","sourceRoot":"","sources":["../src/storey-bands.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE;+DAC+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,MAAM,EAAE,CAeV;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,SAAO,GACd,oBAAoB,CAmBtB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Per-storey floor levels (ascending) derived from mesh geometry, for
|
|
6
|
+
* current-floor projection scoping (issue #979 follow-up).
|
|
7
|
+
*
|
|
8
|
+
* Each storey's level is the MINIMUM world-Y over its member meshes, read from
|
|
9
|
+
* `positions` in the RTC-shifted render frame — the SAME frame as the section
|
|
10
|
+
* cut position. This deliberately avoids `IfcBuildingStorey.Elevation`, which
|
|
11
|
+
* omits the building/site placement Z and is wrong for georeferenced models.
|
|
12
|
+
*
|
|
13
|
+
* `elementToStorey` keys are LOCAL express ids, so callers must restrict this to
|
|
14
|
+
* single-model use (mesh `expressId` then equals the local id). Storeys whose
|
|
15
|
+
* members produced no mesh contribute no level and are dropped.
|
|
16
|
+
*
|
|
17
|
+
* # Known limitations (bounded; documented intentionally)
|
|
18
|
+
* - The min-Y is the underside of the storey's lowest member, typically the
|
|
19
|
+
* floor SLAB which conventionally extrudes a little BELOW the level datum — so
|
|
20
|
+
* the returned level sits ~one slab thickness below the architectural floor.
|
|
21
|
+
* The effect is a small (~slab-thickness) over-projection at storey
|
|
22
|
+
* boundaries, not a whole-floor bleed.
|
|
23
|
+
* - An element assigned to an upper storey but geometrically descending into a
|
|
24
|
+
* lower one (a stair flight, a double-height shaft) pulls that storey's level
|
|
25
|
+
* down, which can collapse two levels together; the scoping then degrades
|
|
26
|
+
* toward the unscoped full-extent behavior for that cut — never worse than the
|
|
27
|
+
* pre-#979-follow-up baseline. A placement-Z / percentile derivation is a
|
|
28
|
+
* possible future hardening.
|
|
29
|
+
*/
|
|
30
|
+
export function storeyFloorsFromMeshes(meshes, elementToStorey) {
|
|
31
|
+
const storeyMinY = new Map();
|
|
32
|
+
for (const mesh of meshes) {
|
|
33
|
+
const storeyId = elementToStorey.get(mesh.expressId);
|
|
34
|
+
if (storeyId === undefined)
|
|
35
|
+
continue;
|
|
36
|
+
const pos = mesh.positions;
|
|
37
|
+
let minY = Infinity;
|
|
38
|
+
for (let i = 1; i < pos.length; i += 3) {
|
|
39
|
+
if (pos[i] < minY)
|
|
40
|
+
minY = pos[i];
|
|
41
|
+
}
|
|
42
|
+
if (!Number.isFinite(minY))
|
|
43
|
+
continue;
|
|
44
|
+
const cur = storeyMinY.get(storeyId);
|
|
45
|
+
if (cur === undefined || minY < cur)
|
|
46
|
+
storeyMinY.set(storeyId, minY);
|
|
47
|
+
}
|
|
48
|
+
return [...storeyMinY.values()].sort((a, b) => a - b);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Compute the construction-projection band depths for the storey containing the
|
|
52
|
+
* cut, given the per-storey floor levels (ascending) and the model's axis
|
|
53
|
+
* extent — all along the cut axis, in the same render-frame metric space as
|
|
54
|
+
* `position`.
|
|
55
|
+
*
|
|
56
|
+
* The current storey `k` is the highest storey whose floor is at or below the
|
|
57
|
+
* cut. Its vertical slab is `[floor_k, ceil_k)`:
|
|
58
|
+
* - the bottom storey extends DOWN to the model bottom (`axisMin`) so site /
|
|
59
|
+
* foundation / terrain below the ground floor still projects (solid);
|
|
60
|
+
* - the top storey extends UP to the model top (`axisMax`) so the roof / eaves
|
|
61
|
+
* above the top storey still projects (dashed);
|
|
62
|
+
* - an intermediate storey is clamped to the next storey's floor (its ceiling),
|
|
63
|
+
* so the floor above is culled.
|
|
64
|
+
*
|
|
65
|
+
* The returned depths feed `ProjectionBandDepths` unchanged: `below` becomes the
|
|
66
|
+
* VISIBLE/solid band (toward the floor) and `above` the OVERHEAD/dashed band.
|
|
67
|
+
* Every depth is floored at `minDepth` so a cut sitting exactly on a storey
|
|
68
|
+
* boundary never yields a zero-width band that culls everything on the plane.
|
|
69
|
+
*
|
|
70
|
+
* @param storeyFloors Per-storey floor levels along the cut axis, ASCENDING,
|
|
71
|
+
* length ≥ 1 (caller should fall back to full-extent bands
|
|
72
|
+
* when fewer than 2 storeys exist).
|
|
73
|
+
* @param position Cut position along the axis (render-frame).
|
|
74
|
+
* @param axisMin Model minimum along the axis (render-frame).
|
|
75
|
+
* @param axisMax Model maximum along the axis (render-frame).
|
|
76
|
+
* @param minDepth Lower clamp for each band depth (default 1 mm).
|
|
77
|
+
*/
|
|
78
|
+
export function currentFloorBands(storeyFloors, position, axisMin, axisMax, minDepth = 1e-3) {
|
|
79
|
+
const n = storeyFloors.length;
|
|
80
|
+
// Current storey = highest floor at or below the cut (storeyFloors ascending).
|
|
81
|
+
// A cut below the lowest floor still belongs to the bottom storey (k = 0).
|
|
82
|
+
let k = 0;
|
|
83
|
+
for (let i = 0; i < n; i++) {
|
|
84
|
+
if (storeyFloors[i] <= position)
|
|
85
|
+
k = i;
|
|
86
|
+
else
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
const floor = k === 0 ? Math.min(axisMin, storeyFloors[0]) : storeyFloors[k];
|
|
90
|
+
const ceil = k === n - 1 ? Math.max(axisMax, storeyFloors[n - 1]) : storeyFloors[k + 1];
|
|
91
|
+
return {
|
|
92
|
+
below: Math.max(position - floor, minDepth),
|
|
93
|
+
above: Math.max(ceil - position, minDepth),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=storey-bands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storey-bands.js","sourceRoot":"","sources":["../src/storey-bands.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA4B/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAsC,EACtC,eAA4C;IAE5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,GAAG,GAAG;YAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAsB,EACtB,QAAgB,EAChB,OAAe,EACf,OAAe,EACf,QAAQ,GAAG,IAAI;IAEf,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;IAE9B,+EAA+E;IAC/E,2EAA2E;IAC3E,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,QAAQ;YAAE,CAAC,GAAG,CAAC,CAAC;;YAClC,MAAM;IACb,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GACR,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7E,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAC;QAC3C,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,EAAE,QAAQ,CAAC;KAC3C,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -46,6 +46,15 @@ export interface SectionConfig {
|
|
|
46
46
|
plane: SectionPlaneConfig;
|
|
47
47
|
/** Depth range beyond cut plane to include for projection lines (world units) */
|
|
48
48
|
projectionDepth: number;
|
|
49
|
+
/**
|
|
50
|
+
* Construction-projection band depths (issue #979). When set, projection
|
|
51
|
+
* lines split into a VISIBLE band below the cut (thin solid) within
|
|
52
|
+
* `projectionBelowDepth`, and an OVERHEAD band above the cut (dashed) within
|
|
53
|
+
* `projectionAboveDepth`. Both default to `projectionDepth` when omitted, so
|
|
54
|
+
* legacy callers keep their single-window behaviour.
|
|
55
|
+
*/
|
|
56
|
+
projectionBelowDepth?: number;
|
|
57
|
+
projectionAboveDepth?: number;
|
|
49
58
|
/** Whether to compute hidden lines */
|
|
50
59
|
includeHiddenLines: boolean;
|
|
51
60
|
/** Crease angle threshold in degrees (edges sharper than this are feature edges) */
|
|
@@ -213,6 +222,23 @@ export interface EdgeData {
|
|
|
213
222
|
/** Model index */
|
|
214
223
|
modelIndex: number;
|
|
215
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* A winding-robust 2D footprint outline of a mesh, produced by the Rust
|
|
227
|
+
* `meshOutline2d` WASM binding (it unions projected triangle areas, so it is
|
|
228
|
+
* correct regardless of ifc-lite's unreliable triangle winding — unlike
|
|
229
|
+
* normal-based silhouette extraction).
|
|
230
|
+
*
|
|
231
|
+
* `contours` are closed rings in **drawing 2D space** (the same basis as
|
|
232
|
+
* `projectTo2D`, so they coincide with the section-cut polygons); each is a
|
|
233
|
+
* flat `[u0, v0, u1, v1, …]` with NO duplicated closing vertex. `axisMin` /
|
|
234
|
+
* `axisMax` are the element's extent along the cut axis (world units), used to
|
|
235
|
+
* classify the outline into the visible/overhead projection band.
|
|
236
|
+
*/
|
|
237
|
+
export interface MeshOutline2D {
|
|
238
|
+
contours: ReadonlyArray<ArrayLike<number>>;
|
|
239
|
+
axisMin: number;
|
|
240
|
+
axisMax: number;
|
|
241
|
+
}
|
|
216
242
|
/**
|
|
217
243
|
* A raw profile polygon extracted from an IfcExtrudedAreaSolid element.
|
|
218
244
|
*
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAgF/D,MAAM,CAAC,MAAM,sBAAsB,GAAiC;IAClE,eAAe,EAAE,EAAE;IACnB,kBAAkB,EAAE,IAAI;IACxB,WAAW,EAAE,EAAE;IACf,KAAK,EAAE,GAAG;CACX,CAAC;AAsRF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB,EAAE,QAAgB;IAChE,OAAO,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAc;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,mCAAmC,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,uDAAuD,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/drawing-2d",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0",
|
|
4
4
|
"description": "2D architectural drawing generation from IFC models - section cuts, floor plans, and elevations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@ifc-lite/geometry": "^2.
|
|
15
|
+
"@ifc-lite/geometry": "^2.4.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@webgpu/types": "^0.1.70",
|