@ifc-lite/drawing-2d 1.18.2 → 1.18.4
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.map +1 -1
- package/dist/drawing-generator.js +5 -0
- package/dist/drawing-generator.js.map +1 -1
- package/dist/gpu-section-cutter.d.ts.map +1 -1
- package/dist/gpu-section-cutter.js +5 -1
- package/dist/gpu-section-cutter.js.map +1 -1
- package/dist/polygon-builder.d.ts +91 -3
- package/dist/polygon-builder.d.ts.map +1 -1
- package/dist/polygon-builder.js +364 -40
- package/dist/polygon-builder.js.map +1 -1
- package/dist/section-cutter.d.ts.map +1 -1
- package/dist/section-cutter.js +4 -1
- package/dist/section-cutter.js.map +1 -1
- package/dist/types.d.ts +33 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawing-generator.d.ts","sourceRoot":"","sources":["../src/drawing-generator.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EACV,aAAa,EAEb,WAAW,EACX,SAAS,EACT,WAAW,EAKX,YAAY,EAEZ,aAAa,EACd,MAAM,YAAY,CAAC;AASpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAoB1D,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,6DAA6D;IAC7D,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4CAA4C;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,KAAK,aAAa,GAAG,IAAI,CAAC;IAChG,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AAUD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,oBAAoB,CAAkD;IAC9E,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,WAAW,CAAqB;IAExC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACG,UAAU,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAStD;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,QAAQ,EAAE,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,EACvC,QAAQ,CAAC,EAAE,YAAY,EAAE,GACxB,OAAO,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"drawing-generator.d.ts","sourceRoot":"","sources":["../src/drawing-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,6 +83,10 @@ export class Drawing2DGenerator {
|
|
|
83
83
|
// ─────────────────────────────────────────────────────────────────────────
|
|
84
84
|
report('polygons', 0);
|
|
85
85
|
const cutPolygons = this.polygonBuilder.buildPolygons(cutSegments);
|
|
86
|
+
// Opaque base cross-section per multi-material entity, for the 3D overlay to
|
|
87
|
+
// draw behind the per-layer fills (never see-through). Kept out of
|
|
88
|
+
// `cutPolygons` so the flat 2D drawing / export / measure paths are untouched.
|
|
89
|
+
const layerBaseCutPolygons = this.polygonBuilder.buildBasePolygons(cutSegments);
|
|
86
90
|
report('polygons', 1);
|
|
87
91
|
// ─────────────────────────────────────────────────────────────────────────
|
|
88
92
|
// STAGE 3: Convert Cut Segments to Drawing Lines
|
|
@@ -229,6 +233,7 @@ export class Drawing2DGenerator {
|
|
|
229
233
|
config,
|
|
230
234
|
lines: allLines,
|
|
231
235
|
cutPolygons,
|
|
236
|
+
layerBaseCutPolygons,
|
|
232
237
|
projectionPolygons: [], // TODO: implement projection polygon extraction
|
|
233
238
|
bounds,
|
|
234
239
|
stats: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawing-generator.js","sourceRoot":"","sources":["../src/drawing-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drawing-generator.js","sourceRoot":"","sources":["../src/drawing-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpu-section-cutter.d.ts","sourceRoot":"","sources":["../src/gpu-section-cutter.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAiB,MAAM,YAAY,CAAC;AAgKhF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAA6B;gBAElC,MAAM,EAAE,SAAS;IAI7B;;OAEG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgGrD;;OAEG;IACG,SAAS,CACb,MAAM,EAAE,QAAQ,EAAE,EAClB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,EAAE,CAAC;IA2GxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"gpu-section-cutter.d.ts","sourceRoot":"","sources":["../src/gpu-section-cutter.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAiB,MAAM,YAAY,CAAC;AAgKhF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAA6B;gBAElC,MAAM,EAAE,SAAS;IAI7B;;OAEG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgGrD;;OAEG;IACG,SAAS,CACb,MAAM,EAAE,QAAQ,EAAE,EAClB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,EAAE,CAAC;IA2GxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2ExB;;OAEG;IACH,OAAO,CAAC,eAAe;IA4BvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAmCrB;;OAEG;IACH,OAAO,IAAI,IAAI;CAWhB;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|
|
@@ -317,11 +317,14 @@ export class GPUSectionCutter {
|
|
|
317
317
|
const ox = origin ? origin[0] : 0;
|
|
318
318
|
const oy = origin ? origin[1] : 0;
|
|
319
319
|
const oz = origin ? origin[2] : 0;
|
|
320
|
-
// Map entity counter to mesh info
|
|
320
|
+
// Map entity counter to mesh info. `color` is per sub-mesh, so material-
|
|
321
|
+
// layer walls/slabs (one MeshData per layer) carry each layer's colour
|
|
322
|
+
// through to the polygon builder for per-layer section fills.
|
|
321
323
|
entityMap.set(entityCounter, {
|
|
322
324
|
entityId: expressId,
|
|
323
325
|
ifcType: ifcType || 'Unknown',
|
|
324
326
|
modelIndex: modelIndex || 0,
|
|
327
|
+
color: mesh.color,
|
|
325
328
|
});
|
|
326
329
|
for (let t = 0; t < triangleCount; t++) {
|
|
327
330
|
const i0 = indices[t * 3];
|
|
@@ -401,6 +404,7 @@ export class GPUSectionCutter {
|
|
|
401
404
|
entityId: entityInfo.entityId,
|
|
402
405
|
ifcType: entityInfo.ifcType,
|
|
403
406
|
modelIndex: entityInfo.modelIndex,
|
|
407
|
+
color: entityInfo.color,
|
|
404
408
|
});
|
|
405
409
|
}
|
|
406
410
|
return segments;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpu-section-cutter.js","sourceRoot":"","sources":["../src/gpu-section-cutter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gpu-section-cutter.js","sourceRoot":"","sources":["../src/gpu-section-cutter.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,15 +18,103 @@ export declare class PolygonBuilder {
|
|
|
18
18
|
*/
|
|
19
19
|
buildPolygons(segments: CutSegment[]): DrawingPolygon[];
|
|
20
20
|
/**
|
|
21
|
-
* Build
|
|
21
|
+
* Build the OPAQUE BASE cross-section for every MULTI-material entity — its
|
|
22
|
+
* full solid section, ignoring the per-layer colour split.
|
|
23
|
+
*
|
|
24
|
+
* Combining all of one entity's cut segments drops the (open) interface
|
|
25
|
+
* boundaries and leaves only the wall's outer skin, which — because #1311 made
|
|
26
|
+
* the union of layer bands watertight — is a set of CLOSED rings (the solid
|
|
27
|
+
* chunks, with openings as holes/separate rings). So this needs no interface
|
|
28
|
+
* stitching: the ordinary closed-loop builder resolves it robustly. Drawn
|
|
29
|
+
* behind the per-layer fills in the 3D overlay, it guarantees a cut never reads
|
|
30
|
+
* hollow even where the per-layer reconstruction has to fall back. Single-
|
|
31
|
+
* material entities are skipped — their normal `cutPolygons` already fill solid.
|
|
32
|
+
*/
|
|
33
|
+
buildBasePolygons(segments: CutSegment[]): DrawingPolygon[];
|
|
34
|
+
/**
|
|
35
|
+
* Build polygons for a single entity.
|
|
36
|
+
*
|
|
37
|
+
* Sub-groups the entity's segments by material colour so an
|
|
38
|
+
* `IfcMaterialLayerSet` wall/slab — sliced into one sub-mesh (hence one
|
|
39
|
+
* colour) per layer — reconstructs as one polygon set per layer, each
|
|
40
|
+
* carrying that layer's colour. A single-material entity yields exactly one
|
|
41
|
+
* colour group and is built identically to before, with no colour stamped
|
|
42
|
+
* (so renderers keep their per-`ifcType` / per-entity fill for it).
|
|
22
43
|
*/
|
|
23
44
|
private buildEntityPolygons;
|
|
24
45
|
/**
|
|
25
|
-
*
|
|
46
|
+
* Reconstruct closed polygons from one colour group's segments, stamping the
|
|
47
|
+
* given fill colour (when present) on each result.
|
|
48
|
+
*/
|
|
49
|
+
private buildColorGroupPolygons;
|
|
50
|
+
/**
|
|
51
|
+
* Build closed loops from segments using a greedy chain-building algorithm.
|
|
52
|
+
*
|
|
53
|
+
* `stitchOpen` (multi-material / per-layer groups only): an INTERIOR layer band
|
|
54
|
+
* of a 3+ layer wall has no wall face — its plan section is two disconnected
|
|
55
|
+
* end strips that no single chain can close. Such fragments are collected and
|
|
56
|
+
* stitched end-to-end at the interface chords (`stitchOpenChains`) so the core
|
|
57
|
+
* layer still fills. Chains that close into a non-degenerate loop on their own
|
|
58
|
+
* (a 2-layer U-band, the finish-on-both-faces case) stay separate, preserving
|
|
59
|
+
* existing per-loop behaviour.
|
|
26
60
|
*/
|
|
27
61
|
private buildLoops;
|
|
28
62
|
/**
|
|
29
|
-
*
|
|
63
|
+
* Close disconnected open layer-band fragments into per-layer fill loops.
|
|
64
|
+
*
|
|
65
|
+
* Prefers the interface-aware closure ({@link closeAlongInterfaces}): a layer
|
|
66
|
+
* band is bounded on its non-face sides by the planes it shares with adjacent
|
|
67
|
+
* layers, so every open endpoint lies on one of (at most) two parallel
|
|
68
|
+
* INTERFACE lines. Pairing endpoints CONSECUTIVELY along each line (a scanline
|
|
69
|
+
* rule) closes each solid chunk and leaves any opening BETWEEN chunks empty.
|
|
70
|
+
* Falls back to the legacy nearest-endpoint stitch only when the geometry is
|
|
71
|
+
* too ambiguous to resolve that way (a near-square endpoint cloud), so a wall
|
|
72
|
+
* we cannot disambiguate is no worse than before, never worse.
|
|
73
|
+
*/
|
|
74
|
+
private closeOpenBands;
|
|
75
|
+
/**
|
|
76
|
+
* Interface-aware closure of open band fragments. Returns `null` (caller falls
|
|
77
|
+
* back) when the layout is ambiguous: a near-isotropic endpoint cloud, an
|
|
78
|
+
* odd number of crossings on an interface line, or a chain that fails to close.
|
|
79
|
+
*
|
|
80
|
+
* Why this beats {@link stitchOpenChains}: a 3+ layer wall's INTERIOR layer has
|
|
81
|
+
* no broad face, so under an opening its section is four+ disconnected vertical
|
|
82
|
+
* strips. The greedy "attach the nearest endpoint" rule hops one strip to the
|
|
83
|
+
* strip across the opening and emits one self-overlapping polygon that bridges
|
|
84
|
+
* the void — the 3D section cap then reads hollow. Closing along the interface
|
|
85
|
+
* lines instead pairs (strip, strip) within each solid chunk and never spans
|
|
86
|
+
* the opening.
|
|
87
|
+
*/
|
|
88
|
+
private closeAlongInterfaces;
|
|
89
|
+
/**
|
|
90
|
+
* Principal (major) axis `L` and its perpendicular `P` of a 2D point cloud,
|
|
91
|
+
* via the covariance eigenvectors. Returns `null` when the cloud is
|
|
92
|
+
* near-isotropic (no dominant direction), so the interface closure can defer
|
|
93
|
+
* to the fallback instead of trusting a meaningless axis.
|
|
94
|
+
*/
|
|
95
|
+
private principalAxis;
|
|
96
|
+
/**
|
|
97
|
+
* Stitch open band fragments (each a polyline) into closed loops by joining the
|
|
98
|
+
* nearest endpoints ACROSS fragments, only closing a chain on itself once no
|
|
99
|
+
* other fragment is left to attach. Merging across-first is essential: an
|
|
100
|
+
* interior band is thin, so its interface chord (along the wall length) is
|
|
101
|
+
* longer than the band thickness — a naive "close the nearest endpoints" rule
|
|
102
|
+
* would collapse the band instead of spanning it.
|
|
103
|
+
*/
|
|
104
|
+
private stitchOpenChains;
|
|
105
|
+
/**
|
|
106
|
+
* Build a single loop starting from a segment.
|
|
107
|
+
*
|
|
108
|
+
* BIDIRECTIONAL: the chain is extended from BOTH ends (append at the tail,
|
|
109
|
+
* prepend at the head) until neither end finds a connecting segment. A purely
|
|
110
|
+
* forward walk strands segments when it starts mid-chain — fatal for an OPEN
|
|
111
|
+
* contour, which is exactly what a material-layer band is now that the slicer
|
|
112
|
+
* no longer caps the interface planes (the cap was a doubled, non-watertight
|
|
113
|
+
* 3D sheet). A cap-free band's section is a U (outer face + the two end
|
|
114
|
+
* strips); extending from both ends assembles all of it, and the implicit
|
|
115
|
+
* head→tail closing chord of the returned ring IS the interface line the cap
|
|
116
|
+
* used to draw — so per-layer section fills are unchanged. Genuinely closed
|
|
117
|
+
* cross-sections still close here (tail meets head) and return identically.
|
|
30
118
|
*/
|
|
31
119
|
private buildSingleLoop;
|
|
32
120
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-builder.d.ts","sourceRoot":"","sources":["../src/polygon-builder.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAa,UAAU,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AA8B5F,qBAAa,cAAc;IACzB,oCAAoC;IACpC,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,GAAE,MAAe;IAItC;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE;IAuBvD
|
|
1
|
+
{"version":3,"file":"polygon-builder.d.ts","sourceRoot":"","sources":["../src/polygon-builder.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAa,UAAU,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AA8B5F,qBAAa,cAAc;IACzB,oCAAoC;IACpC,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,GAAE,MAAe;IAItC;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE;IAuBvD;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE;IAsB3D;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,UAAU;IA8BlB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAwF5B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA4BrB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IA8CxB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,eAAe;IAuDvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAwCrB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,cAAc;CAkBvB;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,GAAE,MAAc,GAAG,OAAO,EAAE,CAiBvF;AAWD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,EAAE,GAChB;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAiBhC"}
|
package/dist/polygon-builder.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
-
import { makeEntityKey } from './types.js';
|
|
5
|
-
import { point2DDistance, polygonSignedArea, ensureCCW, ensureCW, } from './math.js';
|
|
4
|
+
import { makeEntityKey, colorKey } from './types.js';
|
|
5
|
+
import { EPSILON, point2DDistance, polygonSignedArea, ensureCCW, ensureCW, } from './math.js';
|
|
6
6
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
7
7
|
// POLYGON BUILDER CLASS
|
|
8
8
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
@@ -35,11 +35,81 @@ export class PolygonBuilder {
|
|
|
35
35
|
return polygonArrays.flat();
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
* Build
|
|
38
|
+
* Build the OPAQUE BASE cross-section for every MULTI-material entity — its
|
|
39
|
+
* full solid section, ignoring the per-layer colour split.
|
|
40
|
+
*
|
|
41
|
+
* Combining all of one entity's cut segments drops the (open) interface
|
|
42
|
+
* boundaries and leaves only the wall's outer skin, which — because #1311 made
|
|
43
|
+
* the union of layer bands watertight — is a set of CLOSED rings (the solid
|
|
44
|
+
* chunks, with openings as holes/separate rings). So this needs no interface
|
|
45
|
+
* stitching: the ordinary closed-loop builder resolves it robustly. Drawn
|
|
46
|
+
* behind the per-layer fills in the 3D overlay, it guarantees a cut never reads
|
|
47
|
+
* hollow even where the per-layer reconstruction has to fall back. Single-
|
|
48
|
+
* material entities are skipped — their normal `cutPolygons` already fill solid.
|
|
49
|
+
*/
|
|
50
|
+
buildBasePolygons(segments) {
|
|
51
|
+
const byEntity = new Map();
|
|
52
|
+
for (const seg of segments) {
|
|
53
|
+
const key = makeEntityKey(seg.modelIndex, seg.entityId);
|
|
54
|
+
let bucket = byEntity.get(key);
|
|
55
|
+
if (!bucket) {
|
|
56
|
+
bucket = [];
|
|
57
|
+
byEntity.set(key, bucket);
|
|
58
|
+
}
|
|
59
|
+
bucket.push(seg);
|
|
60
|
+
}
|
|
61
|
+
const out = [];
|
|
62
|
+
for (const entitySegments of byEntity.values()) {
|
|
63
|
+
// Only entities that cut into >1 material get per-layer fills (hence a base).
|
|
64
|
+
const colors = new Set(entitySegments.map((s) => colorKey(s.color)));
|
|
65
|
+
if (colors.size < 2)
|
|
66
|
+
continue;
|
|
67
|
+
// Colourless build ⇒ closed-loop path (the combined section is closed).
|
|
68
|
+
const base = this.buildColorGroupPolygons(entitySegments, undefined)
|
|
69
|
+
.map((p) => ({ ...p, isLayerBase: true }));
|
|
70
|
+
if (base.length > 0)
|
|
71
|
+
out.push(base);
|
|
72
|
+
}
|
|
73
|
+
return out.flat();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Build polygons for a single entity.
|
|
77
|
+
*
|
|
78
|
+
* Sub-groups the entity's segments by material colour so an
|
|
79
|
+
* `IfcMaterialLayerSet` wall/slab — sliced into one sub-mesh (hence one
|
|
80
|
+
* colour) per layer — reconstructs as one polygon set per layer, each
|
|
81
|
+
* carrying that layer's colour. A single-material entity yields exactly one
|
|
82
|
+
* colour group and is built identically to before, with no colour stamped
|
|
83
|
+
* (so renderers keep their per-`ifcType` / per-entity fill for it).
|
|
39
84
|
*/
|
|
40
85
|
buildEntityPolygons(segments) {
|
|
41
86
|
if (segments.length === 0)
|
|
42
87
|
return [];
|
|
88
|
+
const byColor = new Map();
|
|
89
|
+
for (const seg of segments) {
|
|
90
|
+
const key = colorKey(seg.color);
|
|
91
|
+
let bucket = byColor.get(key);
|
|
92
|
+
if (!bucket) {
|
|
93
|
+
bucket = [];
|
|
94
|
+
byColor.set(key, bucket);
|
|
95
|
+
}
|
|
96
|
+
bucket.push(seg);
|
|
97
|
+
}
|
|
98
|
+
// Only a genuinely multi-material cut (≥2 colours) gets per-layer fills;
|
|
99
|
+
// ordinary elements stay colourless so existing fill rules apply.
|
|
100
|
+
const multiMaterial = byColor.size > 1;
|
|
101
|
+
const out = [];
|
|
102
|
+
for (const groupSegments of byColor.values()) {
|
|
103
|
+
const groupColor = multiMaterial ? groupSegments[0].color : undefined;
|
|
104
|
+
out.push(...this.buildColorGroupPolygons(groupSegments, groupColor));
|
|
105
|
+
}
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Reconstruct closed polygons from one colour group's segments, stamping the
|
|
110
|
+
* given fill colour (when present) on each result.
|
|
111
|
+
*/
|
|
112
|
+
buildColorGroupPolygons(segments, color) {
|
|
43
113
|
const first = segments[0];
|
|
44
114
|
const { entityId, ifcType, modelIndex } = first;
|
|
45
115
|
// Convert to 2D segments
|
|
@@ -48,8 +118,9 @@ export class PolygonBuilder {
|
|
|
48
118
|
end: seg.p1_2d,
|
|
49
119
|
used: false,
|
|
50
120
|
}));
|
|
51
|
-
// Build closed loops
|
|
52
|
-
|
|
121
|
+
// Build closed loops. Multi-material (per-layer) groups additionally STITCH
|
|
122
|
+
// disconnected open band segments at the interface chords (see `buildLoops`).
|
|
123
|
+
const loops = this.buildLoops(segments2D, color !== undefined);
|
|
53
124
|
if (loops.length === 0)
|
|
54
125
|
return [];
|
|
55
126
|
// Classify loops as outer boundaries or holes
|
|
@@ -64,67 +135,320 @@ export class PolygonBuilder {
|
|
|
64
135
|
ifcType,
|
|
65
136
|
modelIndex,
|
|
66
137
|
isCut: true,
|
|
138
|
+
...(color ? { color } : {}),
|
|
67
139
|
}));
|
|
68
140
|
}
|
|
69
141
|
/**
|
|
70
|
-
* Build closed loops from segments using a greedy chain-building algorithm
|
|
142
|
+
* Build closed loops from segments using a greedy chain-building algorithm.
|
|
143
|
+
*
|
|
144
|
+
* `stitchOpen` (multi-material / per-layer groups only): an INTERIOR layer band
|
|
145
|
+
* of a 3+ layer wall has no wall face — its plan section is two disconnected
|
|
146
|
+
* end strips that no single chain can close. Such fragments are collected and
|
|
147
|
+
* stitched end-to-end at the interface chords (`stitchOpenChains`) so the core
|
|
148
|
+
* layer still fills. Chains that close into a non-degenerate loop on their own
|
|
149
|
+
* (a 2-layer U-band, the finish-on-both-faces case) stay separate, preserving
|
|
150
|
+
* existing per-loop behaviour.
|
|
71
151
|
*/
|
|
72
|
-
buildLoops(segments) {
|
|
152
|
+
buildLoops(segments, stitchOpen) {
|
|
73
153
|
const loops = [];
|
|
74
|
-
|
|
154
|
+
const fragments = [];
|
|
75
155
|
while (true) {
|
|
76
|
-
// Find first unused segment
|
|
77
156
|
const startIdx = segments.findIndex((s) => !s.used);
|
|
78
157
|
if (startIdx === -1)
|
|
79
158
|
break;
|
|
80
|
-
const
|
|
81
|
-
if (
|
|
82
|
-
|
|
83
|
-
|
|
159
|
+
const chain = this.buildSingleLoop(segments, startIdx);
|
|
160
|
+
if (!chain)
|
|
161
|
+
continue;
|
|
162
|
+
const standalone = chain.points.length >= 3 &&
|
|
163
|
+
(chain.closed || Math.abs(polygonSignedArea(chain.points)) > 1e-9);
|
|
164
|
+
if (standalone) {
|
|
165
|
+
loops.push({ points: chain.points, area: polygonSignedArea(chain.points) });
|
|
166
|
+
}
|
|
167
|
+
else if (stitchOpen) {
|
|
168
|
+
fragments.push(chain.points); // too short/degenerate to close alone — stitch it
|
|
84
169
|
}
|
|
170
|
+
// else (single-material, sub-loop fragment): dropped, as before.
|
|
171
|
+
}
|
|
172
|
+
if (stitchOpen && fragments.length > 0) {
|
|
173
|
+
loops.push(...this.closeOpenBands(fragments));
|
|
85
174
|
}
|
|
86
175
|
return loops;
|
|
87
176
|
}
|
|
88
177
|
/**
|
|
89
|
-
*
|
|
178
|
+
* Close disconnected open layer-band fragments into per-layer fill loops.
|
|
179
|
+
*
|
|
180
|
+
* Prefers the interface-aware closure ({@link closeAlongInterfaces}): a layer
|
|
181
|
+
* band is bounded on its non-face sides by the planes it shares with adjacent
|
|
182
|
+
* layers, so every open endpoint lies on one of (at most) two parallel
|
|
183
|
+
* INTERFACE lines. Pairing endpoints CONSECUTIVELY along each line (a scanline
|
|
184
|
+
* rule) closes each solid chunk and leaves any opening BETWEEN chunks empty.
|
|
185
|
+
* Falls back to the legacy nearest-endpoint stitch only when the geometry is
|
|
186
|
+
* too ambiguous to resolve that way (a near-square endpoint cloud), so a wall
|
|
187
|
+
* we cannot disambiguate is no worse than before, never worse.
|
|
188
|
+
*/
|
|
189
|
+
closeOpenBands(fragments) {
|
|
190
|
+
const viaInterface = this.closeAlongInterfaces(fragments);
|
|
191
|
+
return viaInterface ?? this.stitchOpenChains(fragments);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Interface-aware closure of open band fragments. Returns `null` (caller falls
|
|
195
|
+
* back) when the layout is ambiguous: a near-isotropic endpoint cloud, an
|
|
196
|
+
* odd number of crossings on an interface line, or a chain that fails to close.
|
|
197
|
+
*
|
|
198
|
+
* Why this beats {@link stitchOpenChains}: a 3+ layer wall's INTERIOR layer has
|
|
199
|
+
* no broad face, so under an opening its section is four+ disconnected vertical
|
|
200
|
+
* strips. The greedy "attach the nearest endpoint" rule hops one strip to the
|
|
201
|
+
* strip across the opening and emits one self-overlapping polygon that bridges
|
|
202
|
+
* the void — the 3D section cap then reads hollow. Closing along the interface
|
|
203
|
+
* lines instead pairs (strip, strip) within each solid chunk and never spans
|
|
204
|
+
* the opening.
|
|
205
|
+
*/
|
|
206
|
+
closeAlongInterfaces(fragments) {
|
|
207
|
+
const polylines = fragments.filter((f) => f.length >= 2);
|
|
208
|
+
if (polylines.length < 2)
|
|
209
|
+
return null;
|
|
210
|
+
// Two open endpoints per polyline. endIndex = poly*2 + which (0 head, 1 tail).
|
|
211
|
+
const endCount = polylines.length * 2;
|
|
212
|
+
const endPoint = (idx) => {
|
|
213
|
+
const poly = polylines[idx >> 1];
|
|
214
|
+
return (idx & 1) === 0 ? poly[0] : poly[poly.length - 1];
|
|
215
|
+
};
|
|
216
|
+
// Interface lines run along the band's LENGTH — the principal axis of the
|
|
217
|
+
// endpoint cloud (robust to a rotated wall). `P` is the perpendicular along
|
|
218
|
+
// which the (≤2) interface lines are offset.
|
|
219
|
+
const cloud = [];
|
|
220
|
+
for (let i = 0; i < endCount; i++)
|
|
221
|
+
cloud.push(endPoint(i));
|
|
222
|
+
const axis = this.principalAxis(cloud);
|
|
223
|
+
if (!axis)
|
|
224
|
+
return null;
|
|
225
|
+
const { L, P } = axis;
|
|
226
|
+
const along = (p, a) => p.x * a.x + p.y * a.y;
|
|
227
|
+
// Cluster endpoints onto interface lines (≤2) by splitting the sorted P
|
|
228
|
+
// coordinates at their single dominant gap (the layer thickness).
|
|
229
|
+
const order = [...Array(endCount).keys()].sort((a, b) => along(endPoint(a), P) - along(endPoint(b), P));
|
|
230
|
+
const pOf = (i) => along(endPoint(i), P);
|
|
231
|
+
const span = pOf(order[order.length - 1]) - pOf(order[0]);
|
|
232
|
+
let splitAt = -1;
|
|
233
|
+
if (span > this.tolerance) {
|
|
234
|
+
let gap = -Infinity;
|
|
235
|
+
for (let k = 1; k < order.length; k++) {
|
|
236
|
+
const g = pOf(order[k]) - pOf(order[k - 1]);
|
|
237
|
+
if (g > gap) {
|
|
238
|
+
gap = g;
|
|
239
|
+
splitAt = k;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (gap < span * 0.25)
|
|
243
|
+
splitAt = -1; // not clearly bimodal ⇒ one line
|
|
244
|
+
}
|
|
245
|
+
const clusters = splitAt > 0 ? [order.slice(0, splitAt), order.slice(splitAt)] : [order];
|
|
246
|
+
// Pair endpoints consecutively along each interface line.
|
|
247
|
+
const pair = new Int32Array(endCount).fill(-1);
|
|
248
|
+
for (const cluster of clusters) {
|
|
249
|
+
if (cluster.length % 2 !== 0)
|
|
250
|
+
return null; // unpaired crossing ⇒ ambiguous
|
|
251
|
+
cluster.sort((a, b) => along(endPoint(a), L) - along(endPoint(b), L));
|
|
252
|
+
for (let k = 0; k + 1 < cluster.length; k += 2) {
|
|
253
|
+
pair[cluster[k]] = cluster[k + 1];
|
|
254
|
+
pair[cluster[k + 1]] = cluster[k];
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
for (let i = 0; i < endCount; i++)
|
|
258
|
+
if (pair[i] < 0)
|
|
259
|
+
return null;
|
|
260
|
+
// Walk polylines, hopping across the interface chords, into closed loops.
|
|
261
|
+
const loops = [];
|
|
262
|
+
const usedPoly = new Array(polylines.length).fill(false);
|
|
263
|
+
for (let start = 0; start < polylines.length; start++) {
|
|
264
|
+
if (usedPoly[start])
|
|
265
|
+
continue;
|
|
266
|
+
const ring = [];
|
|
267
|
+
let poly = start;
|
|
268
|
+
let enterWhich = 0; // enter at head, walk to tail
|
|
269
|
+
let closed = false;
|
|
270
|
+
for (let guard = 0; guard <= polylines.length; guard++) {
|
|
271
|
+
usedPoly[poly] = true;
|
|
272
|
+
const line = polylines[poly];
|
|
273
|
+
const ordered = enterWhich === 0 ? line : [...line].reverse();
|
|
274
|
+
for (const q of ordered) {
|
|
275
|
+
if (ring.length === 0 || point2DDistance(ring[ring.length - 1], q) > this.tolerance) {
|
|
276
|
+
ring.push(q);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
const exit = poly * 2 + (enterWhich === 0 ? 1 : 0);
|
|
280
|
+
const next = pair[exit];
|
|
281
|
+
if (next === start * 2) {
|
|
282
|
+
closed = true;
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
const nextPoly = next >> 1;
|
|
286
|
+
if (usedPoly[nextPoly])
|
|
287
|
+
break;
|
|
288
|
+
poly = nextPoly;
|
|
289
|
+
enterWhich = next & 1;
|
|
290
|
+
}
|
|
291
|
+
// A half-open ring would render as a bad cap — bail and let the caller fall
|
|
292
|
+
// back rather than emit it.
|
|
293
|
+
if (!closed)
|
|
294
|
+
return null;
|
|
295
|
+
if (ring.length >= 3 && Math.abs(polygonSignedArea(ring)) > 1e-9) {
|
|
296
|
+
loops.push({ points: ring, area: polygonSignedArea(ring) });
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return loops.length > 0 ? loops : null;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Principal (major) axis `L` and its perpendicular `P` of a 2D point cloud,
|
|
303
|
+
* via the covariance eigenvectors. Returns `null` when the cloud is
|
|
304
|
+
* near-isotropic (no dominant direction), so the interface closure can defer
|
|
305
|
+
* to the fallback instead of trusting a meaningless axis.
|
|
306
|
+
*/
|
|
307
|
+
principalAxis(pts) {
|
|
308
|
+
const n = pts.length;
|
|
309
|
+
if (n < 2)
|
|
310
|
+
return null;
|
|
311
|
+
let mx = 0, my = 0;
|
|
312
|
+
for (const p of pts) {
|
|
313
|
+
mx += p.x;
|
|
314
|
+
my += p.y;
|
|
315
|
+
}
|
|
316
|
+
mx /= n;
|
|
317
|
+
my /= n;
|
|
318
|
+
let sxx = 0, syy = 0, sxy = 0;
|
|
319
|
+
for (const p of pts) {
|
|
320
|
+
const dx = p.x - mx, dy = p.y - my;
|
|
321
|
+
sxx += dx * dx;
|
|
322
|
+
syy += dy * dy;
|
|
323
|
+
sxy += dx * dy;
|
|
324
|
+
}
|
|
325
|
+
const tr = sxx + syy;
|
|
326
|
+
if (tr < EPSILON)
|
|
327
|
+
return null;
|
|
328
|
+
const disc = Math.sqrt(Math.max(0, (tr * tr) / 4 - (sxx * syy - sxy * sxy)));
|
|
329
|
+
const l1 = tr / 2 + disc; // major eigenvalue
|
|
330
|
+
const l2 = tr / 2 - disc; // minor eigenvalue
|
|
331
|
+
if (l1 < EPSILON || l2 / l1 > 0.7)
|
|
332
|
+
return null; // near-isotropic ⇒ ambiguous
|
|
333
|
+
let lx, ly;
|
|
334
|
+
if (Math.abs(sxy) > EPSILON) {
|
|
335
|
+
lx = l1 - syy;
|
|
336
|
+
ly = sxy;
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
lx = sxx >= syy ? 1 : 0;
|
|
340
|
+
ly = sxx >= syy ? 0 : 1;
|
|
341
|
+
}
|
|
342
|
+
const len = Math.hypot(lx, ly) || 1;
|
|
343
|
+
const L = { x: lx / len, y: ly / len };
|
|
344
|
+
return { L, P: { x: -L.y, y: L.x } };
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Stitch open band fragments (each a polyline) into closed loops by joining the
|
|
348
|
+
* nearest endpoints ACROSS fragments, only closing a chain on itself once no
|
|
349
|
+
* other fragment is left to attach. Merging across-first is essential: an
|
|
350
|
+
* interior band is thin, so its interface chord (along the wall length) is
|
|
351
|
+
* longer than the band thickness — a naive "close the nearest endpoints" rule
|
|
352
|
+
* would collapse the band instead of spanning it.
|
|
353
|
+
*/
|
|
354
|
+
stitchOpenChains(fragments) {
|
|
355
|
+
const loops = [];
|
|
356
|
+
const used = new Array(fragments.length).fill(false);
|
|
357
|
+
for (let s = 0; s < fragments.length; s++) {
|
|
358
|
+
if (used[s])
|
|
359
|
+
continue;
|
|
360
|
+
let chain = fragments[s].slice();
|
|
361
|
+
used[s] = true;
|
|
362
|
+
// Attach the nearest remaining fragment to the tail until none are left.
|
|
363
|
+
for (;;) {
|
|
364
|
+
const tail = chain[chain.length - 1];
|
|
365
|
+
let best = -1;
|
|
366
|
+
let reverse = false;
|
|
367
|
+
let bestDist = Infinity;
|
|
368
|
+
for (let i = 0; i < fragments.length; i++) {
|
|
369
|
+
if (used[i])
|
|
370
|
+
continue;
|
|
371
|
+
const f = fragments[i];
|
|
372
|
+
const dStart = point2DDistance(f[0], tail);
|
|
373
|
+
const dEnd = point2DDistance(f[f.length - 1], tail);
|
|
374
|
+
if (dStart < bestDist) {
|
|
375
|
+
bestDist = dStart;
|
|
376
|
+
best = i;
|
|
377
|
+
reverse = false;
|
|
378
|
+
}
|
|
379
|
+
if (dEnd < bestDist) {
|
|
380
|
+
bestDist = dEnd;
|
|
381
|
+
best = i;
|
|
382
|
+
reverse = true;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
if (best === -1)
|
|
386
|
+
break;
|
|
387
|
+
used[best] = true;
|
|
388
|
+
const next = reverse ? fragments[best].slice().reverse() : fragments[best].slice();
|
|
389
|
+
if (point2DDistance(chain[chain.length - 1], next[0]) < this.tolerance)
|
|
390
|
+
next.shift();
|
|
391
|
+
chain = chain.concat(next);
|
|
392
|
+
}
|
|
393
|
+
if (chain.length >= 3 && Math.abs(polygonSignedArea(chain)) > 1e-9) {
|
|
394
|
+
loops.push({ points: chain, area: polygonSignedArea(chain) });
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return loops;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Build a single loop starting from a segment.
|
|
401
|
+
*
|
|
402
|
+
* BIDIRECTIONAL: the chain is extended from BOTH ends (append at the tail,
|
|
403
|
+
* prepend at the head) until neither end finds a connecting segment. A purely
|
|
404
|
+
* forward walk strands segments when it starts mid-chain — fatal for an OPEN
|
|
405
|
+
* contour, which is exactly what a material-layer band is now that the slicer
|
|
406
|
+
* no longer caps the interface planes (the cap was a doubled, non-watertight
|
|
407
|
+
* 3D sheet). A cap-free band's section is a U (outer face + the two end
|
|
408
|
+
* strips); extending from both ends assembles all of it, and the implicit
|
|
409
|
+
* head→tail closing chord of the returned ring IS the interface line the cap
|
|
410
|
+
* used to draw — so per-layer section fills are unchanged. Genuinely closed
|
|
411
|
+
* cross-sections still close here (tail meets head) and return identically.
|
|
90
412
|
*/
|
|
91
413
|
buildSingleLoop(segments, startIdx) {
|
|
92
|
-
const points = [];
|
|
93
414
|
const startSeg = segments[startIdx];
|
|
94
415
|
startSeg.used = true;
|
|
95
|
-
points.
|
|
96
|
-
let currentEnd = startSeg.end;
|
|
97
|
-
const loopStart = startSeg.start;
|
|
416
|
+
const points = [startSeg.start, startSeg.end];
|
|
98
417
|
const maxIterations = segments.length;
|
|
99
418
|
let iterations = 0;
|
|
100
419
|
while (iterations < maxIterations) {
|
|
101
420
|
iterations++;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
421
|
+
const head = points[0];
|
|
422
|
+
const tail = points[points.length - 1];
|
|
423
|
+
// Closed ring: the tail has come back to the head. Drop the duplicate
|
|
424
|
+
// endpoint and return the closed loop (the pre-existing behaviour).
|
|
425
|
+
if (points.length >= 3 && point2DDistance(tail, head) < this.tolerance) {
|
|
426
|
+
points.pop();
|
|
427
|
+
return { points, closed: true };
|
|
105
428
|
}
|
|
106
|
-
//
|
|
107
|
-
const
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
nextSeg.used = true;
|
|
115
|
-
// Determine which end connects
|
|
116
|
-
if (point2DDistance(nextSeg.start, currentEnd) < this.tolerance) {
|
|
117
|
-
points.push(nextSeg.start);
|
|
118
|
-
currentEnd = nextSeg.end;
|
|
429
|
+
// Prefer extending the tail forward.
|
|
430
|
+
const tailIdx = this.findConnectingSegment(segments, tail);
|
|
431
|
+
if (tailIdx !== -1) {
|
|
432
|
+
const seg = segments[tailIdx];
|
|
433
|
+
seg.used = true;
|
|
434
|
+
const next = point2DDistance(seg.start, tail) < this.tolerance ? seg.end : seg.start;
|
|
435
|
+
points.push(next);
|
|
436
|
+
continue;
|
|
119
437
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
438
|
+
// Otherwise extend the head backward.
|
|
439
|
+
const headIdx = this.findConnectingSegment(segments, head);
|
|
440
|
+
if (headIdx !== -1) {
|
|
441
|
+
const seg = segments[headIdx];
|
|
442
|
+
seg.used = true;
|
|
443
|
+
const prev = point2DDistance(seg.start, head) < this.tolerance ? seg.end : seg.start;
|
|
444
|
+
points.unshift(prev);
|
|
445
|
+
continue;
|
|
123
446
|
}
|
|
447
|
+
// Neither end extends: an OPEN contour (a cap-free layer band, or genuinely
|
|
448
|
+
// open geometry).
|
|
449
|
+
break;
|
|
124
450
|
}
|
|
125
|
-
|
|
126
|
-
// Some entities may have open cross-sections
|
|
127
|
-
return points.length >= 3 ? points : null;
|
|
451
|
+
return points.length >= 2 ? { points, closed: false } : null;
|
|
128
452
|
}
|
|
129
453
|
/**
|
|
130
454
|
* Find an unused segment that connects to the given point
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-builder.js","sourceRoot":"","sources":["../src/polygon-builder.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAa/D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAEL,eAAe,EAEf,iBAAiB,EACjB,SAAS,EACT,QAAQ,GACT,MAAM,WAAW,CAAC;AAiBnB,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,OAAO,cAAc;IACzB,oCAAoC;IAC5B,SAAS,CAAS;IAE1B,YAAY,YAAoB,MAAM;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,QAAsB;QAClC,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;QAEpD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,2EAA2E;QAC3E,MAAM,aAAa,GAAuB,EAAE,CAAC;QAE7C,KAAK,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAChE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,QAAsB;QAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAEhD,yBAAyB;QACzB,MAAM,UAAU,GAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACrD,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,GAAG,EAAE,GAAG,CAAC,KAAK;YACd,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC,CAAC;QAEJ,qBAAqB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,8CAA8C;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7C,uBAAuB;QACvB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,OAAO,EAAE;gBACP,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK;aACf;YACD,QAAQ;YACR,OAAO;YACP,UAAU;YACV,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,QAAqB;QACtC,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,oDAAoD;QACpD,OAAO,IAAI,EAAE,CAAC;YACZ,4BAA4B;YAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAAE,MAAM;YAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,QAAqB,EAAE,QAAgB;QAC7D,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAErB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QAEjC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;QACtC,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO,UAAU,GAAG,aAAa,EAAE,CAAC;YAClC,UAAU,EAAE,CAAC;YAEb,iCAAiC;YACjC,IAAI,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC5D,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,+BAA+B;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjE,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnB,iEAAiE;gBACjE,yDAAyD;gBACzD,MAAM;YACR,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YAEpB,+BAA+B;YAC/B,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3B,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzB,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,6CAA6C;QAC7C,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,QAAqB,EAAE,KAAc;QACjE,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;gBAAE,SAAS;YAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAExB,oBAAoB;YACpB,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;gBACzB,QAAQ,GAAG,SAAS,CAAC;gBACrB,OAAO,GAAG,CAAC,CAAC;YACd,CAAC;YAED,kBAAkB;YAClB,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;gBACvB,QAAQ,GAAG,OAAO,CAAC;gBACnB,OAAO,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,KAAa;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,wCAAwC;QACxC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,MAAM,MAAM,GAAoD,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAExB,+BAA+B;YAC/B,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE5C,uDAAuD;YACvD,MAAM,KAAK,GAAgB,EAAE,CAAC;YAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAExB,uCAAuC;gBACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;oBACtD,uCAAuC;oBACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,KAAgB,EAAE,KAAgB;QAC1D,8CAA8C;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAc,EAAE,OAAkB;QACvD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAEtB,IACE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBACjC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EACnE,CAAC;gBACD,MAAM,GAAG,CAAC,MAAM,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,YAAoB,KAAK;IAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,8DAA8D;QAC9D,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,CAAU,EAAE,CAAU,EAAE,CAAU,EAAE,SAAiB;IACxE,8CAA8C;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,IAAI,GAAG,SAAS,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAiB;IAEjB,IAAI,IAAI,GAAG,QAAQ,EACjB,IAAI,GAAG,QAAQ,CAAC;IAClB,IAAI,IAAI,GAAG,CAAC,QAAQ,EAClB,IAAI,GAAG,CAAC,QAAQ,CAAC;IAEnB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;QACzB,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;KAC1B,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"polygon-builder.js","sourceRoot":"","sources":["../src/polygon-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-cutter.d.ts","sourceRoot":"","sources":["../src/section-cutter.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAGV,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAiBpB,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,OAAO,CAAU;IACzB,gFAAgF;IAChF,OAAO,CAAC,WAAW,CAAoC;gBAE3C,MAAM,EAAE,kBAAkB;IA2BtC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB;IAqC/C;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"section-cutter.d.ts","sourceRoot":"","sources":["../src/section-cutter.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAGV,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAiBpB,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,OAAO,CAAU;IACzB,gFAAgF;IAChF,OAAO,CAAC,WAAW,CAAoC;gBAE3C,MAAM,EAAE,kBAAkB;IA2BtC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB;IAqC/C;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa;IAqE5C;;OAEG;IACH,OAAO,CAAC,SAAS;IAejB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA6C9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAwB9B;AAMD,MAAM,WAAW,6BAA6B;IAC5C,iDAAiD;IACjD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,QAAQ,EAAE,EAClB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,gBAAgB,CAAC,CA0D3B"}
|
package/dist/section-cutter.js
CHANGED
|
@@ -77,7 +77,7 @@ export class SectionCutter {
|
|
|
77
77
|
*/
|
|
78
78
|
cutSingleMesh(mesh) {
|
|
79
79
|
const segments = [];
|
|
80
|
-
const { positions, indices, expressId, ifcType, modelIndex, origin } = mesh;
|
|
80
|
+
const { positions, indices, expressId, ifcType, modelIndex, origin, color } = mesh;
|
|
81
81
|
const triangleCount = indices.length / 3;
|
|
82
82
|
let intersectedCount = 0;
|
|
83
83
|
for (let t = 0; t < triangleCount; t++) {
|
|
@@ -121,6 +121,9 @@ export class SectionCutter {
|
|
|
121
121
|
entityId: expressId,
|
|
122
122
|
ifcType: ifcType || 'Unknown',
|
|
123
123
|
modelIndex: modelIndex || 0,
|
|
124
|
+
// Per-sub-mesh colour so material-layer walls/slabs split per layer
|
|
125
|
+
// in the polygon builder. One MeshData == one layer == one colour.
|
|
126
|
+
color,
|
|
124
127
|
});
|
|
125
128
|
}
|
|
126
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-cutter.js","sourceRoot":"","sources":["../src/section-cutter.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAoB/D,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,OAAO,aAAa;IAChB,WAAW,CAAO;IAClB,aAAa,CAAS;IACtB,IAAI,CAAkB;IACtB,OAAO,CAAU;IACzB,gFAAgF;IACxE,WAAW,CAAoC;IAEvD,YAAY,MAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEtC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,sEAAsE;YACtE,sEAAsE;YACtE,8DAA8D;YAC9D,iDAAiD;YACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,0EAA0E;YAC1E,qEAAqE;YACrE,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAkB;QAC1B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,sEAAsE;QACtE,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,cAAc,IAAI,MAAM,CAAC,kBAAkB,CAAC;YAC5C,oBAAoB,IAAI,MAAM,CAAC,oBAAoB,CAAC;QACtD,CAAC;QAED,8EAA8E;QAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QAEzC,4CAA4C;QAC5C,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE3D,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEvD,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,QAAQ;YACR,KAAK,EAAE;gBACL,cAAc;gBACd,oBAAoB;gBACpB,YAAY,EAAE,WAAW,CAAC,MAAM;gBAChC,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,gBAAgB;aACjB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAc;QAC1B,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"section-cutter.js","sourceRoot":"","sources":["../src/section-cutter.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -126,6 +126,22 @@ export interface DrawingPolygon {
|
|
|
126
126
|
modelIndex: number;
|
|
127
127
|
/** True if from section cut, false if projection */
|
|
128
128
|
isCut: boolean;
|
|
129
|
+
/** Per-sub-mesh RGBA fill (0–1), present only when the source entity cut
|
|
130
|
+
* into >1 distinct material — i.e. an `IfcMaterialLayerSet` wall/slab whose
|
|
131
|
+
* layers each carry their `IfcMaterial`'s surface-style colour, or a
|
|
132
|
+
* frame+glass window. Renderers showing IFC materials use this so each
|
|
133
|
+
* layer fills with its own colour instead of one colour for the whole
|
|
134
|
+
* element; absent for single-material elements (keep the existing
|
|
135
|
+
* per-`ifcType` / per-entity fill). */
|
|
136
|
+
color?: [number, number, number, number];
|
|
137
|
+
/** Set on the OPAQUE BASE polygon emitted for a multi-material entity: the
|
|
138
|
+
* entity's full closed cross-section (built from the watertight union of all
|
|
139
|
+
* its layer bands, so it always closes). It is drawn BEHIND the per-layer
|
|
140
|
+
* colour fills in the 3D section overlay as a backstop, so a layer the
|
|
141
|
+
* reconstruction cannot resolve still shows solid cut material instead of a
|
|
142
|
+
* see-through hole. Carried only in `Drawing2D.layerBaseCutPolygons` (never in
|
|
143
|
+
* `cutPolygons`), so the flat 2D drawing / export / measure paths never see it. */
|
|
144
|
+
isLayerBase?: boolean;
|
|
129
145
|
}
|
|
130
146
|
/**
|
|
131
147
|
* Raw cut segment before classification
|
|
@@ -145,6 +161,10 @@ export interface CutSegment {
|
|
|
145
161
|
ifcType: string;
|
|
146
162
|
/** Model index */
|
|
147
163
|
modelIndex: number;
|
|
164
|
+
/** Source sub-mesh RGBA colour (0–1) — the cut triangle's `MeshData.color`.
|
|
165
|
+
* Carried so the polygon builder can split one entity's cut into per-material
|
|
166
|
+
* loops (material-layer walls/slabs). Absent when the cutter has no colour. */
|
|
167
|
+
color?: [number, number, number, number];
|
|
148
168
|
}
|
|
149
169
|
/**
|
|
150
170
|
* Result from section cutting a single mesh
|
|
@@ -184,6 +204,12 @@ export interface Drawing2D {
|
|
|
184
204
|
lines: DrawingLine[];
|
|
185
205
|
/** Cut polygons (for hatching) */
|
|
186
206
|
cutPolygons: DrawingPolygon[];
|
|
207
|
+
/** Opaque base cross-sections (one set per multi-material entity) drawn behind
|
|
208
|
+
* the per-layer fills in the 3D section overlay so a cut never reads hollow.
|
|
209
|
+
* Consumed ONLY by the 3D overlay; absent from `cutPolygons` so the flat 2D
|
|
210
|
+
* drawing, SVG export, and measure/snap paths are unaffected. Empty/omitted
|
|
211
|
+
* when no multi-material (layered) element is cut. */
|
|
212
|
+
layerBaseCutPolygons?: DrawingPolygon[];
|
|
187
213
|
/** Projection polygons (visible surfaces beyond cut) */
|
|
188
214
|
projectionPolygons: DrawingPolygon[];
|
|
189
215
|
/** Bounding box in 2D drawing space */
|
|
@@ -285,6 +311,13 @@ export declare function parseEntityKey(key: EntityKey): {
|
|
|
285
311
|
modelIndex: number;
|
|
286
312
|
entityId: number;
|
|
287
313
|
};
|
|
314
|
+
/**
|
|
315
|
+
* Stable string key for an RGBA colour (0–1), quantised to 8-bit so
|
|
316
|
+
* floating-point noise from the cut never splits one material into two groups.
|
|
317
|
+
* `null`/`undefined` colours collapse to a single `"none"` bucket so an entity
|
|
318
|
+
* with no colour data still groups as one polygon (the pre-colour behaviour).
|
|
319
|
+
*/
|
|
320
|
+
export declare function colorKey(color?: [number, number, number, number] | null): string;
|
|
288
321
|
/**
|
|
289
322
|
* Door operation type (from IFC IfcDoorTypeOperationEnum)
|
|
290
323
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA;;GAEG;AAMH,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAMD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,IAAI,EAAE,WAAW,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE;QACZ,MAAM,EAAK,IAAI,CAAC;QAChB,iDAAiD;QACjD,QAAQ,EAAG,MAAM,CAAC;QAClB,qEAAqE;QACrE,MAAM,EAAK,IAAI,CAAC;QAChB,OAAO,EAAI,IAAI,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAK/D,CAAC;AAMF,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,iDAAiD;IACjD,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,sCAAsC;IACtC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAMD;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAM/D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,2CAA2C;IAC3C,UAAU,EAAE,eAAe,CAAC;IAC5B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,KAAK,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -28,4 +28,16 @@ export function parseEntityKey(key) {
|
|
|
28
28
|
}
|
|
29
29
|
return { modelIndex, entityId };
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Stable string key for an RGBA colour (0–1), quantised to 8-bit so
|
|
33
|
+
* floating-point noise from the cut never splits one material into two groups.
|
|
34
|
+
* `null`/`undefined` colours collapse to a single `"none"` bucket so an entity
|
|
35
|
+
* with no colour data still groups as one polygon (the pre-colour behaviour).
|
|
36
|
+
*/
|
|
37
|
+
export function colorKey(color) {
|
|
38
|
+
if (!color)
|
|
39
|
+
return 'none';
|
|
40
|
+
const q = (v) => Math.max(0, Math.min(255, Math.round(v * 255)));
|
|
41
|
+
return `${q(color[0])},${q(color[1])},${q(color[2])},${q(color[3])}`;
|
|
42
|
+
}
|
|
31
43
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAiTF;;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;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAA+C;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/drawing-2d",
|
|
3
|
-
"version": "1.18.
|
|
3
|
+
"version": "1.18.4",
|
|
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",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@ifc-lite/geometry": "^2.
|
|
16
|
+
"@ifc-lite/geometry": "^2.10.0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@webgpu/types": "^0.1.70",
|
|
20
20
|
"typescript": "^6.0.3",
|
|
21
|
-
"vitest": "^4.1.
|
|
21
|
+
"vitest": "^4.1.9"
|
|
22
22
|
},
|
|
23
23
|
"license": "MPL-2.0",
|
|
24
24
|
"author": "Louis True",
|