@ifc-lite/wasm 6.4.0 → 7.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/README.md +49 -0
- package/package.json +1 -1
- package/pkg/ifc-lite.d.ts +101 -13
- package/pkg/ifc-lite.js +331 -11
- package/pkg/ifc-lite_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -111,3 +111,52 @@ See the [WASM API Reference](https://ifclite.dev/docs/api/wasm/).
|
|
|
111
111
|
## License
|
|
112
112
|
|
|
113
113
|
[MPL-2.0](https://mozilla.org/MPL/2.0/)
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
For appearance authoring, `IfcAPI.catalogAppearance` resolves current IFC product
|
|
117
|
+
classes and type memberships from an effective STEP snapshot before planning.
|
|
118
|
+
It shares bounded native decoding with `planAppearance`; run both in a worker and
|
|
119
|
+
validate the source revision before using a catalog or applying a plan. See the
|
|
120
|
+
[WASM API guide](../../docs/api/wasm.md#effective-appearance-scope-catalog) for the
|
|
121
|
+
request, response and limits.
|
|
122
|
+
|
|
123
|
+
`IfcAPI.planPageAppearance(content, requestJson, rgba)` adds a bounded finite-page
|
|
124
|
+
compositor. It returns an `IFPA` metadata/PNG envelope with per-item digest-named
|
|
125
|
+
assets and ordinary atomic IFC edits. Outside-page albedo is resampled from the
|
|
126
|
+
original canonical style/texture, not a repeated or clamped page border. Run in
|
|
127
|
+
a cancellable worker and retain all generated assets with the command. See the
|
|
128
|
+
[WASM API guide](../../docs/api/wasm.md#finite-page-appearance-output).
|
|
129
|
+
|
|
130
|
+
`IfcAPI.planAnnotationPlane` creates a bounded calibrated image `IfcAnnotation`
|
|
131
|
+
plan for an explicit spatial container, reusing canonical native geometry. Run it
|
|
132
|
+
in a worker and publish its typed entities, source-image lease and returned mesh
|
|
133
|
+
as one existing model/history transaction. See the [WASM API guide](../../docs/api/wasm.md#calibrated-annotation-creation)
|
|
134
|
+
for the Z-up geometry/top-down UV and allocator/source validation contract.
|
|
135
|
+
|
|
136
|
+
`IfcAPI.planCapturedMesh` creates a bounded `IfcBuildingElementProxy` plan from
|
|
137
|
+
an already segmented textured triangle mesh, retaining independent UV seams and
|
|
138
|
+
the original image URI. It uses the same native authoring and geometry path as
|
|
139
|
+
annotation creation. See [captured surface creation](../../docs/api/wasm.md#captured-textured-surface-creation)
|
|
140
|
+
for coordinate, budget and atomic host-commit requirements.
|
|
141
|
+
|
|
142
|
+
Captured-mesh planning preserves optional `repeatS`/`repeatT` image sampler flags
|
|
143
|
+
(default `false`); UVs remain bounded to `[0, 1]`.
|
|
144
|
+
|
|
145
|
+
`IfcAPI.registerScanCorrespondences` fits bounded manual source-scan/IFC point
|
|
146
|
+
pairs and returns a proper rigid transform plus separate fitting and held-out
|
|
147
|
+
residuals. Frames and asset identities are bound into the report; the call does
|
|
148
|
+
not align a loaded model or approve scan accuracy. See the
|
|
149
|
+
[registration contract](../../docs/api/wasm.md#scan-correspondence-registration).
|
|
150
|
+
|
|
151
|
+
`IfcAPI.planMeshTransfer` composes registered opaque textured-mesh observations
|
|
152
|
+
onto supported direct IFC tessellations using the shared atlas planner. Unknown
|
|
153
|
+
samples retain existing target albedo; the IFPA response includes explicit
|
|
154
|
+
coverage and frozen-input bindings. Entirely unknown transfer has no applicable
|
|
155
|
+
plan. See the [transfer contract](../../docs/api/wasm.md#registered-textured-mesh-appearance-transfer)
|
|
156
|
+
for source identity, coordinate frames, budgets and host acceptance requirements.
|
|
157
|
+
|
|
158
|
+
`IfcAPI.preparePdfVectorPage` validates bounded ordered PDF vector graphics states
|
|
159
|
+
and preserves source operator identity, calibrated transforms and paint state.
|
|
160
|
+
Unsupported content remains an explicit blocker. It emits no IFC entities and
|
|
161
|
+
makes no flattened-geometry fidelity claim; see the
|
|
162
|
+
[preparation contract](../../docs/api/wasm.md#pdf-vector-graphics-state-preparation).
|
package/package.json
CHANGED
package/pkg/ifc-lite.d.ts
CHANGED
|
@@ -313,6 +313,18 @@ export class IfcAPI {
|
|
|
313
313
|
* Existing streaming prepass plus an exact full-source key in complete.
|
|
314
314
|
*/
|
|
315
315
|
buildPrePassStreamingWithSourceFingerprint(data: Uint8Array, on_event: Function, chunk_size: number, disabled_type_names: string[] | null | undefined, skip_type_geometry: boolean): any;
|
|
316
|
+
/**
|
|
317
|
+
* Calibrate one raster plane from native-source landmarks and a measured
|
|
318
|
+
* world span. Returns UTF-8 CalibratedPlane JSON. Constant bounded work;
|
|
319
|
+
* does not read IFC, decode image pixels or mutate a model.
|
|
320
|
+
*/
|
|
321
|
+
calibrateAppearancePlane(request_json: string): Uint8Array;
|
|
322
|
+
/**
|
|
323
|
+
* Catalog effective IfcProduct classes and IfcRelDefinesByType membership.
|
|
324
|
+
* JSON input is AppearanceCatalogRequest; output is AppearanceCatalog JSON.
|
|
325
|
+
* Run in a worker and validate sourceRevision before using the selectors.
|
|
326
|
+
*/
|
|
327
|
+
catalogAppearance(content: Uint8Array, request_json: string): Uint8Array;
|
|
316
328
|
/**
|
|
317
329
|
* Clear the cached entity index (call between loads when reusing
|
|
318
330
|
* the same `IfcAPI` instance — e.g. the parser worker keeps one
|
|
@@ -353,8 +365,17 @@ export class IfcAPI {
|
|
|
353
365
|
*
|
|
354
366
|
* `hidden` / `isolated` are express-id visibility filters; `hidden_types_csv` is a
|
|
355
367
|
* comma-separated list of IFC type names whose class toggle is off (e.g.
|
|
356
|
-
* `"IfcOpeningElement,IfcSpace"`). `
|
|
357
|
-
*
|
|
368
|
+
* `"IfcOpeningElement,IfcSpace"`). `isolated` carries the isolation allowlist's
|
|
369
|
+
* null-vs-empty distinction across the wasm boundary: omit it (`undefined`) for
|
|
370
|
+
* "no isolation filter" (every mesh is a candidate); pass an empty `Uint32Array`
|
|
371
|
+
* for "isolation is ACTIVE and currently matches nothing" (every mesh is
|
|
372
|
+
* excluded). Collapsing the two — as a bare `Uint32Array` parameter would force a
|
|
373
|
+
* caller to do — silently exports the whole model when a filter matches nothing
|
|
374
|
+
* (#4328 follow-up: reachable by filtering the Class tab to a type present only
|
|
375
|
+
* in a federated model's secondary member, then exporting "Visible Only"). A
|
|
376
|
+
* non-empty `Uint32Array` is the ordinary allowlist. `include_metadata` attaches
|
|
377
|
+
* counts + per-node `expressId`. Per-mesh RTC origin rides the node translation
|
|
378
|
+
* (precision-safe).
|
|
358
379
|
* `lit` emits standard PBR materials that shade from normals; omitted or
|
|
359
380
|
* `true` ⇒ lit (the default), `false` ⇒ flat `KHR_materials_unlit` (the
|
|
360
381
|
* historical look — #1321). Optional at the boundary so older 5-arg callers
|
|
@@ -369,7 +390,7 @@ export class IfcAPI {
|
|
|
369
390
|
* CLI/MCP wrappers; making the boundary itself refuse means SDK/viewer/
|
|
370
391
|
* direct callers inherit it too (the TS guards stay as defense-in-depth).
|
|
371
392
|
*/
|
|
372
|
-
exportGlb(content: Uint8Array, include_metadata: boolean, hidden: Uint32Array, isolated: Uint32Array, hidden_types_csv: string, lit?: boolean | null, emissive?: boolean | null): Uint8Array;
|
|
393
|
+
exportGlb(content: Uint8Array, include_metadata: boolean, hidden: Uint32Array, isolated: Uint32Array | null | undefined, hidden_types_csv: string, lit?: boolean | null, emissive?: boolean | null): Uint8Array;
|
|
373
394
|
/**
|
|
374
395
|
* Assemble a **GLB** from already-produced meshes (the viewer's `MeshData`, flattened)
|
|
375
396
|
* — no re-meshing. Per mesh `i`: `vertex_counts[i]` verts + `index_counts[i]` indices
|
|
@@ -477,14 +498,21 @@ export class IfcAPI {
|
|
|
477
498
|
* V8 max-string ceiling (~512 MB); decode with `TextDecoder` when a string
|
|
478
499
|
* is genuinely needed.
|
|
479
500
|
*
|
|
480
|
-
* `hidden`
|
|
481
|
-
*
|
|
501
|
+
* `hidden` is an express-id filter mirroring the viewer's visibility state.
|
|
502
|
+
* `isolated` carries the isolation allowlist's null-vs-empty distinction across
|
|
503
|
+
* the wasm boundary: omit it (`undefined`) for "no isolation filter" (every mesh
|
|
504
|
+
* is a candidate); pass an empty `Uint32Array` for "isolation is ACTIVE and
|
|
505
|
+
* currently matches nothing" (every mesh is excluded). Collapsing the two — as a
|
|
506
|
+
* bare `Uint32Array` parameter would force a caller to do — silently exports the
|
|
507
|
+
* whole model when a filter matches nothing (the OBJ twin of #4328/#4364, fixed
|
|
508
|
+
* for GLB in `export_glb`). A non-empty `Uint32Array` is the ordinary allowlist.
|
|
509
|
+
* Instanced type-library shapes are skipped regardless of the filter.
|
|
482
510
|
*
|
|
483
511
|
* ```javascript
|
|
484
|
-
* const obj = api.exportObj(ifcContent, true, new Uint32Array(),
|
|
512
|
+
* const obj = api.exportObj(ifcContent, true, new Uint32Array(), undefined);
|
|
485
513
|
* ```
|
|
486
514
|
*/
|
|
487
|
-
exportObj(content: Uint8Array, include_normals: boolean, hidden: Uint32Array, isolated
|
|
515
|
+
exportObj(content: Uint8Array, include_normals: boolean, hidden: Uint32Array, isolated?: Uint32Array | null): Uint8Array;
|
|
488
516
|
/**
|
|
489
517
|
* Re-serialize the model in `content` to STEP/IFC UTF-8 bytes.
|
|
490
518
|
*
|
|
@@ -605,6 +633,49 @@ export class IfcAPI {
|
|
|
605
633
|
* ```
|
|
606
634
|
*/
|
|
607
635
|
parseSymbolicRepresentations(content: string): SymbolicRepresentationCollection;
|
|
636
|
+
/**
|
|
637
|
+
* Create a calibrated image annotation through canonical native geometry.
|
|
638
|
+
* Input is AnnotationPlaneRequest; output UTF-8 AnnotationPlanePlan JSON.
|
|
639
|
+
* Does not mutate the IFC snapshot or decode the host-owned image.
|
|
640
|
+
*/
|
|
641
|
+
planAnnotationPlane(content: Uint8Array, request_json: string): Uint8Array;
|
|
642
|
+
/**
|
|
643
|
+
* Plan image/UV edits against an effective IFC snapshot without mutating it.
|
|
644
|
+
* JSON input uses AppearanceRequest; output is UTF-8 AppearancePlan JSON.
|
|
645
|
+
* Call from a worker, then validate sourceRevision and allocator before an
|
|
646
|
+
* atomic host commit. Preview UVs describe an unsplit canonical mesh item.
|
|
647
|
+
*/
|
|
648
|
+
planAppearance(content: Uint8Array, request_json: string): Uint8Array;
|
|
649
|
+
/**
|
|
650
|
+
* Create a captured textured surface through canonical native geometry.
|
|
651
|
+
* Input is CapturedMeshRequest; output UTF-8 CapturedMeshPlan JSON.
|
|
652
|
+
* Does not mutate the IFC snapshot or decode the host-owned image.
|
|
653
|
+
*/
|
|
654
|
+
planCapturedMesh(content: Uint8Array, request_json: string): Uint8Array;
|
|
655
|
+
/**
|
|
656
|
+
* Registered mesh observations over canonical target albedo. Host verifies
|
|
657
|
+
* original GLB identity against decoded source mesh/image and freezes frames.
|
|
658
|
+
* Run in an owned cancellable worker. IFPA output adds `transfer` coverage;
|
|
659
|
+
* `plan` is null when no sample is observed. Never infer accuracy approval.
|
|
660
|
+
*/
|
|
661
|
+
planMeshTransfer(content: Uint8Array, request_json: string, rgba: Uint8Array): Uint8Array;
|
|
662
|
+
/**
|
|
663
|
+
* Finite-page composition over original canonical albedo. RGBA is supplied
|
|
664
|
+
* separately from the bounded JSON request. Result: IFPA magic, little-endian
|
|
665
|
+
* u32 JSON byte length, metadata JSON, then PNG bytes addressed by metadata.
|
|
666
|
+
* Run in a cancellable worker; atomically adopt every item asset and IFC edit.
|
|
667
|
+
*/
|
|
668
|
+
planPageAppearance(content: Uint8Array, request_json: string, rgba: Uint8Array): Uint8Array;
|
|
669
|
+
/**
|
|
670
|
+
* Plan a complete opaque polygonal PDF fill page as canonical IfcAnnotation
|
|
671
|
+
* geometry. Painted strokes, curves and unsupported states refuse atomically.
|
|
672
|
+
*/
|
|
673
|
+
planPdfFillAnnotation(source: Uint8Array, request_json: string): Uint8Array;
|
|
674
|
+
/**
|
|
675
|
+
* Prepare bounded ordered PDF vector graphics states. No IFC entities or
|
|
676
|
+
* flattened geometry are produced; unsupported content prevents qualification.
|
|
677
|
+
*/
|
|
678
|
+
preparePdfVectorPage(request_json: string): Uint8Array;
|
|
608
679
|
/**
|
|
609
680
|
* Process geometry for a subset of pre-scanned entities → flat
|
|
610
681
|
* MeshCollection. Takes raw bytes + pre-pass data from buildPrePassOnce.
|
|
@@ -655,6 +726,11 @@ export class IfcAPI {
|
|
|
655
726
|
* Byte-for-byte identical output — it delegates to the legacy twin.
|
|
656
727
|
*/
|
|
657
728
|
processGeometryBatchPartitionedFromSource(jobs_flat: Uint32Array, unit_scale: number, rtc_x: number, rtc_y: number, rtc_z: number, needs_shift: boolean, void_keys: Uint32Array, void_counts: Uint32Array, void_values: Uint32Array, style_ids: Uint32Array, style_colors: Uint8Array, plane_angle_to_radians?: number | null, material_element_ids?: Uint32Array | null, material_color_counts?: Uint32Array | null, material_colors_rgba?: Uint8Array | null): PartitionedBatch;
|
|
729
|
+
/**
|
|
730
|
+
* Fit bounded manual correspondences in source metres -> IFC world Z-up
|
|
731
|
+
* metres, reporting held-out errors separately. Does not load or move models.
|
|
732
|
+
*/
|
|
733
|
+
registerScanCorrespondences(request_json: string): Uint8Array;
|
|
658
734
|
/**
|
|
659
735
|
* Sharded pre-pass: resolve ONE contiguous (file-ordered) slice of the
|
|
660
736
|
* styled-item span list on this worker, against the entity index installed
|
|
@@ -1564,6 +1640,7 @@ export class SymbolicFillArea {
|
|
|
1564
1640
|
readonly fillB: number;
|
|
1565
1641
|
readonly fillG: number;
|
|
1566
1642
|
readonly fillR: number;
|
|
1643
|
+
readonly geometryItemId: number | undefined;
|
|
1567
1644
|
readonly hasHatching: boolean;
|
|
1568
1645
|
readonly hatchAngle: number;
|
|
1569
1646
|
readonly hatchAngleSecondary: number;
|
|
@@ -1998,6 +2075,8 @@ export interface InitOutput {
|
|
|
1998
2075
|
readonly ifcapi_buildPrePassStreamingSharded: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => void;
|
|
1999
2076
|
readonly ifcapi_buildPrePassStreamingShardedWithSourceFingerprint: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => void;
|
|
2000
2077
|
readonly ifcapi_buildPrePassStreamingWithSourceFingerprint: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
|
|
2078
|
+
readonly ifcapi_calibrateAppearancePlane: (a: number, b: number, c: number, d: number) => void;
|
|
2079
|
+
readonly ifcapi_catalogAppearance: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
2001
2080
|
readonly ifcapi_clearPrePassCache: (a: number) => void;
|
|
2002
2081
|
readonly ifcapi_diagnoseGeometry: (a: number, b: number, c: number) => number;
|
|
2003
2082
|
readonly ifcapi_exportCsv: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
|
|
@@ -2026,11 +2105,19 @@ export interface InitOutput {
|
|
|
2026
2105
|
readonly ifcapi_parseGridAxes: (a: number, b: number, c: number) => number;
|
|
2027
2106
|
readonly ifcapi_parseGridLines: (a: number, b: number, c: number) => number;
|
|
2028
2107
|
readonly ifcapi_parseSymbolicRepresentations: (a: number, b: number, c: number) => number;
|
|
2108
|
+
readonly ifcapi_planAnnotationPlane: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
2109
|
+
readonly ifcapi_planAppearance: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
2110
|
+
readonly ifcapi_planCapturedMesh: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
2111
|
+
readonly ifcapi_planMeshTransfer: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
|
|
2112
|
+
readonly ifcapi_planPageAppearance: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
|
|
2113
|
+
readonly ifcapi_planPdfFillAnnotation: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
2114
|
+
readonly ifcapi_preparePdfVectorPage: (a: number, b: number, c: number, d: number) => void;
|
|
2029
2115
|
readonly ifcapi_processGeometryBatch: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number) => number;
|
|
2030
2116
|
readonly ifcapi_processGeometryBatchFromSource: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number) => number;
|
|
2031
2117
|
readonly ifcapi_processGeometryBatchInstanced: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number) => void;
|
|
2032
2118
|
readonly ifcapi_processGeometryBatchPartitioned: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number) => number;
|
|
2033
2119
|
readonly ifcapi_processGeometryBatchPartitionedFromSource: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number) => number;
|
|
2120
|
+
readonly ifcapi_registerScanCorrespondences: (a: number, b: number, c: number, d: number) => void;
|
|
2034
2121
|
readonly ifcapi_resolveStyledItemsShard: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
2035
2122
|
readonly ifcapi_resolveStyledItemsShardFromSource: (a: number, b: number, c: number, d: number) => void;
|
|
2036
2123
|
readonly ifcapi_scanEntitiesFast: (a: number, b: number, c: number) => number;
|
|
@@ -2161,10 +2248,12 @@ export interface InitOutput {
|
|
|
2161
2248
|
readonly symboliccircle_repIdentifier: (a: number, b: number) => void;
|
|
2162
2249
|
readonly symboliccircle_startAngle: (a: number) => number;
|
|
2163
2250
|
readonly symboliccircle_worldY: (a: number) => number;
|
|
2251
|
+
readonly symbolicfillarea_expressId: (a: number) => number;
|
|
2164
2252
|
readonly symbolicfillarea_fillA: (a: number) => number;
|
|
2165
2253
|
readonly symbolicfillarea_fillB: (a: number) => number;
|
|
2166
2254
|
readonly symbolicfillarea_fillG: (a: number) => number;
|
|
2167
2255
|
readonly symbolicfillarea_fillR: (a: number) => number;
|
|
2256
|
+
readonly symbolicfillarea_geometryItemId: (a: number) => number;
|
|
2168
2257
|
readonly symbolicfillarea_hasHatching: (a: number) => number;
|
|
2169
2258
|
readonly symbolicfillarea_hatchAngle: (a: number) => number;
|
|
2170
2259
|
readonly symbolicfillarea_hatchAngleSecondary: (a: number) => number;
|
|
@@ -2180,6 +2269,7 @@ export interface InitOutput {
|
|
|
2180
2269
|
readonly symbolicpolyline_expressId: (a: number) => number;
|
|
2181
2270
|
readonly symbolicpolyline_ifcType: (a: number, b: number) => void;
|
|
2182
2271
|
readonly symbolicpolyline_isClosed: (a: number) => number;
|
|
2272
|
+
readonly symbolicpolyline_pointCount: (a: number) => number;
|
|
2183
2273
|
readonly symbolicpolyline_points: (a: number) => number;
|
|
2184
2274
|
readonly symbolicpolyline_repIdentifier: (a: number, b: number) => void;
|
|
2185
2275
|
readonly symbolicrepresentationcollection_circleCount: (a: number) => number;
|
|
@@ -2197,11 +2287,11 @@ export interface InitOutput {
|
|
|
2197
2287
|
readonly symbolicrepresentationcollection_truncatedLimit: (a: number) => number;
|
|
2198
2288
|
readonly symbolicrepresentationcollection_truncatedReason: (a: number, b: number) => void;
|
|
2199
2289
|
readonly symbolictext_alignment: (a: number, b: number) => void;
|
|
2200
|
-
readonly symbolictext_colorA: (a: number) => number;
|
|
2201
2290
|
readonly symbolictext_content: (a: number, b: number) => void;
|
|
2202
2291
|
readonly symbolictext_ifcType: (a: number, b: number) => void;
|
|
2203
2292
|
readonly symbolictext_repIdentifier: (a: number, b: number) => void;
|
|
2204
|
-
readonly
|
|
2293
|
+
readonly symbolictext_x: (a: number) => number;
|
|
2294
|
+
readonly symbolictext_y: (a: number) => number;
|
|
2205
2295
|
readonly union2d: (a: number, b: number) => number;
|
|
2206
2296
|
readonly version: (a: number) => void;
|
|
2207
2297
|
readonly zonepiecejs_indices: (a: number) => number;
|
|
@@ -2211,10 +2301,9 @@ export interface InitOutput {
|
|
|
2211
2301
|
readonly zonesplitjs_pieceCount: (a: number) => number;
|
|
2212
2302
|
readonly zonesplitjs_remainderFailed: (a: number) => number;
|
|
2213
2303
|
readonly meshoutlinejs_contourCount: (a: number) => number;
|
|
2214
|
-
readonly symbolicpolyline_pointCount: (a: number) => number;
|
|
2215
2304
|
readonly get_memory: () => number;
|
|
2216
|
-
readonly symbolicfillarea_expressId: (a: number) => number;
|
|
2217
2305
|
readonly symbolicpolyline_worldY: (a: number) => number;
|
|
2306
|
+
readonly symbolictext_colorA: (a: number) => number;
|
|
2218
2307
|
readonly symbolictext_colorB: (a: number) => number;
|
|
2219
2308
|
readonly symbolictext_colorG: (a: number) => number;
|
|
2220
2309
|
readonly symbolictext_colorR: (a: number) => number;
|
|
@@ -2222,9 +2311,8 @@ export interface InitOutput {
|
|
|
2222
2311
|
readonly symbolictext_dirY: (a: number) => number;
|
|
2223
2312
|
readonly symbolictext_expressId: (a: number) => number;
|
|
2224
2313
|
readonly symbolictext_height: (a: number) => number;
|
|
2314
|
+
readonly symbolictext_targetPx: (a: number) => number;
|
|
2225
2315
|
readonly symbolictext_worldY: (a: number) => number;
|
|
2226
|
-
readonly symbolictext_x: (a: number) => number;
|
|
2227
|
-
readonly symbolictext_y: (a: number) => number;
|
|
2228
2316
|
readonly zonepiecejs_volume: (a: number) => number;
|
|
2229
2317
|
readonly zonesplitjs_sumErrorRel: (a: number) => number;
|
|
2230
2318
|
readonly zonesplitjs_wholeVolume: (a: number) => number;
|
package/pkg/ifc-lite.js
CHANGED
|
@@ -840,6 +840,63 @@ export class IfcAPI {
|
|
|
840
840
|
heap[stack_pointer++] = undefined;
|
|
841
841
|
}
|
|
842
842
|
}
|
|
843
|
+
/**
|
|
844
|
+
* Calibrate one raster plane from native-source landmarks and a measured
|
|
845
|
+
* world span. Returns UTF-8 CalibratedPlane JSON. Constant bounded work;
|
|
846
|
+
* does not read IFC, decode image pixels or mutate a model.
|
|
847
|
+
* @param {string} request_json
|
|
848
|
+
* @returns {Uint8Array}
|
|
849
|
+
*/
|
|
850
|
+
calibrateAppearancePlane(request_json) {
|
|
851
|
+
try {
|
|
852
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
853
|
+
const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
854
|
+
const len0 = WASM_VECTOR_LEN;
|
|
855
|
+
wasm.ifcapi_calibrateAppearancePlane(retptr, this.__wbg_ptr, ptr0, len0);
|
|
856
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
857
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
858
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
859
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
860
|
+
if (r3) {
|
|
861
|
+
throw takeObject(r2);
|
|
862
|
+
}
|
|
863
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
864
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
865
|
+
return v2;
|
|
866
|
+
} finally {
|
|
867
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
/**
|
|
871
|
+
* Catalog effective IfcProduct classes and IfcRelDefinesByType membership.
|
|
872
|
+
* JSON input is AppearanceCatalogRequest; output is AppearanceCatalog JSON.
|
|
873
|
+
* Run in a worker and validate sourceRevision before using the selectors.
|
|
874
|
+
* @param {Uint8Array} content
|
|
875
|
+
* @param {string} request_json
|
|
876
|
+
* @returns {Uint8Array}
|
|
877
|
+
*/
|
|
878
|
+
catalogAppearance(content, request_json) {
|
|
879
|
+
try {
|
|
880
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
881
|
+
const ptr0 = passArray8ToWasm0(content, wasm.__wbindgen_export);
|
|
882
|
+
const len0 = WASM_VECTOR_LEN;
|
|
883
|
+
const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
884
|
+
const len1 = WASM_VECTOR_LEN;
|
|
885
|
+
wasm.ifcapi_catalogAppearance(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
886
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
887
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
888
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
889
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
890
|
+
if (r3) {
|
|
891
|
+
throw takeObject(r2);
|
|
892
|
+
}
|
|
893
|
+
var v3 = getArrayU8FromWasm0(r0, r1).slice();
|
|
894
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
895
|
+
return v3;
|
|
896
|
+
} finally {
|
|
897
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
898
|
+
}
|
|
899
|
+
}
|
|
843
900
|
/**
|
|
844
901
|
* Clear the cached entity index (call between loads when reusing
|
|
845
902
|
* the same `IfcAPI` instance — e.g. the parser worker keeps one
|
|
@@ -934,8 +991,17 @@ export class IfcAPI {
|
|
|
934
991
|
*
|
|
935
992
|
* `hidden` / `isolated` are express-id visibility filters; `hidden_types_csv` is a
|
|
936
993
|
* comma-separated list of IFC type names whose class toggle is off (e.g.
|
|
937
|
-
* `"IfcOpeningElement,IfcSpace"`). `
|
|
938
|
-
*
|
|
994
|
+
* `"IfcOpeningElement,IfcSpace"`). `isolated` carries the isolation allowlist's
|
|
995
|
+
* null-vs-empty distinction across the wasm boundary: omit it (`undefined`) for
|
|
996
|
+
* "no isolation filter" (every mesh is a candidate); pass an empty `Uint32Array`
|
|
997
|
+
* for "isolation is ACTIVE and currently matches nothing" (every mesh is
|
|
998
|
+
* excluded). Collapsing the two — as a bare `Uint32Array` parameter would force a
|
|
999
|
+
* caller to do — silently exports the whole model when a filter matches nothing
|
|
1000
|
+
* (#4328 follow-up: reachable by filtering the Class tab to a type present only
|
|
1001
|
+
* in a federated model's secondary member, then exporting "Visible Only"). A
|
|
1002
|
+
* non-empty `Uint32Array` is the ordinary allowlist. `include_metadata` attaches
|
|
1003
|
+
* counts + per-node `expressId`. Per-mesh RTC origin rides the node translation
|
|
1004
|
+
* (precision-safe).
|
|
939
1005
|
* `lit` emits standard PBR materials that shade from normals; omitted or
|
|
940
1006
|
* `true` ⇒ lit (the default), `false` ⇒ flat `KHR_materials_unlit` (the
|
|
941
1007
|
* historical look — #1321). Optional at the boundary so older 5-arg callers
|
|
@@ -952,7 +1018,7 @@ export class IfcAPI {
|
|
|
952
1018
|
* @param {Uint8Array} content
|
|
953
1019
|
* @param {boolean} include_metadata
|
|
954
1020
|
* @param {Uint32Array} hidden
|
|
955
|
-
* @param {Uint32Array} isolated
|
|
1021
|
+
* @param {Uint32Array | null | undefined} isolated
|
|
956
1022
|
* @param {string} hidden_types_csv
|
|
957
1023
|
* @param {boolean | null} [lit]
|
|
958
1024
|
* @param {boolean | null} [emissive]
|
|
@@ -965,8 +1031,8 @@ export class IfcAPI {
|
|
|
965
1031
|
const len0 = WASM_VECTOR_LEN;
|
|
966
1032
|
const ptr1 = passArray32ToWasm0(hidden, wasm.__wbindgen_export);
|
|
967
1033
|
const len1 = WASM_VECTOR_LEN;
|
|
968
|
-
|
|
969
|
-
|
|
1034
|
+
var ptr2 = isLikeNone(isolated) ? 0 : passArray32ToWasm0(isolated, wasm.__wbindgen_export);
|
|
1035
|
+
var len2 = WASM_VECTOR_LEN;
|
|
970
1036
|
const ptr3 = passStringToWasm0(hidden_types_csv, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
971
1037
|
const len3 = WASM_VECTOR_LEN;
|
|
972
1038
|
wasm.ifcapi_exportGlb(retptr, this.__wbg_ptr, ptr0, len0, include_metadata, ptr1, len1, ptr2, len2, ptr3, len3, isLikeNone(lit) ? 0xFFFFFF : lit ? 1 : 0, isLikeNone(emissive) ? 0xFFFFFF : emissive ? 1 : 0);
|
|
@@ -1321,16 +1387,23 @@ export class IfcAPI {
|
|
|
1321
1387
|
* V8 max-string ceiling (~512 MB); decode with `TextDecoder` when a string
|
|
1322
1388
|
* is genuinely needed.
|
|
1323
1389
|
*
|
|
1324
|
-
* `hidden`
|
|
1325
|
-
*
|
|
1390
|
+
* `hidden` is an express-id filter mirroring the viewer's visibility state.
|
|
1391
|
+
* `isolated` carries the isolation allowlist's null-vs-empty distinction across
|
|
1392
|
+
* the wasm boundary: omit it (`undefined`) for "no isolation filter" (every mesh
|
|
1393
|
+
* is a candidate); pass an empty `Uint32Array` for "isolation is ACTIVE and
|
|
1394
|
+
* currently matches nothing" (every mesh is excluded). Collapsing the two — as a
|
|
1395
|
+
* bare `Uint32Array` parameter would force a caller to do — silently exports the
|
|
1396
|
+
* whole model when a filter matches nothing (the OBJ twin of #4328/#4364, fixed
|
|
1397
|
+
* for GLB in `export_glb`). A non-empty `Uint32Array` is the ordinary allowlist.
|
|
1398
|
+
* Instanced type-library shapes are skipped regardless of the filter.
|
|
1326
1399
|
*
|
|
1327
1400
|
* ```javascript
|
|
1328
|
-
* const obj = api.exportObj(ifcContent, true, new Uint32Array(),
|
|
1401
|
+
* const obj = api.exportObj(ifcContent, true, new Uint32Array(), undefined);
|
|
1329
1402
|
* ```
|
|
1330
1403
|
* @param {Uint8Array} content
|
|
1331
1404
|
* @param {boolean} include_normals
|
|
1332
1405
|
* @param {Uint32Array} hidden
|
|
1333
|
-
* @param {Uint32Array} isolated
|
|
1406
|
+
* @param {Uint32Array | null} [isolated]
|
|
1334
1407
|
* @returns {Uint8Array}
|
|
1335
1408
|
*/
|
|
1336
1409
|
exportObj(content, include_normals, hidden, isolated) {
|
|
@@ -1340,8 +1413,8 @@ export class IfcAPI {
|
|
|
1340
1413
|
const len0 = WASM_VECTOR_LEN;
|
|
1341
1414
|
const ptr1 = passArray32ToWasm0(hidden, wasm.__wbindgen_export);
|
|
1342
1415
|
const len1 = WASM_VECTOR_LEN;
|
|
1343
|
-
|
|
1344
|
-
|
|
1416
|
+
var ptr2 = isLikeNone(isolated) ? 0 : passArray32ToWasm0(isolated, wasm.__wbindgen_export);
|
|
1417
|
+
var len2 = WASM_VECTOR_LEN;
|
|
1345
1418
|
wasm.ifcapi_exportObj(retptr, this.__wbg_ptr, ptr0, len0, include_normals, ptr1, len1, ptr2, len2);
|
|
1346
1419
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1347
1420
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
@@ -1665,6 +1738,220 @@ export class IfcAPI {
|
|
|
1665
1738
|
const ret = wasm.ifcapi_parseSymbolicRepresentations(this.__wbg_ptr, ptr0, len0);
|
|
1666
1739
|
return SymbolicRepresentationCollection.__wrap(ret);
|
|
1667
1740
|
}
|
|
1741
|
+
/**
|
|
1742
|
+
* Create a calibrated image annotation through canonical native geometry.
|
|
1743
|
+
* Input is AnnotationPlaneRequest; output UTF-8 AnnotationPlanePlan JSON.
|
|
1744
|
+
* Does not mutate the IFC snapshot or decode the host-owned image.
|
|
1745
|
+
* @param {Uint8Array} content
|
|
1746
|
+
* @param {string} request_json
|
|
1747
|
+
* @returns {Uint8Array}
|
|
1748
|
+
*/
|
|
1749
|
+
planAnnotationPlane(content, request_json) {
|
|
1750
|
+
try {
|
|
1751
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1752
|
+
const ptr0 = passArray8ToWasm0(content, wasm.__wbindgen_export);
|
|
1753
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1754
|
+
const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1755
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1756
|
+
wasm.ifcapi_planAnnotationPlane(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
1757
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1758
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1759
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1760
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
1761
|
+
if (r3) {
|
|
1762
|
+
throw takeObject(r2);
|
|
1763
|
+
}
|
|
1764
|
+
var v3 = getArrayU8FromWasm0(r0, r1).slice();
|
|
1765
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
1766
|
+
return v3;
|
|
1767
|
+
} finally {
|
|
1768
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
/**
|
|
1772
|
+
* Plan image/UV edits against an effective IFC snapshot without mutating it.
|
|
1773
|
+
* JSON input uses AppearanceRequest; output is UTF-8 AppearancePlan JSON.
|
|
1774
|
+
* Call from a worker, then validate sourceRevision and allocator before an
|
|
1775
|
+
* atomic host commit. Preview UVs describe an unsplit canonical mesh item.
|
|
1776
|
+
* @param {Uint8Array} content
|
|
1777
|
+
* @param {string} request_json
|
|
1778
|
+
* @returns {Uint8Array}
|
|
1779
|
+
*/
|
|
1780
|
+
planAppearance(content, request_json) {
|
|
1781
|
+
try {
|
|
1782
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1783
|
+
const ptr0 = passArray8ToWasm0(content, wasm.__wbindgen_export);
|
|
1784
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1785
|
+
const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1786
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1787
|
+
wasm.ifcapi_planAppearance(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
1788
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1789
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1790
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1791
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
1792
|
+
if (r3) {
|
|
1793
|
+
throw takeObject(r2);
|
|
1794
|
+
}
|
|
1795
|
+
var v3 = getArrayU8FromWasm0(r0, r1).slice();
|
|
1796
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
1797
|
+
return v3;
|
|
1798
|
+
} finally {
|
|
1799
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1800
|
+
}
|
|
1801
|
+
}
|
|
1802
|
+
/**
|
|
1803
|
+
* Create a captured textured surface through canonical native geometry.
|
|
1804
|
+
* Input is CapturedMeshRequest; output UTF-8 CapturedMeshPlan JSON.
|
|
1805
|
+
* Does not mutate the IFC snapshot or decode the host-owned image.
|
|
1806
|
+
* @param {Uint8Array} content
|
|
1807
|
+
* @param {string} request_json
|
|
1808
|
+
* @returns {Uint8Array}
|
|
1809
|
+
*/
|
|
1810
|
+
planCapturedMesh(content, request_json) {
|
|
1811
|
+
try {
|
|
1812
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1813
|
+
const ptr0 = passArray8ToWasm0(content, wasm.__wbindgen_export);
|
|
1814
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1815
|
+
const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1816
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1817
|
+
wasm.ifcapi_planCapturedMesh(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
1818
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1819
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1820
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1821
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
1822
|
+
if (r3) {
|
|
1823
|
+
throw takeObject(r2);
|
|
1824
|
+
}
|
|
1825
|
+
var v3 = getArrayU8FromWasm0(r0, r1).slice();
|
|
1826
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
1827
|
+
return v3;
|
|
1828
|
+
} finally {
|
|
1829
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1830
|
+
}
|
|
1831
|
+
}
|
|
1832
|
+
/**
|
|
1833
|
+
* Registered mesh observations over canonical target albedo. Host verifies
|
|
1834
|
+
* original GLB identity against decoded source mesh/image and freezes frames.
|
|
1835
|
+
* Run in an owned cancellable worker. IFPA output adds `transfer` coverage;
|
|
1836
|
+
* `plan` is null when no sample is observed. Never infer accuracy approval.
|
|
1837
|
+
* @param {Uint8Array} content
|
|
1838
|
+
* @param {string} request_json
|
|
1839
|
+
* @param {Uint8Array} rgba
|
|
1840
|
+
* @returns {Uint8Array}
|
|
1841
|
+
*/
|
|
1842
|
+
planMeshTransfer(content, request_json, rgba) {
|
|
1843
|
+
try {
|
|
1844
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1845
|
+
const ptr0 = passArray8ToWasm0(content, wasm.__wbindgen_export);
|
|
1846
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1847
|
+
const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1848
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1849
|
+
const ptr2 = passArray8ToWasm0(rgba, wasm.__wbindgen_export);
|
|
1850
|
+
const len2 = WASM_VECTOR_LEN;
|
|
1851
|
+
wasm.ifcapi_planMeshTransfer(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
|
|
1852
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1853
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1854
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1855
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
1856
|
+
if (r3) {
|
|
1857
|
+
throw takeObject(r2);
|
|
1858
|
+
}
|
|
1859
|
+
var v4 = getArrayU8FromWasm0(r0, r1).slice();
|
|
1860
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
1861
|
+
return v4;
|
|
1862
|
+
} finally {
|
|
1863
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1864
|
+
}
|
|
1865
|
+
}
|
|
1866
|
+
/**
|
|
1867
|
+
* Finite-page composition over original canonical albedo. RGBA is supplied
|
|
1868
|
+
* separately from the bounded JSON request. Result: IFPA magic, little-endian
|
|
1869
|
+
* u32 JSON byte length, metadata JSON, then PNG bytes addressed by metadata.
|
|
1870
|
+
* Run in a cancellable worker; atomically adopt every item asset and IFC edit.
|
|
1871
|
+
* @param {Uint8Array} content
|
|
1872
|
+
* @param {string} request_json
|
|
1873
|
+
* @param {Uint8Array} rgba
|
|
1874
|
+
* @returns {Uint8Array}
|
|
1875
|
+
*/
|
|
1876
|
+
planPageAppearance(content, request_json, rgba) {
|
|
1877
|
+
try {
|
|
1878
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1879
|
+
const ptr0 = passArray8ToWasm0(content, wasm.__wbindgen_export);
|
|
1880
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1881
|
+
const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1882
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1883
|
+
const ptr2 = passArray8ToWasm0(rgba, wasm.__wbindgen_export);
|
|
1884
|
+
const len2 = WASM_VECTOR_LEN;
|
|
1885
|
+
wasm.ifcapi_planPageAppearance(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
|
|
1886
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1887
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1888
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1889
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
1890
|
+
if (r3) {
|
|
1891
|
+
throw takeObject(r2);
|
|
1892
|
+
}
|
|
1893
|
+
var v4 = getArrayU8FromWasm0(r0, r1).slice();
|
|
1894
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
1895
|
+
return v4;
|
|
1896
|
+
} finally {
|
|
1897
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1900
|
+
/**
|
|
1901
|
+
* Plan a complete opaque polygonal PDF fill page as canonical IfcAnnotation
|
|
1902
|
+
* geometry. Painted strokes, curves and unsupported states refuse atomically.
|
|
1903
|
+
* @param {Uint8Array} source
|
|
1904
|
+
* @param {string} request_json
|
|
1905
|
+
* @returns {Uint8Array}
|
|
1906
|
+
*/
|
|
1907
|
+
planPdfFillAnnotation(source, request_json) {
|
|
1908
|
+
try {
|
|
1909
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1910
|
+
const ptr0 = passArray8ToWasm0(source, wasm.__wbindgen_export);
|
|
1911
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1912
|
+
const ptr1 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1913
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1914
|
+
wasm.ifcapi_planPdfFillAnnotation(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
1915
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1916
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1917
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1918
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
1919
|
+
if (r3) {
|
|
1920
|
+
throw takeObject(r2);
|
|
1921
|
+
}
|
|
1922
|
+
var v3 = getArrayU8FromWasm0(r0, r1).slice();
|
|
1923
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
1924
|
+
return v3;
|
|
1925
|
+
} finally {
|
|
1926
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1927
|
+
}
|
|
1928
|
+
}
|
|
1929
|
+
/**
|
|
1930
|
+
* Prepare bounded ordered PDF vector graphics states. No IFC entities or
|
|
1931
|
+
* flattened geometry are produced; unsupported content prevents qualification.
|
|
1932
|
+
* @param {string} request_json
|
|
1933
|
+
* @returns {Uint8Array}
|
|
1934
|
+
*/
|
|
1935
|
+
preparePdfVectorPage(request_json) {
|
|
1936
|
+
try {
|
|
1937
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1938
|
+
const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1939
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1940
|
+
wasm.ifcapi_preparePdfVectorPage(retptr, this.__wbg_ptr, ptr0, len0);
|
|
1941
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1942
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1943
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1944
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
1945
|
+
if (r3) {
|
|
1946
|
+
throw takeObject(r2);
|
|
1947
|
+
}
|
|
1948
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
1949
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
1950
|
+
return v2;
|
|
1951
|
+
} finally {
|
|
1952
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1953
|
+
}
|
|
1954
|
+
}
|
|
1668
1955
|
/**
|
|
1669
1956
|
* Process geometry for a subset of pre-scanned entities → flat
|
|
1670
1957
|
* MeshCollection. Takes raw bytes + pre-pass data from buildPrePassOnce.
|
|
@@ -1918,6 +2205,32 @@ export class IfcAPI {
|
|
|
1918
2205
|
const ret = wasm.ifcapi_processGeometryBatchPartitionedFromSource(this.__wbg_ptr, ptr0, len0, unit_scale, rtc_x, rtc_y, rtc_z, needs_shift, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, !isLikeNone(plane_angle_to_radians), isLikeNone(plane_angle_to_radians) ? 0 : plane_angle_to_radians, ptr6, len6, ptr7, len7, ptr8, len8);
|
|
1919
2206
|
return PartitionedBatch.__wrap(ret);
|
|
1920
2207
|
}
|
|
2208
|
+
/**
|
|
2209
|
+
* Fit bounded manual correspondences in source metres -> IFC world Z-up
|
|
2210
|
+
* metres, reporting held-out errors separately. Does not load or move models.
|
|
2211
|
+
* @param {string} request_json
|
|
2212
|
+
* @returns {Uint8Array}
|
|
2213
|
+
*/
|
|
2214
|
+
registerScanCorrespondences(request_json) {
|
|
2215
|
+
try {
|
|
2216
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
2217
|
+
const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
2218
|
+
const len0 = WASM_VECTOR_LEN;
|
|
2219
|
+
wasm.ifcapi_registerScanCorrespondences(retptr, this.__wbg_ptr, ptr0, len0);
|
|
2220
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
2221
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
2222
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
2223
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
2224
|
+
if (r3) {
|
|
2225
|
+
throw takeObject(r2);
|
|
2226
|
+
}
|
|
2227
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
2228
|
+
wasm.__wbindgen_export4(r0, r1 * 1, 1);
|
|
2229
|
+
return v2;
|
|
2230
|
+
} finally {
|
|
2231
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
2232
|
+
}
|
|
2233
|
+
}
|
|
1921
2234
|
/**
|
|
1922
2235
|
* Sharded pre-pass: resolve ONE contiguous (file-ordered) slice of the
|
|
1923
2236
|
* styled-item span list on this worker, against the entity index installed
|
|
@@ -4154,6 +4467,13 @@ export class SymbolicFillArea {
|
|
|
4154
4467
|
const ret = wasm.symbolicfillarea_fillR(this.__wbg_ptr);
|
|
4155
4468
|
return ret;
|
|
4156
4469
|
}
|
|
4470
|
+
/**
|
|
4471
|
+
* @returns {number | undefined}
|
|
4472
|
+
*/
|
|
4473
|
+
get geometryItemId() {
|
|
4474
|
+
const ret = wasm.symbolicfillarea_geometryItemId(this.__wbg_ptr);
|
|
4475
|
+
return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
|
|
4476
|
+
}
|
|
4157
4477
|
/**
|
|
4158
4478
|
* @returns {boolean}
|
|
4159
4479
|
*/
|
package/pkg/ifc-lite_bg.wasm
CHANGED
|
Binary file
|