@ifc-lite/wasm 1.18.0 → 1.19.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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "IFC-Lite Contributors"
6
6
  ],
7
7
  "description": "WebAssembly bindings for IFC-Lite",
8
- "version": "1.18.0",
8
+ "version": "1.19.0",
9
9
  "license": "MPL-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/pkg/ifc-lite.d.ts CHANGED
@@ -932,12 +932,45 @@ export class SymbolicCircle {
932
932
  readonly isFullCircle: boolean;
933
933
  readonly repIdentifier: string;
934
934
  readonly radius: number;
935
+ /**
936
+ * World-Y elevation captured from the placement chain.
937
+ */
938
+ readonly worldY: number;
935
939
  readonly centerX: number;
936
940
  readonly centerY: number;
937
941
  readonly ifcType: string;
938
942
  readonly endAngle: number;
939
943
  }
940
944
 
945
+ export class SymbolicFillArea {
946
+ private constructor();
947
+ free(): void;
948
+ [Symbol.dispose](): void;
949
+ readonly expressId: number;
950
+ readonly holeCount: number;
951
+ readonly hatchAngle: number;
952
+ readonly pointCount: number;
953
+ readonly hasHatching: boolean;
954
+ readonly hatchSpacing: number;
955
+ /**
956
+ * Vertex indices marking the start of each hole. Empty = no holes.
957
+ */
958
+ readonly holesOffsets: Uint32Array;
959
+ readonly repIdentifier: string;
960
+ readonly hatchLineWidth: number;
961
+ readonly hatchAngleSecondary: number;
962
+ readonly fillA: number;
963
+ readonly fillB: number;
964
+ readonly fillG: number;
965
+ readonly fillR: number;
966
+ /**
967
+ * Flattened ring vertices.
968
+ */
969
+ readonly points: Float32Array;
970
+ readonly worldY: number;
971
+ readonly ifcType: string;
972
+ }
973
+
941
974
  export class SymbolicPolyline {
942
975
  private constructor();
943
976
  free(): void;
@@ -958,6 +991,11 @@ export class SymbolicPolyline {
958
991
  * Get 2D points as Float32Array [x1, y1, x2, y2, ...]
959
992
  */
960
993
  readonly points: Float32Array;
994
+ /**
995
+ * World-Y elevation captured from the placement chain (or first 3D
996
+ * point's Z component). JS uses this as the canonical bucket key.
997
+ */
998
+ readonly worldY: number;
961
999
  /**
962
1000
  * Get IFC type name (e.g., "IfcDoor", "IfcWindow")
963
1001
  */
@@ -984,6 +1022,22 @@ export class SymbolicRepresentationCollection {
984
1022
  * Get all express IDs that have symbolic representations
985
1023
  */
986
1024
  getExpressIds(): Uint32Array;
1025
+ /**
1026
+ * Get fill area at index.
1027
+ */
1028
+ getFill(index: number): SymbolicFillArea | undefined;
1029
+ /**
1030
+ * Get text annotation at index.
1031
+ */
1032
+ getText(index: number): SymbolicText | undefined;
1033
+ /**
1034
+ * Get number of fill areas
1035
+ */
1036
+ readonly fillCount: number;
1037
+ /**
1038
+ * Get number of text annotations
1039
+ */
1040
+ readonly textCount: number;
987
1041
  /**
988
1042
  * Get total count of all symbolic items
989
1043
  */
@@ -1002,6 +1056,28 @@ export class SymbolicRepresentationCollection {
1002
1056
  readonly isEmpty: boolean;
1003
1057
  }
1004
1058
 
1059
+ export class SymbolicText {
1060
+ private constructor();
1061
+ free(): void;
1062
+ [Symbol.dispose](): void;
1063
+ readonly expressId: number;
1064
+ readonly repIdentifier: string;
1065
+ readonly x: number;
1066
+ readonly y: number;
1067
+ readonly dirX: number;
1068
+ readonly dirY: number;
1069
+ readonly height: number;
1070
+ readonly colorA: number;
1071
+ readonly colorB: number;
1072
+ readonly colorG: number;
1073
+ readonly colorR: number;
1074
+ readonly content: string;
1075
+ readonly worldY: number;
1076
+ readonly ifcType: string;
1077
+ readonly alignment: string;
1078
+ readonly targetPx: number;
1079
+ }
1080
+
1005
1081
  export class ZeroCopyMesh {
1006
1082
  free(): void;
1007
1083
  [Symbol.dispose](): void;
@@ -1116,8 +1192,10 @@ export interface InitOutput {
1116
1192
  readonly __wbg_set_georeferencejs_x_axis_abscissa: (a: number, b: number) => void;
1117
1193
  readonly __wbg_set_georeferencejs_x_axis_ordinate: (a: number, b: number) => void;
1118
1194
  readonly __wbg_symboliccircle_free: (a: number, b: number) => void;
1195
+ readonly __wbg_symbolicfillarea_free: (a: number, b: number) => void;
1119
1196
  readonly __wbg_symbolicpolyline_free: (a: number, b: number) => void;
1120
1197
  readonly __wbg_symbolicrepresentationcollection_free: (a: number, b: number) => void;
1198
+ readonly __wbg_symbolictext_free: (a: number, b: number) => void;
1121
1199
  readonly __wbg_zerocopymesh_free: (a: number, b: number) => void;
1122
1200
  readonly georeferencejs_crsName: (a: number, b: number) => void;
1123
1201
  readonly georeferencejs_localToMap: (a: number, b: number, c: number, d: number, e: number) => void;
@@ -1253,19 +1331,44 @@ export interface InitOutput {
1253
1331
  readonly symboliccircle_radius: (a: number) => number;
1254
1332
  readonly symboliccircle_repIdentifier: (a: number, b: number) => void;
1255
1333
  readonly symboliccircle_startAngle: (a: number) => number;
1334
+ readonly symboliccircle_worldY: (a: number) => number;
1335
+ readonly symbolicfillarea_fillA: (a: number) => number;
1336
+ readonly symbolicfillarea_fillB: (a: number) => number;
1337
+ readonly symbolicfillarea_fillG: (a: number) => number;
1338
+ readonly symbolicfillarea_fillR: (a: number) => number;
1339
+ readonly symbolicfillarea_hasHatching: (a: number) => number;
1340
+ readonly symbolicfillarea_hatchAngle: (a: number) => number;
1341
+ readonly symbolicfillarea_hatchAngleSecondary: (a: number) => number;
1342
+ readonly symbolicfillarea_hatchLineWidth: (a: number) => number;
1343
+ readonly symbolicfillarea_hatchSpacing: (a: number) => number;
1344
+ readonly symbolicfillarea_holesOffsets: (a: number) => number;
1345
+ readonly symbolicfillarea_ifcType: (a: number, b: number) => void;
1346
+ readonly symbolicfillarea_pointCount: (a: number) => number;
1347
+ readonly symbolicfillarea_points: (a: number) => number;
1348
+ readonly symbolicfillarea_repIdentifier: (a: number, b: number) => void;
1349
+ readonly symbolicfillarea_worldY: (a: number) => number;
1256
1350
  readonly symbolicpolyline_expressId: (a: number) => number;
1257
1351
  readonly symbolicpolyline_ifcType: (a: number, b: number) => void;
1258
1352
  readonly symbolicpolyline_isClosed: (a: number) => number;
1259
- readonly symbolicpolyline_pointCount: (a: number) => number;
1260
1353
  readonly symbolicpolyline_points: (a: number) => number;
1261
1354
  readonly symbolicpolyline_repIdentifier: (a: number, b: number) => void;
1262
1355
  readonly symbolicrepresentationcollection_circleCount: (a: number) => number;
1356
+ readonly symbolicrepresentationcollection_fillCount: (a: number) => number;
1263
1357
  readonly symbolicrepresentationcollection_getCircle: (a: number, b: number) => number;
1264
1358
  readonly symbolicrepresentationcollection_getExpressIds: (a: number, b: number) => void;
1359
+ readonly symbolicrepresentationcollection_getFill: (a: number, b: number) => number;
1265
1360
  readonly symbolicrepresentationcollection_getPolyline: (a: number, b: number) => number;
1361
+ readonly symbolicrepresentationcollection_getText: (a: number, b: number) => number;
1266
1362
  readonly symbolicrepresentationcollection_isEmpty: (a: number) => number;
1267
1363
  readonly symbolicrepresentationcollection_polylineCount: (a: number) => number;
1364
+ readonly symbolicrepresentationcollection_textCount: (a: number) => number;
1268
1365
  readonly symbolicrepresentationcollection_totalCount: (a: number) => number;
1366
+ readonly symbolictext_alignment: (a: number, b: number) => void;
1367
+ readonly symbolictext_colorA: (a: number) => number;
1368
+ readonly symbolictext_content: (a: number, b: number) => void;
1369
+ readonly symbolictext_ifcType: (a: number, b: number) => void;
1370
+ readonly symbolictext_repIdentifier: (a: number, b: number) => void;
1371
+ readonly symbolictext_targetPx: (a: number) => number;
1269
1372
  readonly version: (a: number) => void;
1270
1373
  readonly zerocopymesh_bounds_max: (a: number, b: number) => void;
1271
1374
  readonly zerocopymesh_bounds_min: (a: number, b: number) => void;
@@ -1283,7 +1386,9 @@ export interface InitOutput {
1283
1386
  readonly instancedmeshcollection_length: (a: number) => number;
1284
1387
  readonly instancedmeshcollection_totalGeometries: (a: number) => number;
1285
1388
  readonly meshcollectionwithrtc_length: (a: number) => number;
1389
+ readonly symbolicfillarea_holeCount: (a: number) => number;
1286
1390
  readonly zerocopymesh_indices_len: (a: number) => number;
1391
+ readonly symbolicpolyline_pointCount: (a: number) => number;
1287
1392
  readonly __wbg_set_rtcoffsetjs_x: (a: number, b: number) => void;
1288
1393
  readonly __wbg_set_rtcoffsetjs_y: (a: number, b: number) => void;
1289
1394
  readonly __wbg_set_rtcoffsetjs_z: (a: number, b: number) => void;
@@ -1306,10 +1411,22 @@ export interface InitOutput {
1306
1411
  readonly instancedgeometry_geometryId: (a: number) => bigint;
1307
1412
  readonly meshcollection_rtcOffsetX: (a: number) => number;
1308
1413
  readonly symboliccircle_expressId: (a: number) => number;
1414
+ readonly symbolicfillarea_expressId: (a: number) => number;
1415
+ readonly symbolicpolyline_worldY: (a: number) => number;
1416
+ readonly symbolictext_colorB: (a: number) => number;
1417
+ readonly symbolictext_colorG: (a: number) => number;
1418
+ readonly symbolictext_colorR: (a: number) => number;
1419
+ readonly symbolictext_dirX: (a: number) => number;
1420
+ readonly symbolictext_dirY: (a: number) => number;
1421
+ readonly symbolictext_expressId: (a: number) => number;
1422
+ readonly symbolictext_height: (a: number) => number;
1423
+ readonly symbolictext_worldY: (a: number) => number;
1424
+ readonly symbolictext_x: (a: number) => number;
1425
+ readonly symbolictext_y: (a: number) => number;
1309
1426
  readonly __wbg_gpuinstancedgeometryref_free: (a: number, b: number) => void;
1310
- readonly __wasm_bindgen_func_elem_1484: (a: number, b: number, c: number) => void;
1311
- readonly __wasm_bindgen_func_elem_1483: (a: number, b: number) => void;
1312
- readonly __wasm_bindgen_func_elem_1524: (a: number, b: number, c: number, d: number) => void;
1427
+ readonly __wasm_bindgen_func_elem_1529: (a: number, b: number, c: number) => void;
1428
+ readonly __wasm_bindgen_func_elem_1528: (a: number, b: number) => void;
1429
+ readonly __wasm_bindgen_func_elem_1569: (a: number, b: number, c: number, d: number) => void;
1313
1430
  readonly __wbindgen_export: (a: number) => void;
1314
1431
  readonly __wbindgen_export2: (a: number, b: number, c: number) => void;
1315
1432
  readonly __wbindgen_export3: (a: number, b: number) => number;
package/pkg/ifc-lite.js CHANGED
@@ -220,12 +220,12 @@ if (!('encodeInto' in cachedTextEncoder)) {
220
220
 
221
221
  let WASM_VECTOR_LEN = 0;
222
222
 
223
- function __wasm_bindgen_func_elem_1484(arg0, arg1, arg2) {
224
- wasm.__wasm_bindgen_func_elem_1484(arg0, arg1, addHeapObject(arg2));
223
+ function __wasm_bindgen_func_elem_1529(arg0, arg1, arg2) {
224
+ wasm.__wasm_bindgen_func_elem_1529(arg0, arg1, addHeapObject(arg2));
225
225
  }
226
226
 
227
- function __wasm_bindgen_func_elem_1524(arg0, arg1, arg2, arg3) {
228
- wasm.__wasm_bindgen_func_elem_1524(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
227
+ function __wasm_bindgen_func_elem_1569(arg0, arg1, arg2, arg3) {
228
+ wasm.__wasm_bindgen_func_elem_1569(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
229
229
  }
230
230
 
231
231
  const GeoReferenceJsFinalization = (typeof FinalizationRegistry === 'undefined')
@@ -296,6 +296,10 @@ const SymbolicCircleFinalization = (typeof FinalizationRegistry === 'undefined')
296
296
  ? { register: () => {}, unregister: () => {} }
297
297
  : new FinalizationRegistry(ptr => wasm.__wbg_symboliccircle_free(ptr >>> 0, 1));
298
298
 
299
+ const SymbolicFillAreaFinalization = (typeof FinalizationRegistry === 'undefined')
300
+ ? { register: () => {}, unregister: () => {} }
301
+ : new FinalizationRegistry(ptr => wasm.__wbg_symbolicfillarea_free(ptr >>> 0, 1));
302
+
299
303
  const SymbolicPolylineFinalization = (typeof FinalizationRegistry === 'undefined')
300
304
  ? { register: () => {}, unregister: () => {} }
301
305
  : new FinalizationRegistry(ptr => wasm.__wbg_symbolicpolyline_free(ptr >>> 0, 1));
@@ -304,6 +308,10 @@ const SymbolicRepresentationCollectionFinalization = (typeof FinalizationRegistr
304
308
  ? { register: () => {}, unregister: () => {} }
305
309
  : new FinalizationRegistry(ptr => wasm.__wbg_symbolicrepresentationcollection_free(ptr >>> 0, 1));
306
310
 
311
+ const SymbolicTextFinalization = (typeof FinalizationRegistry === 'undefined')
312
+ ? { register: () => {}, unregister: () => {} }
313
+ : new FinalizationRegistry(ptr => wasm.__wbg_symbolictext_free(ptr >>> 0, 1));
314
+
307
315
  const ZeroCopyMeshFinalization = (typeof FinalizationRegistry === 'undefined')
308
316
  ? { register: () => {}, unregister: () => {} }
309
317
  : new FinalizationRegistry(ptr => wasm.__wbg_zerocopymesh_free(ptr >>> 0, 1));
@@ -2729,6 +2737,14 @@ export class SymbolicCircle {
2729
2737
  const ret = wasm.symboliccircle_radius(this.__wbg_ptr);
2730
2738
  return ret;
2731
2739
  }
2740
+ /**
2741
+ * World-Y elevation captured from the placement chain.
2742
+ * @returns {number}
2743
+ */
2744
+ get worldY() {
2745
+ const ret = wasm.symboliccircle_worldY(this.__wbg_ptr);
2746
+ return ret;
2747
+ }
2732
2748
  /**
2733
2749
  * @returns {number}
2734
2750
  */
@@ -2772,6 +2788,187 @@ export class SymbolicCircle {
2772
2788
  }
2773
2789
  if (Symbol.dispose) SymbolicCircle.prototype[Symbol.dispose] = SymbolicCircle.prototype.free;
2774
2790
 
2791
+ /**
2792
+ * A 2D filled region (IfcAnnotationFillArea / IfcAnnotationFillAreaOccurrence).
2793
+ *
2794
+ * Stores one outer ring of 2D points plus an offset table indexing inner
2795
+ * rings (holes). Both rings are stored flat in `points` so the JS side can
2796
+ * view the buffer as one Float32Array. The optional `hatch_*` fields encode
2797
+ * IfcFillAreaStyleHatching (line spacing, primary/secondary angles, line
2798
+ * width) when the IfcStyledItem chain resolves to a hatching style; absent
2799
+ * styles render as a solid fill.
2800
+ *
2801
+ * `holes_offsets` is an inclusive-prefix array describing where each hole
2802
+ * begins. The outer ring is implicitly at `points[0..holes_offsets[0]]`
2803
+ * (or all points if `holes_offsets` is empty). Each `holes_offsets[i]` is a
2804
+ * vertex index, not a byte offset.
2805
+ */
2806
+ export class SymbolicFillArea {
2807
+ static __wrap(ptr) {
2808
+ ptr = ptr >>> 0;
2809
+ const obj = Object.create(SymbolicFillArea.prototype);
2810
+ obj.__wbg_ptr = ptr;
2811
+ SymbolicFillAreaFinalization.register(obj, obj.__wbg_ptr, obj);
2812
+ return obj;
2813
+ }
2814
+ __destroy_into_raw() {
2815
+ const ptr = this.__wbg_ptr;
2816
+ this.__wbg_ptr = 0;
2817
+ SymbolicFillAreaFinalization.unregister(this);
2818
+ return ptr;
2819
+ }
2820
+ free() {
2821
+ const ptr = this.__destroy_into_raw();
2822
+ wasm.__wbg_symbolicfillarea_free(ptr, 0);
2823
+ }
2824
+ /**
2825
+ * @returns {number}
2826
+ */
2827
+ get expressId() {
2828
+ const ret = wasm.profileentryjs_expressId(this.__wbg_ptr);
2829
+ return ret >>> 0;
2830
+ }
2831
+ /**
2832
+ * @returns {number}
2833
+ */
2834
+ get holeCount() {
2835
+ const ret = wasm.gpuinstancedgeometry_indicesLen(this.__wbg_ptr);
2836
+ return ret >>> 0;
2837
+ }
2838
+ /**
2839
+ * @returns {number}
2840
+ */
2841
+ get hatchAngle() {
2842
+ const ret = wasm.symbolicfillarea_hatchAngle(this.__wbg_ptr);
2843
+ return ret;
2844
+ }
2845
+ /**
2846
+ * @returns {number}
2847
+ */
2848
+ get pointCount() {
2849
+ const ret = wasm.symbolicfillarea_pointCount(this.__wbg_ptr);
2850
+ return ret >>> 0;
2851
+ }
2852
+ /**
2853
+ * @returns {boolean}
2854
+ */
2855
+ get hasHatching() {
2856
+ const ret = wasm.symbolicfillarea_hasHatching(this.__wbg_ptr);
2857
+ return ret !== 0;
2858
+ }
2859
+ /**
2860
+ * @returns {number}
2861
+ */
2862
+ get hatchSpacing() {
2863
+ const ret = wasm.symbolicfillarea_hatchSpacing(this.__wbg_ptr);
2864
+ return ret;
2865
+ }
2866
+ /**
2867
+ * Vertex indices marking the start of each hole. Empty = no holes.
2868
+ * @returns {Uint32Array}
2869
+ */
2870
+ get holesOffsets() {
2871
+ const ret = wasm.symbolicfillarea_holesOffsets(this.__wbg_ptr);
2872
+ return takeObject(ret);
2873
+ }
2874
+ /**
2875
+ * @returns {string}
2876
+ */
2877
+ get repIdentifier() {
2878
+ let deferred1_0;
2879
+ let deferred1_1;
2880
+ try {
2881
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2882
+ wasm.symbolicfillarea_repIdentifier(retptr, this.__wbg_ptr);
2883
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2884
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2885
+ deferred1_0 = r0;
2886
+ deferred1_1 = r1;
2887
+ return getStringFromWasm0(r0, r1);
2888
+ } finally {
2889
+ wasm.__wbindgen_add_to_stack_pointer(16);
2890
+ wasm.__wbindgen_export2(deferred1_0, deferred1_1, 1);
2891
+ }
2892
+ }
2893
+ /**
2894
+ * @returns {number}
2895
+ */
2896
+ get hatchLineWidth() {
2897
+ const ret = wasm.symbolicfillarea_hatchLineWidth(this.__wbg_ptr);
2898
+ return ret;
2899
+ }
2900
+ /**
2901
+ * @returns {number}
2902
+ */
2903
+ get hatchAngleSecondary() {
2904
+ const ret = wasm.symbolicfillarea_hatchAngleSecondary(this.__wbg_ptr);
2905
+ return ret;
2906
+ }
2907
+ /**
2908
+ * @returns {number}
2909
+ */
2910
+ get fillA() {
2911
+ const ret = wasm.symbolicfillarea_fillA(this.__wbg_ptr);
2912
+ return ret;
2913
+ }
2914
+ /**
2915
+ * @returns {number}
2916
+ */
2917
+ get fillB() {
2918
+ const ret = wasm.symbolicfillarea_fillB(this.__wbg_ptr);
2919
+ return ret;
2920
+ }
2921
+ /**
2922
+ * @returns {number}
2923
+ */
2924
+ get fillG() {
2925
+ const ret = wasm.symbolicfillarea_fillG(this.__wbg_ptr);
2926
+ return ret;
2927
+ }
2928
+ /**
2929
+ * @returns {number}
2930
+ */
2931
+ get fillR() {
2932
+ const ret = wasm.symbolicfillarea_fillR(this.__wbg_ptr);
2933
+ return ret;
2934
+ }
2935
+ /**
2936
+ * Flattened ring vertices.
2937
+ * @returns {Float32Array}
2938
+ */
2939
+ get points() {
2940
+ const ret = wasm.symbolicfillarea_points(this.__wbg_ptr);
2941
+ return takeObject(ret);
2942
+ }
2943
+ /**
2944
+ * @returns {number}
2945
+ */
2946
+ get worldY() {
2947
+ const ret = wasm.symbolicfillarea_worldY(this.__wbg_ptr);
2948
+ return ret;
2949
+ }
2950
+ /**
2951
+ * @returns {string}
2952
+ */
2953
+ get ifcType() {
2954
+ let deferred1_0;
2955
+ let deferred1_1;
2956
+ try {
2957
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2958
+ wasm.symbolicfillarea_ifcType(retptr, this.__wbg_ptr);
2959
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2960
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2961
+ deferred1_0 = r0;
2962
+ deferred1_1 = r1;
2963
+ return getStringFromWasm0(r0, r1);
2964
+ } finally {
2965
+ wasm.__wbindgen_add_to_stack_pointer(16);
2966
+ wasm.__wbindgen_export2(deferred1_0, deferred1_1, 1);
2967
+ }
2968
+ }
2969
+ }
2970
+ if (Symbol.dispose) SymbolicFillArea.prototype[Symbol.dispose] = SymbolicFillArea.prototype.free;
2971
+
2775
2972
  /**
2776
2973
  * A single 2D polyline for symbolic representations (Plan, Annotation, FootPrint)
2777
2974
  * Points are stored as [x1, y1, x2, y2, ...] in 2D coordinates
@@ -2807,7 +3004,7 @@ export class SymbolicPolyline {
2807
3004
  * @returns {number}
2808
3005
  */
2809
3006
  get pointCount() {
2810
- const ret = wasm.symbolicpolyline_pointCount(this.__wbg_ptr);
3007
+ const ret = wasm.symbolicfillarea_pointCount(this.__wbg_ptr);
2811
3008
  return ret >>> 0;
2812
3009
  }
2813
3010
  /**
@@ -2838,6 +3035,15 @@ export class SymbolicPolyline {
2838
3035
  const ret = wasm.symbolicpolyline_points(this.__wbg_ptr);
2839
3036
  return takeObject(ret);
2840
3037
  }
3038
+ /**
3039
+ * World-Y elevation captured from the placement chain (or first 3D
3040
+ * point's Z component). JS uses this as the canonical bucket key.
3041
+ * @returns {number}
3042
+ */
3043
+ get worldY() {
3044
+ const ret = wasm.symboliccircle_worldY(this.__wbg_ptr);
3045
+ return ret;
3046
+ }
2841
3047
  /**
2842
3048
  * Get IFC type name (e.g., "IfcDoor", "IfcWindow")
2843
3049
  * @returns {string}
@@ -2890,6 +3096,14 @@ export class SymbolicRepresentationCollection {
2890
3096
  const ptr = this.__destroy_into_raw();
2891
3097
  wasm.__wbg_symbolicrepresentationcollection_free(ptr, 0);
2892
3098
  }
3099
+ /**
3100
+ * Get number of fill areas
3101
+ * @returns {number}
3102
+ */
3103
+ get fillCount() {
3104
+ const ret = wasm.symbolicrepresentationcollection_fillCount(this.__wbg_ptr);
3105
+ return ret >>> 0;
3106
+ }
2893
3107
  /**
2894
3108
  * Get circle at index
2895
3109
  * @param {number} index
@@ -2899,6 +3113,14 @@ export class SymbolicRepresentationCollection {
2899
3113
  const ret = wasm.symbolicrepresentationcollection_getCircle(this.__wbg_ptr, index);
2900
3114
  return ret === 0 ? undefined : SymbolicCircle.__wrap(ret);
2901
3115
  }
3116
+ /**
3117
+ * Get number of text annotations
3118
+ * @returns {number}
3119
+ */
3120
+ get textCount() {
3121
+ const ret = wasm.symbolicrepresentationcollection_textCount(this.__wbg_ptr);
3122
+ return ret >>> 0;
3123
+ }
2902
3124
  /**
2903
3125
  * Get total count of all symbolic items
2904
3126
  * @returns {number}
@@ -2949,6 +3171,24 @@ export class SymbolicRepresentationCollection {
2949
3171
  wasm.__wbindgen_add_to_stack_pointer(16);
2950
3172
  }
2951
3173
  }
3174
+ /**
3175
+ * Get fill area at index.
3176
+ * @param {number} index
3177
+ * @returns {SymbolicFillArea | undefined}
3178
+ */
3179
+ getFill(index) {
3180
+ const ret = wasm.symbolicrepresentationcollection_getFill(this.__wbg_ptr, index);
3181
+ return ret === 0 ? undefined : SymbolicFillArea.__wrap(ret);
3182
+ }
3183
+ /**
3184
+ * Get text annotation at index.
3185
+ * @param {number} index
3186
+ * @returns {SymbolicText | undefined}
3187
+ */
3188
+ getText(index) {
3189
+ const ret = wasm.symbolicrepresentationcollection_getText(this.__wbg_ptr, index);
3190
+ return ret === 0 ? undefined : SymbolicText.__wrap(ret);
3191
+ }
2952
3192
  /**
2953
3193
  * Check if collection is empty
2954
3194
  * @returns {boolean}
@@ -2960,6 +3200,198 @@ export class SymbolicRepresentationCollection {
2960
3200
  }
2961
3201
  if (Symbol.dispose) SymbolicRepresentationCollection.prototype[Symbol.dispose] = SymbolicRepresentationCollection.prototype.free;
2962
3202
 
3203
+ /**
3204
+ * A 2D text annotation (IfcTextLiteral / IfcTextLiteralWithExtent).
3205
+ *
3206
+ * Position is in the same 2D coordinate space as `SymbolicPolyline` (i.e. the
3207
+ * floor-plan / annotation overlay's local frame after applying placement +
3208
+ * RTC). The text-orientation pair `(cos, sin)` rotates the baseline from the
3209
+ * `+x` axis. Height is the IFC font height in model units, scaled by the
3210
+ * project's length-unit factor so the renderer can convert directly to world
3211
+ * units. Alignment is the IFC `BoxAlignment` string verbatim
3212
+ * (`top-left`, `center`, `bottom-right`, …) — the renderer can interpret it.
3213
+ */
3214
+ export class SymbolicText {
3215
+ static __wrap(ptr) {
3216
+ ptr = ptr >>> 0;
3217
+ const obj = Object.create(SymbolicText.prototype);
3218
+ obj.__wbg_ptr = ptr;
3219
+ SymbolicTextFinalization.register(obj, obj.__wbg_ptr, obj);
3220
+ return obj;
3221
+ }
3222
+ __destroy_into_raw() {
3223
+ const ptr = this.__wbg_ptr;
3224
+ this.__wbg_ptr = 0;
3225
+ SymbolicTextFinalization.unregister(this);
3226
+ return ptr;
3227
+ }
3228
+ free() {
3229
+ const ptr = this.__destroy_into_raw();
3230
+ wasm.__wbg_symbolictext_free(ptr, 0);
3231
+ }
3232
+ /**
3233
+ * @returns {number}
3234
+ */
3235
+ get expressId() {
3236
+ const ret = wasm.profileentryjs_expressId(this.__wbg_ptr);
3237
+ return ret >>> 0;
3238
+ }
3239
+ /**
3240
+ * @returns {string}
3241
+ */
3242
+ get repIdentifier() {
3243
+ let deferred1_0;
3244
+ let deferred1_1;
3245
+ try {
3246
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3247
+ wasm.symbolictext_repIdentifier(retptr, this.__wbg_ptr);
3248
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3249
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3250
+ deferred1_0 = r0;
3251
+ deferred1_1 = r1;
3252
+ return getStringFromWasm0(r0, r1);
3253
+ } finally {
3254
+ wasm.__wbindgen_add_to_stack_pointer(16);
3255
+ wasm.__wbindgen_export2(deferred1_0, deferred1_1, 1);
3256
+ }
3257
+ }
3258
+ /**
3259
+ * @returns {number}
3260
+ */
3261
+ get x() {
3262
+ const ret = wasm.symbolicfillarea_fillR(this.__wbg_ptr);
3263
+ return ret;
3264
+ }
3265
+ /**
3266
+ * @returns {number}
3267
+ */
3268
+ get y() {
3269
+ const ret = wasm.symbolicfillarea_fillG(this.__wbg_ptr);
3270
+ return ret;
3271
+ }
3272
+ /**
3273
+ * @returns {number}
3274
+ */
3275
+ get dirX() {
3276
+ const ret = wasm.symbolicfillarea_fillB(this.__wbg_ptr);
3277
+ return ret;
3278
+ }
3279
+ /**
3280
+ * @returns {number}
3281
+ */
3282
+ get dirY() {
3283
+ const ret = wasm.symbolicfillarea_fillA(this.__wbg_ptr);
3284
+ return ret;
3285
+ }
3286
+ /**
3287
+ * @returns {number}
3288
+ */
3289
+ get height() {
3290
+ const ret = wasm.symbolicfillarea_hatchSpacing(this.__wbg_ptr);
3291
+ return ret;
3292
+ }
3293
+ /**
3294
+ * @returns {number}
3295
+ */
3296
+ get colorA() {
3297
+ const ret = wasm.symbolictext_colorA(this.__wbg_ptr);
3298
+ return ret;
3299
+ }
3300
+ /**
3301
+ * @returns {number}
3302
+ */
3303
+ get colorB() {
3304
+ const ret = wasm.symbolicfillarea_worldY(this.__wbg_ptr);
3305
+ return ret;
3306
+ }
3307
+ /**
3308
+ * @returns {number}
3309
+ */
3310
+ get colorG() {
3311
+ const ret = wasm.symbolicfillarea_hatchLineWidth(this.__wbg_ptr);
3312
+ return ret;
3313
+ }
3314
+ /**
3315
+ * @returns {number}
3316
+ */
3317
+ get colorR() {
3318
+ const ret = wasm.symbolicfillarea_hatchAngleSecondary(this.__wbg_ptr);
3319
+ return ret;
3320
+ }
3321
+ /**
3322
+ * @returns {string}
3323
+ */
3324
+ get content() {
3325
+ let deferred1_0;
3326
+ let deferred1_1;
3327
+ try {
3328
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3329
+ wasm.symbolictext_content(retptr, this.__wbg_ptr);
3330
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3331
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3332
+ deferred1_0 = r0;
3333
+ deferred1_1 = r1;
3334
+ return getStringFromWasm0(r0, r1);
3335
+ } finally {
3336
+ wasm.__wbindgen_add_to_stack_pointer(16);
3337
+ wasm.__wbindgen_export2(deferred1_0, deferred1_1, 1);
3338
+ }
3339
+ }
3340
+ /**
3341
+ * @returns {number}
3342
+ */
3343
+ get worldY() {
3344
+ const ret = wasm.symbolicfillarea_hatchAngle(this.__wbg_ptr);
3345
+ return ret;
3346
+ }
3347
+ /**
3348
+ * @returns {string}
3349
+ */
3350
+ get ifcType() {
3351
+ let deferred1_0;
3352
+ let deferred1_1;
3353
+ try {
3354
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3355
+ wasm.symbolictext_ifcType(retptr, this.__wbg_ptr);
3356
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3357
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3358
+ deferred1_0 = r0;
3359
+ deferred1_1 = r1;
3360
+ return getStringFromWasm0(r0, r1);
3361
+ } finally {
3362
+ wasm.__wbindgen_add_to_stack_pointer(16);
3363
+ wasm.__wbindgen_export2(deferred1_0, deferred1_1, 1);
3364
+ }
3365
+ }
3366
+ /**
3367
+ * @returns {string}
3368
+ */
3369
+ get alignment() {
3370
+ let deferred1_0;
3371
+ let deferred1_1;
3372
+ try {
3373
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3374
+ wasm.symbolictext_alignment(retptr, this.__wbg_ptr);
3375
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3376
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3377
+ deferred1_0 = r0;
3378
+ deferred1_1 = r1;
3379
+ return getStringFromWasm0(r0, r1);
3380
+ } finally {
3381
+ wasm.__wbindgen_add_to_stack_pointer(16);
3382
+ wasm.__wbindgen_export2(deferred1_0, deferred1_1, 1);
3383
+ }
3384
+ }
3385
+ /**
3386
+ * @returns {number}
3387
+ */
3388
+ get targetPx() {
3389
+ const ret = wasm.symbolictext_targetPx(this.__wbg_ptr);
3390
+ return ret;
3391
+ }
3392
+ }
3393
+ if (Symbol.dispose) SymbolicText.prototype[Symbol.dispose] = SymbolicText.prototype.free;
3394
+
2963
3395
  /**
2964
3396
  * Zero-copy mesh that exposes pointers to WASM memory
2965
3397
  */
@@ -3254,10 +3686,6 @@ function __wbg_get_imports() {
3254
3686
  const ret = InstancedGeometry.__wrap(arg0);
3255
3687
  return addHeapObject(ret);
3256
3688
  };
3257
- imports.wbg.__wbg_length_86ce4877baf913bb = function(arg0) {
3258
- const ret = getObject(arg0).length;
3259
- return ret;
3260
- };
3261
3689
  imports.wbg.__wbg_length_d45040a40c570362 = function(arg0) {
3262
3690
  const ret = getObject(arg0).length;
3263
3691
  return ret;
@@ -3285,7 +3713,7 @@ function __wbg_get_imports() {
3285
3713
  const a = state0.a;
3286
3714
  state0.a = 0;
3287
3715
  try {
3288
- return __wasm_bindgen_func_elem_1524(a, state0.b, arg0, arg1);
3716
+ return __wasm_bindgen_func_elem_1569(a, state0.b, arg0, arg1);
3289
3717
  } finally {
3290
3718
  state0.a = a;
3291
3719
  }
@@ -3320,9 +3748,6 @@ function __wbg_get_imports() {
3320
3748
  const ret = new Uint8Array(arg0 >>> 0);
3321
3749
  return addHeapObject(ret);
3322
3750
  };
3323
- imports.wbg.__wbg_prototypesetcall_96cc7097487b926d = function(arg0, arg1, arg2) {
3324
- Float32Array.prototype.set.call(getArrayF32FromWasm0(arg0, arg1), getObject(arg2));
3325
- };
3326
3751
  imports.wbg.__wbg_push_7d9be8f38fc13975 = function(arg0, arg1) {
3327
3752
  const ret = getObject(arg0).push(getObject(arg1));
3328
3753
  return ret;
@@ -3397,9 +3822,9 @@ function __wbg_get_imports() {
3397
3822
  const ret = BigInt.asUintN(64, arg0);
3398
3823
  return addHeapObject(ret);
3399
3824
  };
3400
- imports.wbg.__wbindgen_cast_73cbb7b49382c492 = function(arg0, arg1) {
3401
- // Cast intrinsic for `Closure(Closure { dtor_idx: 179, function: Function { arguments: [Externref], shim_idx: 180, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
3402
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1483, __wasm_bindgen_func_elem_1484);
3825
+ imports.wbg.__wbindgen_cast_56b148ee1abaedad = function(arg0, arg1) {
3826
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 180, function: Function { arguments: [Externref], shim_idx: 181, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
3827
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1528, __wasm_bindgen_func_elem_1529);
3403
3828
  return addHeapObject(ret);
3404
3829
  };
3405
3830
  imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) {
Binary file