@ifc-lite/drawing-2d 1.21.2 → 2.0.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 +5 -0
- package/dist/drawing-generator.d.ts.map +1 -1
- package/dist/drawing-generator.js +20 -3
- package/dist/drawing-generator.js.map +1 -1
- package/dist/edge-extractor.d.ts.map +1 -1
- package/dist/edge-extractor.js +9 -1
- package/dist/edge-extractor.js.map +1 -1
- package/dist/hidden-line-raster.d.ts +41 -0
- package/dist/hidden-line-raster.d.ts.map +1 -0
- package/dist/hidden-line-raster.js +154 -0
- package/dist/hidden-line-raster.js.map +1 -0
- package/dist/hidden-line.d.ts +34 -21
- package/dist/hidden-line.d.ts.map +1 -1
- package/dist/hidden-line.js +107 -214
- package/dist/hidden-line.js.map +1 -1
- package/dist/line-merger.d.ts.map +1 -1
- package/dist/line-merger.js +88 -44
- package/dist/line-merger.js.map +1 -1
- package/dist/polygon-builder.d.ts +31 -0
- package/dist/polygon-builder.d.ts.map +1 -1
- package/dist/polygon-builder.js +60 -3
- package/dist/polygon-builder.js.map +1 -1
- package/dist/profile-projector.js +17 -9
- package/dist/profile-projector.js.map +1 -1
- package/dist/projection-bands.d.ts +13 -6
- package/dist/projection-bands.d.ts.map +1 -1
- package/dist/projection-bands.js +15 -3
- package/dist/projection-bands.js.map +1 -1
- package/dist/section-cutter.d.ts +8 -0
- package/dist/section-cutter.d.ts.map +1 -1
- package/dist/section-cutter.js +59 -11
- package/dist/section-cutter.js.map +1 -1
- package/dist/types.d.ts +26 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/projection-bands.js
CHANGED
|
@@ -148,14 +148,26 @@ export function bandVisibility(band) {
|
|
|
148
148
|
* inconsistently (common for ifc-lite roofs/stairs/site).
|
|
149
149
|
*/
|
|
150
150
|
export function outlineToProjectionLines(outline, meta, plane, depths) {
|
|
151
|
-
// The outline
|
|
152
|
-
//
|
|
151
|
+
// The outline provider itself is cardinal-only: `axisMin`/`axisMax` are
|
|
152
|
+
// coordinates along the cardinal cut axis, and the contours are in cardinal
|
|
153
|
+
// projection space (the Rust `meshOutline2d` binding knows nothing of
|
|
154
|
+
// custom planes). The generator therefore never calls this with a custom
|
|
155
|
+
// plane active - it bypasses the provider for the plane-aware silhouette
|
|
156
|
+
// path (PR #2644 review). Classify against the cardinal plane position; the
|
|
157
|
+
// custom-plane `distance` is only the best-available offset if a direct
|
|
158
|
+
// caller ever passes one despite that.
|
|
153
159
|
const pos = plane.customPlane ? plane.customPlane.distance : plane.position;
|
|
154
160
|
const dMin = signedAxisDepth(outline.axisMin, pos, plane.flipped);
|
|
155
161
|
const dMax = signedAxisDepth(outline.axisMax, pos, plane.flipped);
|
|
156
162
|
const visibility = bandVisibility(classifyDepthRange(dMin, dMax, depths));
|
|
157
163
|
if (visibility === null)
|
|
158
164
|
return [];
|
|
165
|
+
// Contours are 2D-only, so a scalar depth is all the geometry supports:
|
|
166
|
+
// use the element's nearest in-band extent as VIEW depth (issue #2639).
|
|
167
|
+
// Nearest is the conservative choice, biased toward visible - it prevents
|
|
168
|
+
// an element's own raster from hiding its own footprint outline. Accepted
|
|
169
|
+
// trade-off: base edges of tall elements are slightly under-hidden.
|
|
170
|
+
const depth = Math.max(0, -Math.max(dMin, dMax));
|
|
159
171
|
const lines = [];
|
|
160
172
|
for (const ring of outline.contours) {
|
|
161
173
|
const n = Math.floor(ring.length / 2);
|
|
@@ -176,7 +188,7 @@ export function outlineToProjectionLines(outline, meta, plane, depths) {
|
|
|
176
188
|
entityId: meta.entityId,
|
|
177
189
|
ifcType: meta.ifcType,
|
|
178
190
|
modelIndex: meta.modelIndex,
|
|
179
|
-
depth
|
|
191
|
+
depth,
|
|
180
192
|
});
|
|
181
193
|
}
|
|
182
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection-bands.js","sourceRoot":"","sources":["../src/projection-bands.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"projection-bands.js","sourceRoot":"","sources":["../src/projection-bands.ts"],"names":[],"mappings":"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"}
|
package/dist/section-cutter.d.ts
CHANGED
|
@@ -25,6 +25,14 @@ export declare class SectionCutter {
|
|
|
25
25
|
* Get vertex from positions array
|
|
26
26
|
*/
|
|
27
27
|
private getVertex;
|
|
28
|
+
/**
|
|
29
|
+
* Max |coordinate| of a triangle's LOCAL (pre-origin) vertex positions —
|
|
30
|
+
* the `Float32Array` values exactly as stored, before the per-mesh RTC
|
|
31
|
+
* `origin` translation. This is the quantity float32 rounding noise
|
|
32
|
+
* actually scales with; deliberately does NOT take `origin` as a
|
|
33
|
+
* parameter so a future edit can't accidentally fold it back in.
|
|
34
|
+
*/
|
|
35
|
+
private localMaxCoord;
|
|
28
36
|
/**
|
|
29
37
|
* Intersect a triangle with the section plane
|
|
30
38
|
* Returns the two intersection points, or null if no intersection
|
|
@@ -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;IA+F5C;;OAEG;IACH,OAAO,CAAC,SAAS;IAejB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAcrB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA8C9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAyB9B;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
|
@@ -94,8 +94,28 @@ export class SectionCutter {
|
|
|
94
94
|
const d0 = signedDistanceToPlane(v0, this.planeNormal, this.planeDistance);
|
|
95
95
|
const d1 = signedDistanceToPlane(v1, this.planeNormal, this.planeDistance);
|
|
96
96
|
const d2 = signedDistanceToPlane(v2, this.planeNormal, this.planeDistance);
|
|
97
|
+
// Plane-side classification epsilon. `dot(v, n)` sums three
|
|
98
|
+
// float32-quantized components, so even a vertex whose TRUE distance
|
|
99
|
+
// is 0 carries rounding noise proportional to its own coordinate
|
|
100
|
+
// magnitude (~coord · 2⁻²²), not just the fixed EPSILON. Without this
|
|
101
|
+
// floor, a face lying exactly on a non-axis-aligned cut plane gets its
|
|
102
|
+
// near-zero d0/d1 misclassified as a genuine crossing, and the
|
|
103
|
+
// resulting lerp — dividing one noise term by another — produces a
|
|
104
|
+
// wild extrapolated point instead of being skipped as coplanar.
|
|
105
|
+
//
|
|
106
|
+
// Crucially, this must be measured on the LOCAL (pre-origin) vertex
|
|
107
|
+
// coordinates, not `v0`/`v1`/`v2` (world = origin + local). The
|
|
108
|
+
// quantization noise is a property of the `Float32Array` values as
|
|
109
|
+
// authored, not of where the element's per-mesh RTC origin happens to
|
|
110
|
+
// place it in the model. Using the world-lifted magnitude here scales
|
|
111
|
+
// the tolerance to the element's DISTANCE FROM THE MODEL ORIGIN
|
|
112
|
+
// instead of its own extent — a small element far from the model
|
|
113
|
+
// origin would get a tolerance orders of magnitude too loose, which
|
|
114
|
+
// misclassifies genuine close crossings as coplanar (#2622).
|
|
115
|
+
const localMaxCoord = this.localMaxCoord(positions, i0, i1, i2);
|
|
116
|
+
const planeEps = Math.max(EPSILON, localMaxCoord * 2 ** -22);
|
|
97
117
|
// Intersect triangle with plane
|
|
98
|
-
const intersection = this.intersectTrianglePlane(v0, v1, v2, d0, d1, d2);
|
|
118
|
+
const intersection = this.intersectTrianglePlane(v0, v1, v2, d0, d1, d2, planeEps);
|
|
99
119
|
if (intersection) {
|
|
100
120
|
intersectedCount++;
|
|
101
121
|
// Project 3D points to 2D. For face-picked custom planes use the
|
|
@@ -124,6 +144,11 @@ export class SectionCutter {
|
|
|
124
144
|
// Per-sub-mesh colour so material-layer walls/slabs split per layer
|
|
125
145
|
// in the polygon builder. One MeshData == one layer == one colour.
|
|
126
146
|
color,
|
|
147
|
+
// LOCAL (pre-origin) magnitude — lets the polygon builder size its
|
|
148
|
+
// scale-aware weld tolerance off the element's own extent instead
|
|
149
|
+
// of `p0_2d`/`p1_2d`'s world-frame magnitude. See the field's
|
|
150
|
+
// doc comment in types.ts and `localMaxCoord` above.
|
|
151
|
+
localMaxCoord,
|
|
127
152
|
});
|
|
128
153
|
}
|
|
129
154
|
}
|
|
@@ -142,14 +167,37 @@ export class SectionCutter {
|
|
|
142
167
|
? vec3(positions[base] + origin[0], positions[base + 1] + origin[1], positions[base + 2] + origin[2])
|
|
143
168
|
: vec3(positions[base], positions[base + 1], positions[base + 2]);
|
|
144
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Max |coordinate| of a triangle's LOCAL (pre-origin) vertex positions —
|
|
172
|
+
* the `Float32Array` values exactly as stored, before the per-mesh RTC
|
|
173
|
+
* `origin` translation. This is the quantity float32 rounding noise
|
|
174
|
+
* actually scales with; deliberately does NOT take `origin` as a
|
|
175
|
+
* parameter so a future edit can't accidentally fold it back in.
|
|
176
|
+
*/
|
|
177
|
+
localMaxCoord(positions, i0, i1, i2) {
|
|
178
|
+
let m = 0;
|
|
179
|
+
for (const i of [i0, i1, i2]) {
|
|
180
|
+
const base = i * 3;
|
|
181
|
+
const ax = Math.abs(positions[base]);
|
|
182
|
+
const ay = Math.abs(positions[base + 1]);
|
|
183
|
+
const az = Math.abs(positions[base + 2]);
|
|
184
|
+
if (ax > m)
|
|
185
|
+
m = ax;
|
|
186
|
+
if (ay > m)
|
|
187
|
+
m = ay;
|
|
188
|
+
if (az > m)
|
|
189
|
+
m = az;
|
|
190
|
+
}
|
|
191
|
+
return m;
|
|
192
|
+
}
|
|
145
193
|
/**
|
|
146
194
|
* Intersect a triangle with the section plane
|
|
147
195
|
* Returns the two intersection points, or null if no intersection
|
|
148
196
|
*/
|
|
149
|
-
intersectTrianglePlane(v0, v1, v2, d0, d1, d2) {
|
|
197
|
+
intersectTrianglePlane(v0, v1, v2, d0, d1, d2, eps = EPSILON) {
|
|
150
198
|
// Count vertices on each side of the plane
|
|
151
|
-
const pos = (d0 >
|
|
152
|
-
const neg = (d0 < -
|
|
199
|
+
const pos = (d0 > eps ? 1 : 0) + (d1 > eps ? 1 : 0) + (d2 > eps ? 1 : 0);
|
|
200
|
+
const neg = (d0 < -eps ? 1 : 0) + (d1 < -eps ? 1 : 0) + (d2 < -eps ? 1 : 0);
|
|
153
201
|
// No intersection if all vertices on same side
|
|
154
202
|
if (pos === 3 || neg === 3)
|
|
155
203
|
return null;
|
|
@@ -159,16 +207,16 @@ export class SectionCutter {
|
|
|
159
207
|
// Find intersection points on edges
|
|
160
208
|
const points = [];
|
|
161
209
|
// Check edge v0-v1
|
|
162
|
-
const p01 = this.edgePlaneIntersection(v0, v1, d0, d1);
|
|
210
|
+
const p01 = this.edgePlaneIntersection(v0, v1, d0, d1, eps);
|
|
163
211
|
if (p01)
|
|
164
212
|
points.push(p01);
|
|
165
213
|
// Check edge v1-v2
|
|
166
|
-
const p12 = this.edgePlaneIntersection(v1, v2, d1, d2);
|
|
214
|
+
const p12 = this.edgePlaneIntersection(v1, v2, d1, d2, eps);
|
|
167
215
|
if (p12)
|
|
168
216
|
points.push(p12);
|
|
169
217
|
// Check edge v2-v0
|
|
170
218
|
if (points.length < 2) {
|
|
171
|
-
const p20 = this.edgePlaneIntersection(v2, v0, d2, d0);
|
|
219
|
+
const p20 = this.edgePlaneIntersection(v2, v0, d2, d0, eps);
|
|
172
220
|
if (p20)
|
|
173
221
|
points.push(p20);
|
|
174
222
|
}
|
|
@@ -181,15 +229,15 @@ export class SectionCutter {
|
|
|
181
229
|
/**
|
|
182
230
|
* Find intersection point of an edge with the plane
|
|
183
231
|
*/
|
|
184
|
-
edgePlaneIntersection(v0, v1, d0, d1) {
|
|
232
|
+
edgePlaneIntersection(v0, v1, d0, d1, eps = EPSILON) {
|
|
185
233
|
// Both vertices on the plane - edge lies on plane
|
|
186
|
-
if (Math.abs(d0) <
|
|
234
|
+
if (Math.abs(d0) < eps && Math.abs(d1) < eps) {
|
|
187
235
|
return null; // Handled separately as face-on-plane
|
|
188
236
|
}
|
|
189
237
|
// One vertex on plane - return that vertex
|
|
190
|
-
if (Math.abs(d0) <
|
|
238
|
+
if (Math.abs(d0) < eps)
|
|
191
239
|
return v0;
|
|
192
|
-
if (Math.abs(d1) <
|
|
240
|
+
if (Math.abs(d1) < eps)
|
|
193
241
|
return v1;
|
|
194
242
|
// Both vertices on same side - no intersection
|
|
195
243
|
if ((d0 > 0) === (d1 > 0))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-cutter.js","sourceRoot":"","sources":["../src/section-cutter.ts"],"names":[],"mappings":"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
|
|
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
|
@@ -109,8 +109,20 @@ export interface DrawingLine {
|
|
|
109
109
|
ifcType: string;
|
|
110
110
|
/** Model index for multi-model federation */
|
|
111
111
|
modelIndex: number;
|
|
112
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* VIEW DEPTH at the line's start point (issue #2639, see the convention
|
|
114
|
+
* comment in projection-bands.ts): the negated flip-adjusted signed depth,
|
|
115
|
+
* so 0 at the cut plane, increasing into the kept half, smaller means
|
|
116
|
+
* nearer the viewer. Hidden-line removal compares this against the
|
|
117
|
+
* occluder depth buffer, which stores the same quantity.
|
|
118
|
+
*/
|
|
113
119
|
depth: number;
|
|
120
|
+
/**
|
|
121
|
+
* View depth at the line's END point, when it differs from `depth` (e.g.
|
|
122
|
+
* a sloped edge). The hidden-line classifier lerps `depth`..`depthEnd`
|
|
123
|
+
* along the 2D line per sample; omitted means constant depth.
|
|
124
|
+
*/
|
|
125
|
+
depthEnd?: number;
|
|
114
126
|
}
|
|
115
127
|
/**
|
|
116
128
|
* A polygon from section cut (used for hatching)
|
|
@@ -165,6 +177,19 @@ export interface CutSegment {
|
|
|
165
177
|
* Carried so the polygon builder can split one entity's cut into per-material
|
|
166
178
|
* loops (material-layer walls/slabs). Absent when the cutter has no colour. */
|
|
167
179
|
color?: [number, number, number, number];
|
|
180
|
+
/** Max |coordinate| of the source triangle's LOCAL vertex positions —
|
|
181
|
+
* i.e. the `Float32Array` values BEFORE the per-mesh RTC `origin` was
|
|
182
|
+
* added. This is the quantity that actually bounds float32 rounding
|
|
183
|
+
* noise (quantization happens when the mesh is authored in its local
|
|
184
|
+
* frame, not when a double-precision `origin` is added afterward), so
|
|
185
|
+
* it must be used instead of `p0_2d`/`p1_2d`'s world-frame magnitude
|
|
186
|
+
* when sizing a scale-aware weld tolerance — otherwise a small element
|
|
187
|
+
* sitting at a large RTC origin gets a tolerance scaled to its
|
|
188
|
+
* distance from the model origin instead of its own extent (#2622).
|
|
189
|
+
* Absent when the segment wasn't produced by `SectionCutter` (e.g.
|
|
190
|
+
* hand-built test fixtures), in which case callers fall back to the
|
|
191
|
+
* segment's own 2D coordinate magnitude. */
|
|
192
|
+
localMaxCoord?: number;
|
|
168
193
|
}
|
|
169
194
|
/**
|
|
170
195
|
* Result from section cutting a single mesh
|
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
|
|
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;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;AA0UF;;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": "
|
|
3
|
+
"version": "2.0.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",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@ifc-lite/geometry": "^3.8.
|
|
16
|
+
"@ifc-lite/geometry": "^3.8.3"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@webgpu/types": "^0.1.71",
|