@navaramap/engine-font-worker 0.2.1 → 0.3.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.
@@ -145,10 +145,25 @@ export class BillboardMaterial {
145
145
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
146
146
  }
147
147
  /**
148
- * Whether faces seen from behind are culled. Default is false, so a
149
- * quad frozen in its anchor's frame (`rotateWithCamera: false`) stays
150
- * visible from behind. Turn it on to hide a flat quad's parts that wrap
151
- * over the horizon, which face away from the camera.
148
+ * Part of the quad placed at the anchor point: `"center"` (default),
149
+ * `"left"`, `"right"`, `"top"`, `"bottom"`, `"top-left"`, `"top-right"`,
150
+ * `"bottom-left"` or `"bottom-right"`, as MapLibre's `icon-anchor`.
151
+ * @returns {string | undefined}
152
+ */
153
+ get anchor() {
154
+ const ret = wasm.__wbg_get_billboardmaterial_anchor(this.__wbg_ptr);
155
+ let v1;
156
+ if (ret[0] !== 0) {
157
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
158
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
159
+ }
160
+ return v1;
161
+ }
162
+ /**
163
+ * Whether faces seen from behind are culled. Default is false. Only a
164
+ * flat quad has a back the camera can see: turn it on to hide the parts
165
+ * of a large one that wrap over the horizon, which face away from the
166
+ * camera.
152
167
  * @returns {boolean | undefined}
153
168
  */
154
169
  get backfaceCulling() {
@@ -156,9 +171,12 @@ export class BillboardMaterial {
156
171
  return ret === 0xFFFFFF ? undefined : ret !== 0;
157
172
  }
158
173
  /**
159
- * Whether the sprite stands up (`"upright"`, the default) or lies on the
160
- * globe surface around its anchor (`"flat"`). Pair with
161
- * `rotateWithCamera`.
174
+ * Plane the sprite lies in: the screen (`"upright"`, never foreshortened)
175
+ * or the globe surface around its anchor (`"flat"`), as MapLibre's
176
+ * `icon-pitch-alignment` `viewport` and `map`. Pair with
177
+ * `rotateWithCamera`. Left unset, it is `"flat"` when `rotateWithCamera`
178
+ * resolves to `false` and `"upright"` otherwise, as MapLibre resolves
179
+ * `auto`.
162
180
  * @returns {string | undefined}
163
181
  */
164
182
  get billboardFacing() {
@@ -170,15 +188,6 @@ export class BillboardMaterial {
170
188
  }
171
189
  return v1;
172
190
  }
173
- /**
174
- * anchor point of the sprite, range is (-0.5, -0.5) to (0.5, 0.5).
175
- * Default is (0.0, 0.0) which means the center of the sprite.
176
- * @returns {Vec2 | undefined}
177
- */
178
- get center() {
179
- const ret = wasm.__wbg_get_billboardmaterial_center(this.__wbg_ptr);
180
- return ret === 0 ? undefined : Vec2.__wrap(ret);
181
- }
182
191
  /**
183
192
  * @returns {boolean | undefined}
184
193
  */
@@ -193,6 +202,21 @@ export class BillboardMaterial {
193
202
  const ret = wasm.__wbg_get_billboardmaterial_color(this.__wbg_ptr);
194
203
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
195
204
  }
205
+ /**
206
+ * Extra space around the collision box, in screen pixels: one to four
207
+ * values, expanded like CSS padding (top, right, bottom, left). Only
208
+ * meaningful when `declutter` is enabled. Defaults to `[2]`.
209
+ * @returns {Float32Array | undefined}
210
+ */
211
+ get declutterPadding() {
212
+ const ret = wasm.__wbg_get_billboardmaterial_declutterPadding(this.__wbg_ptr);
213
+ let v1;
214
+ if (ret[0] !== 0) {
215
+ v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
216
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
217
+ }
218
+ return v1;
219
+ }
196
220
  /**
197
221
  * Placement priority for decluttering; higher wins. Only meaningful when
198
222
  * `declutter` is enabled. Defaults to `0.0`.
@@ -202,6 +226,17 @@ export class BillboardMaterial {
202
226
  const ret = wasm.__wbg_get_billboardmaterial_declutterPriority(this.__wbg_ptr);
203
227
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
204
228
  }
229
+ /**
230
+ * Coarse placement order for decluttering, compared before
231
+ * `declutterPriority`: every label with a higher rank is placed before any
232
+ * label with a lower one, whatever their priorities. Only meaningful when
233
+ * `declutter` is enabled. Defaults to `0.0`.
234
+ * @returns {number | undefined}
235
+ */
236
+ get declutterRank() {
237
+ const ret = wasm.__wbg_get_billboardmaterial_declutterRank(this.__wbg_ptr);
238
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
239
+ }
205
240
  /**
206
241
  * Participate in screen-space decluttering: when labels/sprites overlap
207
242
  * on screen, lower-priority ones are hidden. Defaults to `true`; set to
@@ -250,8 +285,9 @@ export class BillboardMaterial {
250
285
  }
251
286
  /**
252
287
  * Source geometry types this appearance consumes: `"point"`, `"line"`,
253
- * `"polygon"`. Defaults to `["point"]`; adding `"line"`/`"polygon"` also
254
- * emits a billboard per line-string / polygon-ring vertex.
288
+ * `"polygon"`. Defaults to `["point"]`; adding `"line"` also emits a
289
+ * billboard per line string, at its first vertex, and `"polygon"` one per
290
+ * polygon.
255
291
  * @returns {string[] | undefined}
256
292
  */
257
293
  get geometryTypes() {
@@ -270,6 +306,16 @@ export class BillboardMaterial {
270
306
  const ret = wasm.__wbg_get_billboardmaterial_height(this.__wbg_ptr);
271
307
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
272
308
  }
309
+ /**
310
+ * Leave this label's box out of the collision grid, so symbols placed
311
+ * after it may overlap it. Only meaningful when `declutter` is enabled.
312
+ * Defaults to `false`.
313
+ * @returns {boolean | undefined}
314
+ */
315
+ get ignorePlacement() {
316
+ const ret = wasm.__wbg_get_billboardmaterial_ignorePlacement(this.__wbg_ptr);
317
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
318
+ }
273
319
  /**
274
320
  * Avoid overlapping with the globe surface.
275
321
  * @returns {boolean | undefined}
@@ -278,6 +324,16 @@ export class BillboardMaterial {
278
324
  const ret = wasm.__wbg_get_billboardmaterial_offsetDepth(this.__wbg_ptr);
279
325
  return ret === 0xFFFFFF ? undefined : ret !== 0;
280
326
  }
327
+ /**
328
+ * Shift from the anchor point, x right and y down, in the unit of `size`
329
+ * (meters when `sizeInMeters`, pixels otherwise). Lies in the quad's own
330
+ * plane, so it turns with `rotation`. Defaults to `(0, 0)`.
331
+ * @returns {Vec2 | undefined}
332
+ */
333
+ get offset() {
334
+ const ret = wasm.__wbg_get_billboardmaterial_offset(this.__wbg_ptr);
335
+ return ret === 0 ? undefined : Vec2.__wrap(ret);
336
+ }
281
337
  /**
282
338
  * @returns {number | undefined}
283
339
  */
@@ -286,9 +342,56 @@ export class BillboardMaterial {
286
342
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
287
343
  }
288
344
  /**
289
- * Whether the sprite turns to follow the camera. `true` (the default)
290
- * keeps it facing the viewer. `false` freezes it in the anchor's local
291
- * east-north-up frame, so moving the camera never reorients it.
345
+ * Whether the label may be drawn over symbols placed before it:
346
+ * `"never"` (the default) hides it on any collision, `"always"` never
347
+ * does, `"cooperative"` hides it only when it collides with a `"never"`
348
+ * symbol. Only meaningful when `declutter` is enabled.
349
+ * @returns {string | undefined}
350
+ */
351
+ get overlap() {
352
+ const ret = wasm.__wbg_get_billboardmaterial_overlap(this.__wbg_ptr);
353
+ let v1;
354
+ if (ret[0] !== 0) {
355
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
356
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
357
+ }
358
+ return v1;
359
+ }
360
+ /**
361
+ * How anchors are derived from line and polygon geometry: `"point"` (the
362
+ * default) puts one per line string, at its first vertex, and one per
363
+ * polygon, `"line"` repeats them along the line every `spacing`,
364
+ * `"line-center"` places a single one at the line's midpoint. Polygon
365
+ * rings are walked like lines. Requires `geometryTypes` to include
366
+ * `"line"` or `"polygon"`.
367
+ * @returns {string | undefined}
368
+ */
369
+ get placement() {
370
+ const ret = wasm.__wbg_get_billboardmaterial_placement(this.__wbg_ptr);
371
+ let v1;
372
+ if (ret[0] !== 0) {
373
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
374
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
375
+ }
376
+ return v1;
377
+ }
378
+ /**
379
+ * Add the line's tangent bearing at the anchor to `rotation`, so the
380
+ * sprite turns with the line it sits on. Defaults to `true`.
381
+ * @returns {boolean | undefined}
382
+ */
383
+ get rotateToLine() {
384
+ const ret = wasm.__wbg_get_billboardmaterial_rotateToLine(this.__wbg_ptr);
385
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
386
+ }
387
+ /**
388
+ * Whether the sprite turns with the camera or with the map, as MapLibre's
389
+ * `icon-rotation-alignment` `viewport` and `map`. `true` keeps it reading left to right
390
+ * (a screen-aligned billboard, or a flat quad yawed to the camera).
391
+ * `false` aligns it with the map: upright, it stays on screen but turns
392
+ * with the camera heading so its x-axis points east; flat, it lies
393
+ * north-up. Left unset, it is `true` for `placement: "point"` and `false`
394
+ * along a line, as MapLibre resolves `auto`.
292
395
  * @returns {boolean | undefined}
293
396
  */
294
397
  get rotateWithCamera() {
@@ -297,7 +400,7 @@ export class BillboardMaterial {
297
400
  }
298
401
  /**
299
402
  * Rotation of the sprite within its own plane, about its anchor point,
300
- * in degrees, clockwise seen from the front. `center` decides where
403
+ * in degrees, clockwise seen from the front. `anchor` decides where
301
404
  * inside the sprite the pivot sits. Defaults to `0.0`.
302
405
  * @returns {number | undefined}
303
406
  */
@@ -320,6 +423,17 @@ export class BillboardMaterial {
320
423
  const ret = wasm.__wbg_get_billboardmaterial_sizeInMeters(this.__wbg_ptr);
321
424
  return ret === 0xFFFFFF ? undefined : ret !== 0;
322
425
  }
426
+ /**
427
+ * Whether `size` scales the image's own pixel height instead of being the
428
+ * quad's height, like MapLibre's `icon-size`: `1` draws the image at its
429
+ * natural size. `offset` keeps the unit `sizeInMeters` gives it. Default
430
+ * is false.
431
+ * @returns {boolean | undefined}
432
+ */
433
+ get sizeRelativeToImage() {
434
+ const ret = wasm.__wbg_get_billboardmaterial_sizeRelativeToImage(this.__wbg_ptr);
435
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
436
+ }
323
437
  /**
324
438
  * size in pixels/meters (units are determined by `sizeInMeters`).
325
439
  * @returns {number | undefined}
@@ -328,6 +442,59 @@ export class BillboardMaterial {
328
442
  const ret = wasm.__wbg_get_billboardmaterial_size(this.__wbg_ptr);
329
443
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
330
444
  }
445
+ /**
446
+ * Distance between repeated anchors along a line, in screen pixels, for
447
+ * `vector-tile` and `geojson` sources alike. Resolved per anchor as the
448
+ * camera moves: anchors thin out as it pulls back and fill in as it
449
+ * closes, never moving, so the gap on screen stays between one and two
450
+ * times `spacing` across a pitched view. As MapLibre does with
451
+ * `symbol-spacing`, a sprite wider than three quarters of the spacing
452
+ * spreads its repeats to its width plus a quarter of the spacing, and a
453
+ * vector tile places anchors only inside its own bounds. Only used by
454
+ * `placement: "line"`. Defaults to `250.0`.
455
+ * @returns {number | undefined}
456
+ */
457
+ get spacing() {
458
+ const ret = wasm.__wbg_get_billboardmaterial_spacing(this.__wbg_ptr);
459
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
460
+ }
461
+ /**
462
+ * Whether this may show while its partner at the same anchor (the
463
+ * layer's label for a billboard, its billboard for a label) is hidden.
464
+ * With `false` on both, the two are placed together: both show or
465
+ * neither does. Only meaningful when `declutter` is enabled. Defaults to
466
+ * `true`.
467
+ * @returns {boolean | undefined}
468
+ */
469
+ get standalone() {
470
+ const ret = wasm.__wbg_get_billboardmaterial_standalone(this.__wbg_ptr);
471
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
472
+ }
473
+ /**
474
+ * Frame `translate` is measured in: `"map"` (default) turns it with the
475
+ * camera heading so +x points east and +y south; `"viewport"` keeps it on
476
+ * the screen axes. MapLibre's `icon-translate-anchor`.
477
+ * @returns {string | undefined}
478
+ */
479
+ get translateAnchor() {
480
+ const ret = wasm.__wbg_get_billboardmaterial_translateAnchor(this.__wbg_ptr);
481
+ let v1;
482
+ if (ret[0] !== 0) {
483
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
484
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
485
+ }
486
+ return v1;
487
+ }
488
+ /**
489
+ * Screen-pixel shift of the drawn quad, x right and y down, applied after
490
+ * projection so it stays the same number of pixels at any distance, as
491
+ * MapLibre's `icon-translate`. Defaults to `(0, 0)`.
492
+ * @returns {Vec2 | undefined}
493
+ */
494
+ get translate() {
495
+ const ret = wasm.__wbg_get_billboardmaterial_translate(this.__wbg_ptr);
496
+ return ret === 0 ? undefined : Vec2.__wrap(ret);
497
+ }
331
498
  /**
332
499
  * @returns {boolean | undefined}
333
500
  */
@@ -354,19 +521,33 @@ export class BillboardMaterial {
354
521
  wasm.__wbg_set_billboardmaterial_alphaTest(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
355
522
  }
356
523
  /**
357
- * Whether faces seen from behind are culled. Default is false, so a
358
- * quad frozen in its anchor's frame (`rotateWithCamera: false`) stays
359
- * visible from behind. Turn it on to hide a flat quad's parts that wrap
360
- * over the horizon, which face away from the camera.
524
+ * Part of the quad placed at the anchor point: `"center"` (default),
525
+ * `"left"`, `"right"`, `"top"`, `"bottom"`, `"top-left"`, `"top-right"`,
526
+ * `"bottom-left"` or `"bottom-right"`, as MapLibre's `icon-anchor`.
527
+ * @param {string | null} [arg0]
528
+ */
529
+ set anchor(arg0) {
530
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
531
+ var len0 = WASM_VECTOR_LEN;
532
+ wasm.__wbg_set_billboardmaterial_anchor(this.__wbg_ptr, ptr0, len0);
533
+ }
534
+ /**
535
+ * Whether faces seen from behind are culled. Default is false. Only a
536
+ * flat quad has a back the camera can see: turn it on to hide the parts
537
+ * of a large one that wrap over the horizon, which face away from the
538
+ * camera.
361
539
  * @param {boolean | null} [arg0]
362
540
  */
363
541
  set backfaceCulling(arg0) {
364
542
  wasm.__wbg_set_billboardmaterial_backfaceCulling(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
365
543
  }
366
544
  /**
367
- * Whether the sprite stands up (`"upright"`, the default) or lies on the
368
- * globe surface around its anchor (`"flat"`). Pair with
369
- * `rotateWithCamera`.
545
+ * Plane the sprite lies in: the screen (`"upright"`, never foreshortened)
546
+ * or the globe surface around its anchor (`"flat"`), as MapLibre's
547
+ * `icon-pitch-alignment` `viewport` and `map`. Pair with
548
+ * `rotateWithCamera`. Left unset, it is `"flat"` when `rotateWithCamera`
549
+ * resolves to `false` and `"upright"` otherwise, as MapLibre resolves
550
+ * `auto`.
370
551
  * @param {string | null} [arg0]
371
552
  */
372
553
  set billboardFacing(arg0) {
@@ -374,19 +555,6 @@ export class BillboardMaterial {
374
555
  var len0 = WASM_VECTOR_LEN;
375
556
  wasm.__wbg_set_billboardmaterial_billboardFacing(this.__wbg_ptr, ptr0, len0);
376
557
  }
377
- /**
378
- * anchor point of the sprite, range is (-0.5, -0.5) to (0.5, 0.5).
379
- * Default is (0.0, 0.0) which means the center of the sprite.
380
- * @param {Vec2 | null} [arg0]
381
- */
382
- set center(arg0) {
383
- let ptr0 = 0;
384
- if (!isLikeNone(arg0)) {
385
- _assertClass(arg0, Vec2);
386
- ptr0 = arg0.__destroy_into_raw();
387
- }
388
- wasm.__wbg_set_billboardmaterial_center(this.__wbg_ptr, ptr0);
389
- }
390
558
  /**
391
559
  * @param {boolean | null} [arg0]
392
560
  */
@@ -399,6 +567,17 @@ export class BillboardMaterial {
399
567
  set color(arg0) {
400
568
  wasm.__wbg_set_billboardmaterial_color(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : (arg0) >>> 0);
401
569
  }
570
+ /**
571
+ * Extra space around the collision box, in screen pixels: one to four
572
+ * values, expanded like CSS padding (top, right, bottom, left). Only
573
+ * meaningful when `declutter` is enabled. Defaults to `[2]`.
574
+ * @param {Float32Array | null} [arg0]
575
+ */
576
+ set declutterPadding(arg0) {
577
+ var ptr0 = isLikeNone(arg0) ? 0 : passArrayF32ToWasm0(arg0, wasm.__wbindgen_malloc);
578
+ var len0 = WASM_VECTOR_LEN;
579
+ wasm.__wbg_set_billboardmaterial_declutterPadding(this.__wbg_ptr, ptr0, len0);
580
+ }
402
581
  /**
403
582
  * Placement priority for decluttering; higher wins. Only meaningful when
404
583
  * `declutter` is enabled. Defaults to `0.0`.
@@ -407,6 +586,16 @@ export class BillboardMaterial {
407
586
  set declutterPriority(arg0) {
408
587
  wasm.__wbg_set_billboardmaterial_declutterPriority(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
409
588
  }
589
+ /**
590
+ * Coarse placement order for decluttering, compared before
591
+ * `declutterPriority`: every label with a higher rank is placed before any
592
+ * label with a lower one, whatever their priorities. Only meaningful when
593
+ * `declutter` is enabled. Defaults to `0.0`.
594
+ * @param {number | null} [arg0]
595
+ */
596
+ set declutterRank(arg0) {
597
+ wasm.__wbg_set_billboardmaterial_declutterRank(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
598
+ }
410
599
  /**
411
600
  * Participate in screen-space decluttering: when labels/sprites overlap
412
601
  * on screen, lower-priority ones are hidden. Defaults to `true`; set to
@@ -447,8 +636,9 @@ export class BillboardMaterial {
447
636
  }
448
637
  /**
449
638
  * Source geometry types this appearance consumes: `"point"`, `"line"`,
450
- * `"polygon"`. Defaults to `["point"]`; adding `"line"`/`"polygon"` also
451
- * emits a billboard per line-string / polygon-ring vertex.
639
+ * `"polygon"`. Defaults to `["point"]`; adding `"line"` also emits a
640
+ * billboard per line string, at its first vertex, and `"polygon"` one per
641
+ * polygon.
452
642
  * @param {string[] | null} [arg0]
453
643
  */
454
644
  set geometryTypes(arg0) {
@@ -462,6 +652,15 @@ export class BillboardMaterial {
462
652
  set height(arg0) {
463
653
  wasm.__wbg_set_billboardmaterial_height(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
464
654
  }
655
+ /**
656
+ * Leave this label's box out of the collision grid, so symbols placed
657
+ * after it may overlap it. Only meaningful when `declutter` is enabled.
658
+ * Defaults to `false`.
659
+ * @param {boolean | null} [arg0]
660
+ */
661
+ set ignorePlacement(arg0) {
662
+ wasm.__wbg_set_billboardmaterial_ignorePlacement(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
663
+ }
465
664
  /**
466
665
  * Avoid overlapping with the globe surface.
467
666
  * @param {boolean | null} [arg0]
@@ -469,6 +668,20 @@ export class BillboardMaterial {
469
668
  set offsetDepth(arg0) {
470
669
  wasm.__wbg_set_billboardmaterial_offsetDepth(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
471
670
  }
671
+ /**
672
+ * Shift from the anchor point, x right and y down, in the unit of `size`
673
+ * (meters when `sizeInMeters`, pixels otherwise). Lies in the quad's own
674
+ * plane, so it turns with `rotation`. Defaults to `(0, 0)`.
675
+ * @param {Vec2 | null} [arg0]
676
+ */
677
+ set offset(arg0) {
678
+ let ptr0 = 0;
679
+ if (!isLikeNone(arg0)) {
680
+ _assertClass(arg0, Vec2);
681
+ ptr0 = arg0.__destroy_into_raw();
682
+ }
683
+ wasm.__wbg_set_billboardmaterial_offset(this.__wbg_ptr, ptr0);
684
+ }
472
685
  /**
473
686
  * @param {number | null} [arg0]
474
687
  */
@@ -476,9 +689,47 @@ export class BillboardMaterial {
476
689
  wasm.__wbg_set_billboardmaterial_opacity(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
477
690
  }
478
691
  /**
479
- * Whether the sprite turns to follow the camera. `true` (the default)
480
- * keeps it facing the viewer. `false` freezes it in the anchor's local
481
- * east-north-up frame, so moving the camera never reorients it.
692
+ * Whether the label may be drawn over symbols placed before it:
693
+ * `"never"` (the default) hides it on any collision, `"always"` never
694
+ * does, `"cooperative"` hides it only when it collides with a `"never"`
695
+ * symbol. Only meaningful when `declutter` is enabled.
696
+ * @param {string | null} [arg0]
697
+ */
698
+ set overlap(arg0) {
699
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
700
+ var len0 = WASM_VECTOR_LEN;
701
+ wasm.__wbg_set_billboardmaterial_overlap(this.__wbg_ptr, ptr0, len0);
702
+ }
703
+ /**
704
+ * How anchors are derived from line and polygon geometry: `"point"` (the
705
+ * default) puts one per line string, at its first vertex, and one per
706
+ * polygon, `"line"` repeats them along the line every `spacing`,
707
+ * `"line-center"` places a single one at the line's midpoint. Polygon
708
+ * rings are walked like lines. Requires `geometryTypes` to include
709
+ * `"line"` or `"polygon"`.
710
+ * @param {string | null} [arg0]
711
+ */
712
+ set placement(arg0) {
713
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
714
+ var len0 = WASM_VECTOR_LEN;
715
+ wasm.__wbg_set_billboardmaterial_placement(this.__wbg_ptr, ptr0, len0);
716
+ }
717
+ /**
718
+ * Add the line's tangent bearing at the anchor to `rotation`, so the
719
+ * sprite turns with the line it sits on. Defaults to `true`.
720
+ * @param {boolean | null} [arg0]
721
+ */
722
+ set rotateToLine(arg0) {
723
+ wasm.__wbg_set_billboardmaterial_rotateToLine(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
724
+ }
725
+ /**
726
+ * Whether the sprite turns with the camera or with the map, as MapLibre's
727
+ * `icon-rotation-alignment` `viewport` and `map`. `true` keeps it reading left to right
728
+ * (a screen-aligned billboard, or a flat quad yawed to the camera).
729
+ * `false` aligns it with the map: upright, it stays on screen but turns
730
+ * with the camera heading so its x-axis points east; flat, it lies
731
+ * north-up. Left unset, it is `true` for `placement: "point"` and `false`
732
+ * along a line, as MapLibre resolves `auto`.
482
733
  * @param {boolean | null} [arg0]
483
734
  */
484
735
  set rotateWithCamera(arg0) {
@@ -486,7 +737,7 @@ export class BillboardMaterial {
486
737
  }
487
738
  /**
488
739
  * Rotation of the sprite within its own plane, about its anchor point,
489
- * in degrees, clockwise seen from the front. `center` decides where
740
+ * in degrees, clockwise seen from the front. `anchor` decides where
490
741
  * inside the sprite the pivot sits. Defaults to `0.0`.
491
742
  * @param {number | null} [arg0]
492
743
  */
@@ -506,6 +757,16 @@ export class BillboardMaterial {
506
757
  set sizeInMeters(arg0) {
507
758
  wasm.__wbg_set_billboardmaterial_sizeInMeters(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
508
759
  }
760
+ /**
761
+ * Whether `size` scales the image's own pixel height instead of being the
762
+ * quad's height, like MapLibre's `icon-size`: `1` draws the image at its
763
+ * natural size. `offset` keeps the unit `sizeInMeters` gives it. Default
764
+ * is false.
765
+ * @param {boolean | null} [arg0]
766
+ */
767
+ set sizeRelativeToImage(arg0) {
768
+ wasm.__wbg_set_billboardmaterial_sizeRelativeToImage(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
769
+ }
509
770
  /**
510
771
  * size in pixels/meters (units are determined by `sizeInMeters`).
511
772
  * @param {number | null} [arg0]
@@ -513,6 +774,57 @@ export class BillboardMaterial {
513
774
  set size(arg0) {
514
775
  wasm.__wbg_set_billboardmaterial_size(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
515
776
  }
777
+ /**
778
+ * Distance between repeated anchors along a line, in screen pixels, for
779
+ * `vector-tile` and `geojson` sources alike. Resolved per anchor as the
780
+ * camera moves: anchors thin out as it pulls back and fill in as it
781
+ * closes, never moving, so the gap on screen stays between one and two
782
+ * times `spacing` across a pitched view. As MapLibre does with
783
+ * `symbol-spacing`, a sprite wider than three quarters of the spacing
784
+ * spreads its repeats to its width plus a quarter of the spacing, and a
785
+ * vector tile places anchors only inside its own bounds. Only used by
786
+ * `placement: "line"`. Defaults to `250.0`.
787
+ * @param {number | null} [arg0]
788
+ */
789
+ set spacing(arg0) {
790
+ wasm.__wbg_set_billboardmaterial_spacing(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
791
+ }
792
+ /**
793
+ * Whether this may show while its partner at the same anchor (the
794
+ * layer's label for a billboard, its billboard for a label) is hidden.
795
+ * With `false` on both, the two are placed together: both show or
796
+ * neither does. Only meaningful when `declutter` is enabled. Defaults to
797
+ * `true`.
798
+ * @param {boolean | null} [arg0]
799
+ */
800
+ set standalone(arg0) {
801
+ wasm.__wbg_set_billboardmaterial_standalone(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
802
+ }
803
+ /**
804
+ * Frame `translate` is measured in: `"map"` (default) turns it with the
805
+ * camera heading so +x points east and +y south; `"viewport"` keeps it on
806
+ * the screen axes. MapLibre's `icon-translate-anchor`.
807
+ * @param {string | null} [arg0]
808
+ */
809
+ set translateAnchor(arg0) {
810
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
811
+ var len0 = WASM_VECTOR_LEN;
812
+ wasm.__wbg_set_billboardmaterial_translateAnchor(this.__wbg_ptr, ptr0, len0);
813
+ }
814
+ /**
815
+ * Screen-pixel shift of the drawn quad, x right and y down, applied after
816
+ * projection so it stays the same number of pixels at any distance, as
817
+ * MapLibre's `icon-translate`. Defaults to `(0, 0)`.
818
+ * @param {Vec2 | null} [arg0]
819
+ */
820
+ set translate(arg0) {
821
+ let ptr0 = 0;
822
+ if (!isLikeNone(arg0)) {
823
+ _assertClass(arg0, Vec2);
824
+ ptr0 = arg0.__destroy_into_raw();
825
+ }
826
+ wasm.__wbg_set_billboardmaterial_translate(this.__wbg_ptr, ptr0);
827
+ }
516
828
  /**
517
829
  * @param {boolean | null} [arg0]
518
830
  */
@@ -1220,6 +1532,7 @@ export class CompiledExpression {
1220
1532
  * * `properties_json` - Feature properties as JSON object
1221
1533
  * * `zoom` - Current zoom level
1222
1534
  * * `geometry_type` - Optional geometry type string (e.g., "Point", "Polygon")
1535
+ * * `elevation` - Optional terrain elevation in meters for `["elevation"]`
1223
1536
  *
1224
1537
  * # Returns
1225
1538
  * Evaluated value as JsValue. Supported types:
@@ -1232,12 +1545,13 @@ export class CompiledExpression {
1232
1545
  * @param {any} properties_json
1233
1546
  * @param {number} zoom
1234
1547
  * @param {string | null} [geometry_type]
1548
+ * @param {number | null} [elevation]
1235
1549
  * @returns {any}
1236
1550
  */
1237
- evaluate(properties_json, zoom, geometry_type) {
1551
+ evaluate(properties_json, zoom, geometry_type, elevation) {
1238
1552
  var ptr0 = isLikeNone(geometry_type) ? 0 : passStringToWasm0(geometry_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1239
1553
  var len0 = WASM_VECTOR_LEN;
1240
- const ret = wasm.compiledexpression_evaluate(this.__wbg_ptr, properties_json, zoom, ptr0, len0);
1554
+ const ret = wasm.compiledexpression_evaluate(this.__wbg_ptr, properties_json, zoom, ptr0, len0, !isLikeNone(elevation), isLikeNone(elevation) ? 0 : elevation);
1241
1555
  if (ret[2]) {
1242
1556
  throw takeFromExternrefTable0(ret[1]);
1243
1557
  }
@@ -1663,15 +1977,15 @@ export class ConstructedPolylineGeometry {
1663
1977
  /**
1664
1978
  * @returns {Float32Array | undefined}
1665
1979
  */
1666
- end_normal_and_texture_coordinate_normalization_x() {
1667
- const ret = wasm.constructedpolylinegeometry_end_normal_and_texture_coordinate_normalization_x(this.__wbg_ptr);
1980
+ end_normal_and_segment_length() {
1981
+ const ret = wasm.constructedpolylinegeometry_end_normal_and_segment_length(this.__wbg_ptr);
1668
1982
  return ret;
1669
1983
  }
1670
1984
  /**
1671
1985
  * @returns {number | undefined}
1672
1986
  */
1673
- end_normal_and_texture_coordinate_normalization_x_size() {
1674
- const ret = wasm.constructedpolylinegeometry_end_normal_and_texture_coordinate_normalization_x_size(this.__wbg_ptr);
1987
+ end_normal_and_segment_length_size() {
1988
+ const ret = wasm.constructedpolylinegeometry_end_normal_and_segment_length_size(this.__wbg_ptr);
1675
1989
  return ret === 0xFFFFFF ? undefined : ret;
1676
1990
  }
1677
1991
  /**
@@ -1702,6 +2016,20 @@ export class ConstructedPolylineGeometry {
1702
2016
  const ret = wasm.constructedpolylinegeometry_indices(this.__wbg_ptr);
1703
2017
  return ret;
1704
2018
  }
2019
+ /**
2020
+ * @returns {Float32Array | undefined}
2021
+ */
2022
+ line_distance_and_ends() {
2023
+ const ret = wasm.constructedpolylinegeometry_line_distance_and_ends(this.__wbg_ptr);
2024
+ return ret;
2025
+ }
2026
+ /**
2027
+ * @returns {Float32Array | undefined}
2028
+ */
2029
+ line_segments() {
2030
+ const ret = wasm.constructedpolylinegeometry_line_segments(this.__wbg_ptr);
2031
+ return ret;
2032
+ }
1705
2033
  /**
1706
2034
  * @returns {Float32Array}
1707
2035
  */
@@ -1747,15 +2075,15 @@ export class ConstructedPolylineGeometry {
1747
2075
  /**
1748
2076
  * @returns {Float32Array}
1749
2077
  */
1750
- right_normal_and_texture_coordinate_normalization_y() {
1751
- const ret = wasm.constructedpolylinegeometry_right_normal_and_texture_coordinate_normalization_y(this.__wbg_ptr);
2078
+ right_normal_and_line_length() {
2079
+ const ret = wasm.constructedpolylinegeometry_right_normal_and_line_length(this.__wbg_ptr);
1752
2080
  return ret;
1753
2081
  }
1754
2082
  /**
1755
2083
  * @returns {number}
1756
2084
  */
1757
- right_normal_and_texture_coordinate_normalization_y_size() {
1758
- const ret = wasm.constructedpolylinegeometry_right_normal_and_texture_coordinate_normalization_y_size(this.__wbg_ptr);
2085
+ right_normal_and_line_length_size() {
2086
+ const ret = wasm.constructedpolylinegeometry_right_normal_and_line_length_size(this.__wbg_ptr);
1759
2087
  return ret;
1760
2088
  }
1761
2089
  /**
@@ -1796,15 +2124,15 @@ export class ConstructedPolylineGeometry {
1796
2124
  /**
1797
2125
  * @returns {Float32Array | undefined}
1798
2126
  */
1799
- start_normals() {
1800
- const ret = wasm.constructedpolylinegeometry_start_normals(this.__wbg_ptr);
2127
+ start_normal_and_length_high() {
2128
+ const ret = wasm.constructedpolylinegeometry_start_normal_and_length_high(this.__wbg_ptr);
1801
2129
  return ret;
1802
2130
  }
1803
2131
  /**
1804
2132
  * @returns {number | undefined}
1805
2133
  */
1806
- start_normals_size() {
1807
- const ret = wasm.constructedpolylinegeometry_start_normals_size(this.__wbg_ptr);
2134
+ start_normal_and_length_high_size() {
2135
+ const ret = wasm.constructedpolylinegeometry_start_normal_and_length_high_size(this.__wbg_ptr);
1808
2136
  return ret === 0xFFFFFF ? undefined : ret;
1809
2137
  }
1810
2138
  /**
@@ -2059,6 +2387,52 @@ export class ElevationHeatmapMaterial {
2059
2387
  const ptr = this.__destroy_into_raw();
2060
2388
  wasm.__wbg_elevationheatmapmaterial_free(ptr, 0);
2061
2389
  }
2390
+ /**
2391
+ * Color map lookup table for this layer's elevation heatmap rendering.
2392
+ * Flattened RGBA array: [r0,g0,b0,a0, r1,g1,b1,a1, ...], evenly spaced over
2393
+ * [minHeight, maxHeight]. When None, the elevation renders as grayscale.
2394
+ * Managed on the web side (ColorMapAtlas); Rust only hashes it to detect
2395
+ * changes.
2396
+ * @returns {Float32Array | undefined}
2397
+ */
2398
+ get colorMap() {
2399
+ const ret = wasm.__wbg_get_elevationheatmapmaterial_colorMap(this.__wbg_ptr);
2400
+ let v1;
2401
+ if (ret[0] !== 0) {
2402
+ v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
2403
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
2404
+ }
2405
+ return v1;
2406
+ }
2407
+ /**
2408
+ * Optional ascending stop elevations in meters, one per colorMap entry.
2409
+ * When set, colorMap entry i is placed at elevation colorStops[i] instead
2410
+ * of being evenly spaced over [minHeight, maxHeight].
2411
+ * Managed on the web side (ColorMapAtlas); Rust only hashes it to detect
2412
+ * changes.
2413
+ * @returns {Float32Array | undefined}
2414
+ */
2415
+ get colorStops() {
2416
+ const ret = wasm.__wbg_get_elevationheatmapmaterial_colorStops(this.__wbg_ptr);
2417
+ let v1;
2418
+ if (ret[0] !== 0) {
2419
+ v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
2420
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
2421
+ }
2422
+ return v1;
2423
+ }
2424
+ /**
2425
+ * @returns {string | undefined}
2426
+ */
2427
+ get filter() {
2428
+ const ret = wasm.__wbg_get_elevationheatmapmaterial_filter(this.__wbg_ptr);
2429
+ let v1;
2430
+ if (ret[0] !== 0) {
2431
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
2432
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
2433
+ }
2434
+ return v1;
2435
+ }
2062
2436
  /**
2063
2437
  * @returns {number | undefined}
2064
2438
  */
@@ -2087,6 +2461,40 @@ export class ElevationHeatmapMaterial {
2087
2461
  const ret = wasm.__wbg_get_elevationheatmapmaterial_minHeight(this.__wbg_ptr);
2088
2462
  return ret[0] === 0 ? undefined : ret[1];
2089
2463
  }
2464
+ /**
2465
+ * Color map lookup table for this layer's elevation heatmap rendering.
2466
+ * Flattened RGBA array: [r0,g0,b0,a0, r1,g1,b1,a1, ...], evenly spaced over
2467
+ * [minHeight, maxHeight]. When None, the elevation renders as grayscale.
2468
+ * Managed on the web side (ColorMapAtlas); Rust only hashes it to detect
2469
+ * changes.
2470
+ * @param {Float32Array | null} [arg0]
2471
+ */
2472
+ set colorMap(arg0) {
2473
+ var ptr0 = isLikeNone(arg0) ? 0 : passArrayF32ToWasm0(arg0, wasm.__wbindgen_malloc);
2474
+ var len0 = WASM_VECTOR_LEN;
2475
+ wasm.__wbg_set_elevationheatmapmaterial_colorMap(this.__wbg_ptr, ptr0, len0);
2476
+ }
2477
+ /**
2478
+ * Optional ascending stop elevations in meters, one per colorMap entry.
2479
+ * When set, colorMap entry i is placed at elevation colorStops[i] instead
2480
+ * of being evenly spaced over [minHeight, maxHeight].
2481
+ * Managed on the web side (ColorMapAtlas); Rust only hashes it to detect
2482
+ * changes.
2483
+ * @param {Float32Array | null} [arg0]
2484
+ */
2485
+ set colorStops(arg0) {
2486
+ var ptr0 = isLikeNone(arg0) ? 0 : passArrayF32ToWasm0(arg0, wasm.__wbindgen_malloc);
2487
+ var len0 = WASM_VECTOR_LEN;
2488
+ wasm.__wbg_set_elevationheatmapmaterial_colorStops(this.__wbg_ptr, ptr0, len0);
2489
+ }
2490
+ /**
2491
+ * @param {string | null} [arg0]
2492
+ */
2493
+ set filter(arg0) {
2494
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
2495
+ var len0 = WASM_VECTOR_LEN;
2496
+ wasm.__wbg_set_elevationheatmapmaterial_filter(this.__wbg_ptr, ptr0, len0);
2497
+ }
2090
2498
  /**
2091
2499
  * @param {number | null} [arg0]
2092
2500
  */
@@ -2822,6 +3230,13 @@ export class Geometry {
2822
3230
  const ret = wasm.geometry_transferNormals(this.__wbg_ptr);
2823
3231
  return ret;
2824
3232
  }
3233
+ /**
3234
+ * @returns {Float32Array | undefined}
3235
+ */
3236
+ transferSkirtHeights() {
3237
+ const ret = wasm.geometry_transferSkirtHeights(this.__wbg_ptr);
3238
+ return ret;
3239
+ }
2825
3240
  /**
2826
3241
  * @returns {Uint32Array | undefined}
2827
3242
  */
@@ -2892,17 +3307,6 @@ export class Globe {
2892
3307
  const ret = wasm.__wbg_get_globe_color(this.__wbg_ptr);
2893
3308
  return ret >>> 0;
2894
3309
  }
2895
- /**
2896
- * Color map lookup table for elevation heatmap rendering.
2897
- * Flattened RGB array: [r0,g0,b0, r1,g1,b1, ...].
2898
- * @returns {Float32Array}
2899
- */
2900
- get elevationColormap() {
2901
- const ret = wasm.__wbg_get_globe_elevationColormap(this.__wbg_ptr);
2902
- var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
2903
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
2904
- return v1;
2905
- }
2906
3310
  /**
2907
3311
  * Whether to hide underground geometry. Disabling this value might cause unexpected behavior when using effect.
2908
3312
  * @returns {boolean}
@@ -2981,12 +3385,9 @@ export class Globe {
2981
3385
  * @param {boolean} transparent
2982
3386
  * @param {number} opacity
2983
3387
  * @param {boolean} wireframe
2984
- * @param {Float32Array} elevation_colormap
2985
3388
  */
2986
- constructor(max_sse, segments, color, hide_underground, use_normal, transparent, opacity, wireframe, elevation_colormap) {
2987
- const ptr0 = passArrayF32ToWasm0(elevation_colormap, wasm.__wbindgen_malloc);
2988
- const len0 = WASM_VECTOR_LEN;
2989
- const ret = wasm.globe_new(max_sse, segments, color, hide_underground, use_normal, transparent, opacity, wireframe, ptr0, len0);
3389
+ constructor(max_sse, segments, color, hide_underground, use_normal, transparent, opacity, wireframe) {
3390
+ const ret = wasm.globe_new(max_sse, segments, color, hide_underground, use_normal, transparent, opacity, wireframe);
2990
3391
  this.__wbg_ptr = ret;
2991
3392
  GlobeFinalization.register(this, this.__wbg_ptr, this);
2992
3393
  return this;
@@ -2998,16 +3399,6 @@ export class Globe {
2998
3399
  set color(arg0) {
2999
3400
  wasm.__wbg_set_globe_color(this.__wbg_ptr, arg0);
3000
3401
  }
3001
- /**
3002
- * Color map lookup table for elevation heatmap rendering.
3003
- * Flattened RGB array: [r0,g0,b0, r1,g1,b1, ...].
3004
- * @param {Float32Array} arg0
3005
- */
3006
- set elevationColormap(arg0) {
3007
- const ptr0 = passArrayF32ToWasm0(arg0, wasm.__wbindgen_malloc);
3008
- const len0 = WASM_VECTOR_LEN;
3009
- wasm.__wbg_set_globe_elevationColormap(this.__wbg_ptr, ptr0, len0);
3010
- }
3011
3402
  /**
3012
3403
  * Whether to hide underground geometry. Disabling this value might cause unexpected behavior when using effect.
3013
3404
  * @param {boolean} arg0
@@ -3283,19 +3674,12 @@ export class ModelMaterial {
3283
3674
  /**
3284
3675
  * @returns {boolean | undefined}
3285
3676
  */
3286
- get applyWaterNormal() {
3287
- const ret = wasm.__wbg_get_modelmaterial_applyWaterNormal(this.__wbg_ptr);
3677
+ get castShadow() {
3678
+ const ret = wasm.__wbg_get_modelmaterial_castShadow(this.__wbg_ptr);
3288
3679
  return ret === 0xFFFFFF ? undefined : ret !== 0;
3289
3680
  }
3290
3681
  /**
3291
- * @returns {boolean | undefined}
3292
- */
3293
- get castShadow() {
3294
- const ret = wasm.__wbg_get_modelmaterial_castShadow(this.__wbg_ptr);
3295
- return ret === 0xFFFFFF ? undefined : ret !== 0;
3296
- }
3297
- /**
3298
- * @returns {number | undefined}
3682
+ * @returns {number | undefined}
3299
3683
  */
3300
3684
  get color() {
3301
3685
  const ret = wasm.__wbg_get_modelmaterial_color(this.__wbg_ptr);
@@ -3347,6 +3731,15 @@ export class ModelMaterial {
3347
3731
  const ret = wasm.__wbg_get_modelmaterial_emissiveIntensity(this.__wbg_ptr);
3348
3732
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3349
3733
  }
3734
+ /**
3735
+ * Speed in m/s of the current carrying the water's waves
3736
+ * along `waveDirection`. Default: 0.
3737
+ * @returns {number | undefined}
3738
+ */
3739
+ get flowSpeed() {
3740
+ const ret = wasm.__wbg_get_modelmaterial_flowSpeed(this.__wbg_ptr);
3741
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3742
+ }
3350
3743
  /**
3351
3744
  * @returns {number | undefined}
3352
3745
  */
@@ -3434,6 +3827,7 @@ export class ModelMaterial {
3434
3827
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3435
3828
  }
3436
3829
  /**
3830
+ * Phong shininess of the non-water `specular` highlight.
3437
3831
  * @returns {number | undefined}
3438
3832
  */
3439
3833
  get shininess() {
@@ -3477,6 +3871,7 @@ export class ModelMaterial {
3477
3871
  }
3478
3872
  /**
3479
3873
  * Enabling this value allows using `shininess` and `specular_strength`.
3874
+ * Has no effect on water.
3480
3875
  * @returns {boolean | undefined}
3481
3876
  */
3482
3877
  get specular() {
@@ -3504,28 +3899,54 @@ export class ModelMaterial {
3504
3899
  return v1;
3505
3900
  }
3506
3901
  /**
3507
- * Scale water normal. Decreasing this value will make the water surface rough.
3902
+ * Extent of the water body, which bounds how far the wind blows over it
3903
+ * and so how large its waves grow: `"ocean"` (the default; open sea),
3904
+ * `"large"` (a bay or a large lake, about 20 km), `"medium"` (a lake or a
3905
+ * wide river, about 2 km) or `"small"` (a river or a pond, about 200 m).
3906
+ * @returns {string | undefined}
3907
+ */
3908
+ get waterScale() {
3909
+ const ret = wasm.__wbg_get_modelmaterial_waterScale(this.__wbg_ptr);
3910
+ let v1;
3911
+ if (ret[0] !== 0) {
3912
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
3913
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
3914
+ }
3915
+ return v1;
3916
+ }
3917
+ /**
3918
+ * Apply a water material on the polygon. It might slow down the loading of the mesh.
3919
+ * @returns {boolean | undefined}
3920
+ */
3921
+ get water() {
3922
+ const ret = wasm.__wbg_get_modelmaterial_water(this.__wbg_ptr);
3923
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
3924
+ }
3925
+ /**
3926
+ * Where the water's waves travel, in degrees clockwise from north.
3927
+ * Default: 0.
3508
3928
  * @returns {number | undefined}
3509
3929
  */
3510
- get waterScaleNormal() {
3511
- const ret = wasm.__wbg_get_modelmaterial_waterScaleNormal(this.__wbg_ptr);
3930
+ get waveDirection() {
3931
+ const ret = wasm.__wbg_get_modelmaterial_waveDirection(this.__wbg_ptr);
3512
3932
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3513
3933
  }
3514
3934
  /**
3515
- * Water wave speed.
3935
+ * Scales the water's wave slopes; 0 is a flat mirror.
3516
3936
  * @returns {number | undefined}
3517
3937
  */
3518
- get waterSpeed() {
3519
- const ret = wasm.__wbg_get_modelmaterial_waterSpeed(this.__wbg_ptr);
3938
+ get waveExaggeration() {
3939
+ const ret = wasm.__wbg_get_modelmaterial_waveExaggeration(this.__wbg_ptr);
3520
3940
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3521
3941
  }
3522
3942
  /**
3523
- * Apply a water material on the polygon. It might slow down the loading of the mesh.
3524
- * @returns {boolean | undefined}
3943
+ * Sets the size, steepness and speed of the water's waves: about 1 is a
3944
+ * calm ripple, 5 moderate and 20 a storm. Default: 5.
3945
+ * @returns {number | undefined}
3525
3946
  */
3526
- get water() {
3527
- const ret = wasm.__wbg_get_modelmaterial_water(this.__wbg_ptr);
3528
- return ret === 0xFFFFFF ? undefined : ret !== 0;
3947
+ get waveStrength() {
3948
+ const ret = wasm.__wbg_get_modelmaterial_waveStrength(this.__wbg_ptr);
3949
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3529
3950
  }
3530
3951
  /**
3531
3952
  * @param {ModelInternalMaterial | null} [arg0]
@@ -3552,12 +3973,6 @@ export class ModelMaterial {
3552
3973
  set animationSpeed(arg0) {
3553
3974
  wasm.__wbg_set_modelmaterial_animationSpeed(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
3554
3975
  }
3555
- /**
3556
- * @param {boolean | null} [arg0]
3557
- */
3558
- set applyWaterNormal(arg0) {
3559
- wasm.__wbg_set_modelmaterial_applyWaterNormal(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
3560
- }
3561
3976
  /**
3562
3977
  * @param {boolean | null} [arg0]
3563
3978
  */
@@ -3608,6 +4023,14 @@ export class ModelMaterial {
3608
4023
  set emissiveIntensity(arg0) {
3609
4024
  wasm.__wbg_set_modelmaterial_emissiveIntensity(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
3610
4025
  }
4026
+ /**
4027
+ * Speed in m/s of the current carrying the water's waves
4028
+ * along `waveDirection`. Default: 0.
4029
+ * @param {number | null} [arg0]
4030
+ */
4031
+ set flowSpeed(arg0) {
4032
+ wasm.__wbg_set_modelmaterial_flowSpeed(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4033
+ }
3611
4034
  /**
3612
4035
  * @param {number | null} [arg0]
3613
4036
  */
@@ -3684,6 +4107,7 @@ export class ModelMaterial {
3684
4107
  wasm.__wbg_set_modelmaterial_roughness(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
3685
4108
  }
3686
4109
  /**
4110
+ * Phong shininess of the non-water `specular` highlight.
3687
4111
  * @param {number | null} [arg0]
3688
4112
  */
3689
4113
  set shininess(arg0) {
@@ -3721,6 +4145,7 @@ export class ModelMaterial {
3721
4145
  }
3722
4146
  /**
3723
4147
  * Enabling this value allows using `shininess` and `specular_strength`.
4148
+ * Has no effect on water.
3724
4149
  * @param {boolean | null} [arg0]
3725
4150
  */
3726
4151
  set specular(arg0) {
@@ -3742,25 +4167,46 @@ export class ModelMaterial {
3742
4167
  wasm.__wbg_set_modelmaterial_url(this.__wbg_ptr, ptr0, len0);
3743
4168
  }
3744
4169
  /**
3745
- * Scale water normal. Decreasing this value will make the water surface rough.
4170
+ * Extent of the water body, which bounds how far the wind blows over it
4171
+ * and so how large its waves grow: `"ocean"` (the default; open sea),
4172
+ * `"large"` (a bay or a large lake, about 20 km), `"medium"` (a lake or a
4173
+ * wide river, about 2 km) or `"small"` (a river or a pond, about 200 m).
4174
+ * @param {string | null} [arg0]
4175
+ */
4176
+ set waterScale(arg0) {
4177
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
4178
+ var len0 = WASM_VECTOR_LEN;
4179
+ wasm.__wbg_set_modelmaterial_waterScale(this.__wbg_ptr, ptr0, len0);
4180
+ }
4181
+ /**
4182
+ * Apply a water material on the polygon. It might slow down the loading of the mesh.
4183
+ * @param {boolean | null} [arg0]
4184
+ */
4185
+ set water(arg0) {
4186
+ wasm.__wbg_set_modelmaterial_water(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
4187
+ }
4188
+ /**
4189
+ * Where the water's waves travel, in degrees clockwise from north.
4190
+ * Default: 0.
3746
4191
  * @param {number | null} [arg0]
3747
4192
  */
3748
- set waterScaleNormal(arg0) {
3749
- wasm.__wbg_set_modelmaterial_waterScaleNormal(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4193
+ set waveDirection(arg0) {
4194
+ wasm.__wbg_set_modelmaterial_waveDirection(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
3750
4195
  }
3751
4196
  /**
3752
- * Water wave speed.
4197
+ * Scales the water's wave slopes; 0 is a flat mirror.
3753
4198
  * @param {number | null} [arg0]
3754
4199
  */
3755
- set waterSpeed(arg0) {
3756
- wasm.__wbg_set_modelmaterial_waterSpeed(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4200
+ set waveExaggeration(arg0) {
4201
+ wasm.__wbg_set_modelmaterial_waveExaggeration(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
3757
4202
  }
3758
4203
  /**
3759
- * Apply a water material on the polygon. It might slow down the loading of the mesh.
3760
- * @param {boolean | null} [arg0]
4204
+ * Sets the size, steepness and speed of the water's waves: about 1 is a
4205
+ * calm ripple, 5 moderate and 20 a storm. Default: 5.
4206
+ * @param {number | null} [arg0]
3761
4207
  */
3762
- set water(arg0) {
3763
- wasm.__wbg_set_modelmaterial_water(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
4208
+ set waveStrength(arg0) {
4209
+ wasm.__wbg_set_modelmaterial_waveStrength(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
3764
4210
  }
3765
4211
  }
3766
4212
  if (Symbol.dispose) ModelMaterial.prototype[Symbol.dispose] = ModelMaterial.prototype.free;
@@ -3886,25 +4332,31 @@ export class PointMaterial {
3886
4332
  wasm.__wbg_pointmaterial_free(ptr, 0);
3887
4333
  }
3888
4334
  /**
3889
- * Whether faces seen from behind are culled. Default is false, so a
3890
- * quad frozen in its anchor's frame (`rotateWithCamera: false`) stays
3891
- * visible from behind. Turn it on to hide a flat quad's parts that wrap
3892
- * over the horizon, which face away from the camera.
4335
+ * Part of the quad placed at the anchor point: `"center"` (default),
4336
+ * `"left"`, `"right"`, `"top"`, `"bottom"`, `"top-left"`, `"top-right"`,
4337
+ * `"bottom-left"` or `"bottom-right"`, as MapLibre's `icon-anchor`.
4338
+ * @returns {string | undefined}
4339
+ */
4340
+ get anchor() {
4341
+ const ret = wasm.__wbg_get_pointmaterial_anchor(this.__wbg_ptr);
4342
+ let v1;
4343
+ if (ret[0] !== 0) {
4344
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
4345
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
4346
+ }
4347
+ return v1;
4348
+ }
4349
+ /**
4350
+ * Whether faces seen from behind are culled. Default is false. Only a
4351
+ * flat quad has a back the camera can see: turn it on to hide the parts
4352
+ * of a large one that wrap over the horizon, which face away from the
4353
+ * camera.
3893
4354
  * @returns {boolean | undefined}
3894
4355
  */
3895
4356
  get backfaceCulling() {
3896
4357
  const ret = wasm.__wbg_get_pointmaterial_backfaceCulling(this.__wbg_ptr);
3897
4358
  return ret === 0xFFFFFF ? undefined : ret !== 0;
3898
4359
  }
3899
- /**
3900
- * anchor point of the sprite, range is (-0.5, -0.5) to (0.5, 0.5).
3901
- * Default is (0.0, 0.0) which means the center of the sprite.
3902
- * @returns {Vec2 | undefined}
3903
- */
3904
- get center() {
3905
- const ret = wasm.__wbg_get_pointmaterial_center(this.__wbg_ptr);
3906
- return ret === 0 ? undefined : Vec2.__wrap(ret);
3907
- }
3908
4360
  /**
3909
4361
  * @returns {boolean | undefined}
3910
4362
  */
@@ -3919,6 +4371,21 @@ export class PointMaterial {
3919
4371
  const ret = wasm.__wbg_get_pointmaterial_color(this.__wbg_ptr);
3920
4372
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3921
4373
  }
4374
+ /**
4375
+ * Extra space around the collision box, in screen pixels: one to four
4376
+ * values, expanded like CSS padding (top, right, bottom, left). Only
4377
+ * meaningful when `declutter` is enabled. Defaults to `[2]`.
4378
+ * @returns {Float32Array | undefined}
4379
+ */
4380
+ get declutterPadding() {
4381
+ const ret = wasm.__wbg_get_pointmaterial_declutterPadding(this.__wbg_ptr);
4382
+ let v1;
4383
+ if (ret[0] !== 0) {
4384
+ v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
4385
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
4386
+ }
4387
+ return v1;
4388
+ }
3922
4389
  /**
3923
4390
  * Placement priority for decluttering; higher wins. Only meaningful when
3924
4391
  * `declutter` is enabled. Defaults to `0.0`.
@@ -3928,6 +4395,17 @@ export class PointMaterial {
3928
4395
  const ret = wasm.__wbg_get_pointmaterial_declutterPriority(this.__wbg_ptr);
3929
4396
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3930
4397
  }
4398
+ /**
4399
+ * Coarse placement order for decluttering, compared before
4400
+ * `declutterPriority`: every label with a higher rank is placed before any
4401
+ * label with a lower one, whatever their priorities. Only meaningful when
4402
+ * `declutter` is enabled. Defaults to `0.0`.
4403
+ * @returns {number | undefined}
4404
+ */
4405
+ get declutterRank() {
4406
+ const ret = wasm.__wbg_get_pointmaterial_declutterRank(this.__wbg_ptr);
4407
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4408
+ }
3931
4409
  /**
3932
4410
  * Participate in screen-space decluttering: when labels/sprites overlap
3933
4411
  * on screen, lower-priority ones are hidden. Defaults to `true`; set to
@@ -3996,6 +4474,16 @@ export class PointMaterial {
3996
4474
  const ret = wasm.__wbg_get_pointmaterial_height(this.__wbg_ptr);
3997
4475
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
3998
4476
  }
4477
+ /**
4478
+ * Leave this label's box out of the collision grid, so symbols placed
4479
+ * after it may overlap it. Only meaningful when `declutter` is enabled.
4480
+ * Defaults to `false`.
4481
+ * @returns {boolean | undefined}
4482
+ */
4483
+ get ignorePlacement() {
4484
+ const ret = wasm.__wbg_get_pointmaterial_ignorePlacement(this.__wbg_ptr);
4485
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
4486
+ }
3999
4487
  /**
4000
4488
  * Avoid overlapping with the globe surface.
4001
4489
  * @returns {boolean | undefined}
@@ -4004,6 +4492,16 @@ export class PointMaterial {
4004
4492
  const ret = wasm.__wbg_get_pointmaterial_offsetDepth(this.__wbg_ptr);
4005
4493
  return ret === 0xFFFFFF ? undefined : ret !== 0;
4006
4494
  }
4495
+ /**
4496
+ * Shift from the anchor point, x right and y down, in the unit of `size`
4497
+ * (meters when `sizeInMeters`, pixels otherwise). Lies in the quad's own
4498
+ * plane, so it turns with `rotation`. Defaults to `(0, 0)`.
4499
+ * @returns {Vec2 | undefined}
4500
+ */
4501
+ get offset() {
4502
+ const ret = wasm.__wbg_get_pointmaterial_offset(this.__wbg_ptr);
4503
+ return ret === 0 ? undefined : Vec2.__wrap(ret);
4504
+ }
4007
4505
  /**
4008
4506
  * @returns {number | undefined}
4009
4507
  */
@@ -4012,9 +4510,45 @@ export class PointMaterial {
4012
4510
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4013
4511
  }
4014
4512
  /**
4015
- * Whether the point stands up (`"upright"`, the default) or lies on the
4016
- * globe surface around its anchor (`"flat"`). Pair with
4017
- * `rotateWithCamera`.
4513
+ * Whether the label may be drawn over symbols placed before it:
4514
+ * `"never"` (the default) hides it on any collision, `"always"` never
4515
+ * does, `"cooperative"` hides it only when it collides with a `"never"`
4516
+ * symbol. Only meaningful when `declutter` is enabled.
4517
+ * @returns {string | undefined}
4518
+ */
4519
+ get overlap() {
4520
+ const ret = wasm.__wbg_get_pointmaterial_overlap(this.__wbg_ptr);
4521
+ let v1;
4522
+ if (ret[0] !== 0) {
4523
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
4524
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
4525
+ }
4526
+ return v1;
4527
+ }
4528
+ /**
4529
+ * How anchors are derived from line and polygon geometry: `"point"` (the
4530
+ * default) puts one at every line and polygon-ring vertex, `"line"`
4531
+ * repeats them along the line every `spacing`, `"line-center"` places a
4532
+ * single one at the line's midpoint. Polygon rings are walked like lines. Requires `geometryTypes`
4533
+ * to include `"line"` or `"polygon"`.
4534
+ * @returns {string | undefined}
4535
+ */
4536
+ get placement() {
4537
+ const ret = wasm.__wbg_get_pointmaterial_placement(this.__wbg_ptr);
4538
+ let v1;
4539
+ if (ret[0] !== 0) {
4540
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
4541
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
4542
+ }
4543
+ return v1;
4544
+ }
4545
+ /**
4546
+ * Plane the point lies in: the screen (`"upright"`, never foreshortened)
4547
+ * or the globe surface around its anchor (`"flat"`), as MapLibre's
4548
+ * `icon-pitch-alignment` `viewport` and `map`. Pair with
4549
+ * `rotateWithCamera`. Left unset, it is `"flat"` when `rotateWithCamera`
4550
+ * resolves to `false` and `"upright"` otherwise, as MapLibre resolves
4551
+ * `auto`.
4018
4552
  * @returns {string | undefined}
4019
4553
  */
4020
4554
  get pointFacing() {
@@ -4027,9 +4561,22 @@ export class PointMaterial {
4027
4561
  return v1;
4028
4562
  }
4029
4563
  /**
4030
- * Whether the point turns to follow the camera. `true` (the default)
4031
- * keeps it facing the viewer. `false` freezes it in the anchor's local
4032
- * east-north-up frame, so moving the camera never reorients it.
4564
+ * Add the line's tangent bearing at the anchor to `rotation`, so the
4565
+ * sprite turns with the line it sits on. Defaults to `true`.
4566
+ * @returns {boolean | undefined}
4567
+ */
4568
+ get rotateToLine() {
4569
+ const ret = wasm.__wbg_get_pointmaterial_rotateToLine(this.__wbg_ptr);
4570
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
4571
+ }
4572
+ /**
4573
+ * Whether the point turns with the camera or with the map, as MapLibre's
4574
+ * `icon-rotation-alignment` `viewport` and `map`. `true` keeps it reading left to right
4575
+ * (a screen-aligned billboard, or a flat quad yawed to the camera).
4576
+ * `false` aligns it with the map: upright, it stays on screen but turns
4577
+ * with the camera heading so its x-axis points east; flat, it lies
4578
+ * north-up. Left unset, it is `true` for `placement: "point"` and `false`
4579
+ * along a line, as MapLibre resolves `auto`.
4033
4580
  * @returns {boolean | undefined}
4034
4581
  */
4035
4582
  get rotateWithCamera() {
@@ -4038,7 +4585,7 @@ export class PointMaterial {
4038
4585
  }
4039
4586
  /**
4040
4587
  * Rotation of the point within its own plane, about its anchor point, in
4041
- * degrees, clockwise seen from the front. `center` decides where inside
4588
+ * degrees, clockwise seen from the front. `anchor` decides where inside
4042
4589
  * the quad the pivot sits. Defaults to `0.0`.
4043
4590
  * @returns {number | undefined}
4044
4591
  */
@@ -4069,6 +4616,47 @@ export class PointMaterial {
4069
4616
  const ret = wasm.__wbg_get_pointmaterial_size(this.__wbg_ptr);
4070
4617
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4071
4618
  }
4619
+ /**
4620
+ * Distance between repeated anchors along a line, in screen pixels, for
4621
+ * `vector-tile` and `geojson` sources alike. Resolved per anchor as the
4622
+ * camera moves: anchors thin out as it pulls back and fill in as it
4623
+ * closes, never moving, so the gap on screen stays between one and two
4624
+ * times `spacing` across a pitched view. As MapLibre does with
4625
+ * `symbol-spacing`, a sprite wider than three quarters of the spacing
4626
+ * spreads its repeats to its width plus a quarter of the spacing, and a
4627
+ * vector tile places anchors only inside its own bounds. Only used by
4628
+ * `placement: "line"`. Defaults to `250.0`.
4629
+ * @returns {number | undefined}
4630
+ */
4631
+ get spacing() {
4632
+ const ret = wasm.__wbg_get_pointmaterial_spacing(this.__wbg_ptr);
4633
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4634
+ }
4635
+ /**
4636
+ * Frame `translate` is measured in: `"map"` (default) turns it with the
4637
+ * camera heading so +x points east and +y south; `"viewport"` keeps it on
4638
+ * the screen axes. MapLibre's `icon-translate-anchor`.
4639
+ * @returns {string | undefined}
4640
+ */
4641
+ get translateAnchor() {
4642
+ const ret = wasm.__wbg_get_pointmaterial_translateAnchor(this.__wbg_ptr);
4643
+ let v1;
4644
+ if (ret[0] !== 0) {
4645
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
4646
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
4647
+ }
4648
+ return v1;
4649
+ }
4650
+ /**
4651
+ * Screen-pixel shift of the drawn quad, x right and y down, applied after
4652
+ * projection so it stays the same number of pixels at any distance, as
4653
+ * MapLibre's `icon-translate`. Defaults to `(0, 0)`.
4654
+ * @returns {Vec2 | undefined}
4655
+ */
4656
+ get translate() {
4657
+ const ret = wasm.__wbg_get_pointmaterial_translate(this.__wbg_ptr);
4658
+ return ret === 0 ? undefined : Vec2.__wrap(ret);
4659
+ }
4072
4660
  /**
4073
4661
  * @returns {boolean | undefined}
4074
4662
  */
@@ -4077,27 +4665,25 @@ export class PointMaterial {
4077
4665
  return ret === 0xFFFFFF ? undefined : ret !== 0;
4078
4666
  }
4079
4667
  /**
4080
- * Whether faces seen from behind are culled. Default is false, so a
4081
- * quad frozen in its anchor's frame (`rotateWithCamera: false`) stays
4082
- * visible from behind. Turn it on to hide a flat quad's parts that wrap
4083
- * over the horizon, which face away from the camera.
4084
- * @param {boolean | null} [arg0]
4668
+ * Part of the quad placed at the anchor point: `"center"` (default),
4669
+ * `"left"`, `"right"`, `"top"`, `"bottom"`, `"top-left"`, `"top-right"`,
4670
+ * `"bottom-left"` or `"bottom-right"`, as MapLibre's `icon-anchor`.
4671
+ * @param {string | null} [arg0]
4085
4672
  */
4086
- set backfaceCulling(arg0) {
4087
- wasm.__wbg_set_pointmaterial_backfaceCulling(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
4673
+ set anchor(arg0) {
4674
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
4675
+ var len0 = WASM_VECTOR_LEN;
4676
+ wasm.__wbg_set_pointmaterial_anchor(this.__wbg_ptr, ptr0, len0);
4088
4677
  }
4089
4678
  /**
4090
- * anchor point of the sprite, range is (-0.5, -0.5) to (0.5, 0.5).
4091
- * Default is (0.0, 0.0) which means the center of the sprite.
4092
- * @param {Vec2 | null} [arg0]
4679
+ * Whether faces seen from behind are culled. Default is false. Only a
4680
+ * flat quad has a back the camera can see: turn it on to hide the parts
4681
+ * of a large one that wrap over the horizon, which face away from the
4682
+ * camera.
4683
+ * @param {boolean | null} [arg0]
4093
4684
  */
4094
- set center(arg0) {
4095
- let ptr0 = 0;
4096
- if (!isLikeNone(arg0)) {
4097
- _assertClass(arg0, Vec2);
4098
- ptr0 = arg0.__destroy_into_raw();
4099
- }
4100
- wasm.__wbg_set_pointmaterial_center(this.__wbg_ptr, ptr0);
4685
+ set backfaceCulling(arg0) {
4686
+ wasm.__wbg_set_pointmaterial_backfaceCulling(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
4101
4687
  }
4102
4688
  /**
4103
4689
  * @param {boolean | null} [arg0]
@@ -4111,6 +4697,17 @@ export class PointMaterial {
4111
4697
  set color(arg0) {
4112
4698
  wasm.__wbg_set_pointmaterial_color(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : (arg0) >>> 0);
4113
4699
  }
4700
+ /**
4701
+ * Extra space around the collision box, in screen pixels: one to four
4702
+ * values, expanded like CSS padding (top, right, bottom, left). Only
4703
+ * meaningful when `declutter` is enabled. Defaults to `[2]`.
4704
+ * @param {Float32Array | null} [arg0]
4705
+ */
4706
+ set declutterPadding(arg0) {
4707
+ var ptr0 = isLikeNone(arg0) ? 0 : passArrayF32ToWasm0(arg0, wasm.__wbindgen_malloc);
4708
+ var len0 = WASM_VECTOR_LEN;
4709
+ wasm.__wbg_set_pointmaterial_declutterPadding(this.__wbg_ptr, ptr0, len0);
4710
+ }
4114
4711
  /**
4115
4712
  * Placement priority for decluttering; higher wins. Only meaningful when
4116
4713
  * `declutter` is enabled. Defaults to `0.0`.
@@ -4119,6 +4716,16 @@ export class PointMaterial {
4119
4716
  set declutterPriority(arg0) {
4120
4717
  wasm.__wbg_set_pointmaterial_declutterPriority(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4121
4718
  }
4719
+ /**
4720
+ * Coarse placement order for decluttering, compared before
4721
+ * `declutterPriority`: every label with a higher rank is placed before any
4722
+ * label with a lower one, whatever their priorities. Only meaningful when
4723
+ * `declutter` is enabled. Defaults to `0.0`.
4724
+ * @param {number | null} [arg0]
4725
+ */
4726
+ set declutterRank(arg0) {
4727
+ wasm.__wbg_set_pointmaterial_declutterRank(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4728
+ }
4122
4729
  /**
4123
4730
  * Participate in screen-space decluttering: when labels/sprites overlap
4124
4731
  * on screen, lower-priority ones are hidden. Defaults to `true`; set to
@@ -4174,6 +4781,15 @@ export class PointMaterial {
4174
4781
  set height(arg0) {
4175
4782
  wasm.__wbg_set_pointmaterial_height(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4176
4783
  }
4784
+ /**
4785
+ * Leave this label's box out of the collision grid, so symbols placed
4786
+ * after it may overlap it. Only meaningful when `declutter` is enabled.
4787
+ * Defaults to `false`.
4788
+ * @param {boolean | null} [arg0]
4789
+ */
4790
+ set ignorePlacement(arg0) {
4791
+ wasm.__wbg_set_pointmaterial_ignorePlacement(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
4792
+ }
4177
4793
  /**
4178
4794
  * Avoid overlapping with the globe surface.
4179
4795
  * @param {boolean | null} [arg0]
@@ -4181,6 +4797,20 @@ export class PointMaterial {
4181
4797
  set offsetDepth(arg0) {
4182
4798
  wasm.__wbg_set_pointmaterial_offsetDepth(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
4183
4799
  }
4800
+ /**
4801
+ * Shift from the anchor point, x right and y down, in the unit of `size`
4802
+ * (meters when `sizeInMeters`, pixels otherwise). Lies in the quad's own
4803
+ * plane, so it turns with `rotation`. Defaults to `(0, 0)`.
4804
+ * @param {Vec2 | null} [arg0]
4805
+ */
4806
+ set offset(arg0) {
4807
+ let ptr0 = 0;
4808
+ if (!isLikeNone(arg0)) {
4809
+ _assertClass(arg0, Vec2);
4810
+ ptr0 = arg0.__destroy_into_raw();
4811
+ }
4812
+ wasm.__wbg_set_pointmaterial_offset(this.__wbg_ptr, ptr0);
4813
+ }
4184
4814
  /**
4185
4815
  * @param {number | null} [arg0]
4186
4816
  */
@@ -4188,9 +4818,37 @@ export class PointMaterial {
4188
4818
  wasm.__wbg_set_pointmaterial_opacity(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4189
4819
  }
4190
4820
  /**
4191
- * Whether the point stands up (`"upright"`, the default) or lies on the
4192
- * globe surface around its anchor (`"flat"`). Pair with
4193
- * `rotateWithCamera`.
4821
+ * Whether the label may be drawn over symbols placed before it:
4822
+ * `"never"` (the default) hides it on any collision, `"always"` never
4823
+ * does, `"cooperative"` hides it only when it collides with a `"never"`
4824
+ * symbol. Only meaningful when `declutter` is enabled.
4825
+ * @param {string | null} [arg0]
4826
+ */
4827
+ set overlap(arg0) {
4828
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
4829
+ var len0 = WASM_VECTOR_LEN;
4830
+ wasm.__wbg_set_pointmaterial_overlap(this.__wbg_ptr, ptr0, len0);
4831
+ }
4832
+ /**
4833
+ * How anchors are derived from line and polygon geometry: `"point"` (the
4834
+ * default) puts one at every line and polygon-ring vertex, `"line"`
4835
+ * repeats them along the line every `spacing`, `"line-center"` places a
4836
+ * single one at the line's midpoint. Polygon rings are walked like lines. Requires `geometryTypes`
4837
+ * to include `"line"` or `"polygon"`.
4838
+ * @param {string | null} [arg0]
4839
+ */
4840
+ set placement(arg0) {
4841
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
4842
+ var len0 = WASM_VECTOR_LEN;
4843
+ wasm.__wbg_set_pointmaterial_placement(this.__wbg_ptr, ptr0, len0);
4844
+ }
4845
+ /**
4846
+ * Plane the point lies in: the screen (`"upright"`, never foreshortened)
4847
+ * or the globe surface around its anchor (`"flat"`), as MapLibre's
4848
+ * `icon-pitch-alignment` `viewport` and `map`. Pair with
4849
+ * `rotateWithCamera`. Left unset, it is `"flat"` when `rotateWithCamera`
4850
+ * resolves to `false` and `"upright"` otherwise, as MapLibre resolves
4851
+ * `auto`.
4194
4852
  * @param {string | null} [arg0]
4195
4853
  */
4196
4854
  set pointFacing(arg0) {
@@ -4199,9 +4857,21 @@ export class PointMaterial {
4199
4857
  wasm.__wbg_set_pointmaterial_pointFacing(this.__wbg_ptr, ptr0, len0);
4200
4858
  }
4201
4859
  /**
4202
- * Whether the point turns to follow the camera. `true` (the default)
4203
- * keeps it facing the viewer. `false` freezes it in the anchor's local
4204
- * east-north-up frame, so moving the camera never reorients it.
4860
+ * Add the line's tangent bearing at the anchor to `rotation`, so the
4861
+ * sprite turns with the line it sits on. Defaults to `true`.
4862
+ * @param {boolean | null} [arg0]
4863
+ */
4864
+ set rotateToLine(arg0) {
4865
+ wasm.__wbg_set_pointmaterial_rotateToLine(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
4866
+ }
4867
+ /**
4868
+ * Whether the point turns with the camera or with the map, as MapLibre's
4869
+ * `icon-rotation-alignment` `viewport` and `map`. `true` keeps it reading left to right
4870
+ * (a screen-aligned billboard, or a flat quad yawed to the camera).
4871
+ * `false` aligns it with the map: upright, it stays on screen but turns
4872
+ * with the camera heading so its x-axis points east; flat, it lies
4873
+ * north-up. Left unset, it is `true` for `placement: "point"` and `false`
4874
+ * along a line, as MapLibre resolves `auto`.
4205
4875
  * @param {boolean | null} [arg0]
4206
4876
  */
4207
4877
  set rotateWithCamera(arg0) {
@@ -4209,7 +4879,7 @@ export class PointMaterial {
4209
4879
  }
4210
4880
  /**
4211
4881
  * Rotation of the point within its own plane, about its anchor point, in
4212
- * degrees, clockwise seen from the front. `center` decides where inside
4882
+ * degrees, clockwise seen from the front. `anchor` decides where inside
4213
4883
  * the quad the pivot sits. Defaults to `0.0`.
4214
4884
  * @param {number | null} [arg0]
4215
4885
  */
@@ -4236,6 +4906,46 @@ export class PointMaterial {
4236
4906
  set size(arg0) {
4237
4907
  wasm.__wbg_set_pointmaterial_size(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4238
4908
  }
4909
+ /**
4910
+ * Distance between repeated anchors along a line, in screen pixels, for
4911
+ * `vector-tile` and `geojson` sources alike. Resolved per anchor as the
4912
+ * camera moves: anchors thin out as it pulls back and fill in as it
4913
+ * closes, never moving, so the gap on screen stays between one and two
4914
+ * times `spacing` across a pitched view. As MapLibre does with
4915
+ * `symbol-spacing`, a sprite wider than three quarters of the spacing
4916
+ * spreads its repeats to its width plus a quarter of the spacing, and a
4917
+ * vector tile places anchors only inside its own bounds. Only used by
4918
+ * `placement: "line"`. Defaults to `250.0`.
4919
+ * @param {number | null} [arg0]
4920
+ */
4921
+ set spacing(arg0) {
4922
+ wasm.__wbg_set_pointmaterial_spacing(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4923
+ }
4924
+ /**
4925
+ * Frame `translate` is measured in: `"map"` (default) turns it with the
4926
+ * camera heading so +x points east and +y south; `"viewport"` keeps it on
4927
+ * the screen axes. MapLibre's `icon-translate-anchor`.
4928
+ * @param {string | null} [arg0]
4929
+ */
4930
+ set translateAnchor(arg0) {
4931
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
4932
+ var len0 = WASM_VECTOR_LEN;
4933
+ wasm.__wbg_set_pointmaterial_translateAnchor(this.__wbg_ptr, ptr0, len0);
4934
+ }
4935
+ /**
4936
+ * Screen-pixel shift of the drawn quad, x right and y down, applied after
4937
+ * projection so it stays the same number of pixels at any distance, as
4938
+ * MapLibre's `icon-translate`. Defaults to `(0, 0)`.
4939
+ * @param {Vec2 | null} [arg0]
4940
+ */
4941
+ set translate(arg0) {
4942
+ let ptr0 = 0;
4943
+ if (!isLikeNone(arg0)) {
4944
+ _assertClass(arg0, Vec2);
4945
+ ptr0 = arg0.__destroy_into_raw();
4946
+ }
4947
+ wasm.__wbg_set_pointmaterial_translate(this.__wbg_ptr, ptr0);
4948
+ }
4239
4949
  /**
4240
4950
  * @param {boolean | null} [arg0]
4241
4951
  */
@@ -4531,13 +5241,6 @@ export class PolygonMaterial {
4531
5241
  const ret = wasm.__wbg_get_polygonmaterial___internal__(this.__wbg_ptr);
4532
5242
  return ret === 0 ? undefined : PolygonInternalMaterial.__wrap(ret);
4533
5243
  }
4534
- /**
4535
- * @returns {boolean | undefined}
4536
- */
4537
- get applyWaterNormal() {
4538
- const ret = wasm.__wbg_get_polygonmaterial_applyWaterNormal(this.__wbg_ptr);
4539
- return ret === 0xFFFFFF ? undefined : ret !== 0;
4540
- }
4541
5244
  /**
4542
5245
  * @returns {boolean | undefined}
4543
5246
  */
@@ -4559,6 +5262,14 @@ export class PolygonMaterial {
4559
5262
  const ret = wasm.__wbg_get_polygonmaterial_color(this.__wbg_ptr);
4560
5263
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4561
5264
  }
5265
+ /**
5266
+ * Write depth before blending so a transparent layer blends only its nearest surface.
5267
+ * @returns {boolean | undefined}
5268
+ */
5269
+ get depthPrePass() {
5270
+ const ret = wasm.__wbg_get_polygonmaterial_depthPrePass(this.__wbg_ptr);
5271
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
5272
+ }
4562
5273
  /**
4563
5274
  * IDs of selective effects to apply (e.g., "bloom", "outline")
4564
5275
  * @returns {string[] | undefined}
@@ -4595,6 +5306,15 @@ export class PolygonMaterial {
4595
5306
  const ret = wasm.__wbg_get_polygonmaterial_extrudedHeight(this.__wbg_ptr);
4596
5307
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4597
5308
  }
5309
+ /**
5310
+ * Speed in m/s of the current carrying the water's waves
5311
+ * along `waveDirection`. Default: 0.
5312
+ * @returns {number | undefined}
5313
+ */
5314
+ get flowSpeed() {
5315
+ const ret = wasm.__wbg_get_polygonmaterial_flowSpeed(this.__wbg_ptr);
5316
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
5317
+ }
4598
5318
  /**
4599
5319
  * @returns {number | undefined}
4600
5320
  */
@@ -4692,6 +5412,15 @@ export class PolygonMaterial {
4692
5412
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4693
5413
  }
4694
5414
  /**
5415
+ * Shade the extruded sides with the surface normal instead of their own.
5416
+ * @returns {boolean | undefined}
5417
+ */
5418
+ get shadeSidesAsSurface() {
5419
+ const ret = wasm.__wbg_get_polygonmaterial_shadeSidesAsSurface(this.__wbg_ptr);
5420
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
5421
+ }
5422
+ /**
5423
+ * Phong shininess of the non-water `specular` highlight.
4695
5424
  * @returns {number | undefined}
4696
5425
  */
4697
5426
  get shininess() {
@@ -4714,6 +5443,7 @@ export class PolygonMaterial {
4714
5443
  }
4715
5444
  /**
4716
5445
  * Enabling this value allows using `shininess` and `specular_strength`.
5446
+ * Has no effect on water.
4717
5447
  * @returns {boolean | undefined}
4718
5448
  */
4719
5449
  get specular() {
@@ -4750,28 +5480,54 @@ export class PolygonMaterial {
4750
5480
  return ret === 0xFFFFFF ? undefined : ret !== 0;
4751
5481
  }
4752
5482
  /**
4753
- * Scale water normal. Decreasing this value will make the water surface rough.
4754
- * @returns {number | undefined}
5483
+ * Extent of the water body, which bounds how far the wind blows over it
5484
+ * and so how large its waves grow: `"ocean"` (the default; open sea),
5485
+ * `"large"` (a bay or a large lake, about 20 km), `"medium"` (a lake or a
5486
+ * wide river, about 2 km) or `"small"` (a river or a pond, about 200 m).
5487
+ * @returns {string | undefined}
4755
5488
  */
4756
- get waterScaleNormal() {
4757
- const ret = wasm.__wbg_get_polygonmaterial_waterScaleNormal(this.__wbg_ptr);
4758
- return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
5489
+ get waterScale() {
5490
+ const ret = wasm.__wbg_get_polygonmaterial_waterScale(this.__wbg_ptr);
5491
+ let v1;
5492
+ if (ret[0] !== 0) {
5493
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
5494
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
5495
+ }
5496
+ return v1;
4759
5497
  }
4760
5498
  /**
4761
- * Water wave speed.
4762
- * @returns {number | undefined}
5499
+ * Apply a water material on the polygon. It might slow down the loading of the mesh.
5500
+ * @returns {boolean | undefined}
4763
5501
  */
4764
- get waterSpeed() {
4765
- const ret = wasm.__wbg_get_polygonmaterial_waterSpeed(this.__wbg_ptr);
5502
+ get water() {
5503
+ const ret = wasm.__wbg_get_polygonmaterial_water(this.__wbg_ptr);
5504
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
5505
+ }
5506
+ /**
5507
+ * Where the water's waves travel, in degrees clockwise from north.
5508
+ * Default: 0.
5509
+ * @returns {number | undefined}
5510
+ */
5511
+ get waveDirection() {
5512
+ const ret = wasm.__wbg_get_polygonmaterial_waveDirection(this.__wbg_ptr);
4766
5513
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4767
5514
  }
4768
5515
  /**
4769
- * Apply a water material on the polygon. It might slow down the loading of the mesh.
4770
- * @returns {boolean | undefined}
5516
+ * Scales the water's wave slopes; 0 is a flat mirror.
5517
+ * @returns {number | undefined}
4771
5518
  */
4772
- get water() {
4773
- const ret = wasm.__wbg_get_polygonmaterial_water(this.__wbg_ptr);
4774
- return ret === 0xFFFFFF ? undefined : ret !== 0;
5519
+ get waveExaggeration() {
5520
+ const ret = wasm.__wbg_get_polygonmaterial_waveExaggeration(this.__wbg_ptr);
5521
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
5522
+ }
5523
+ /**
5524
+ * Sets the size, steepness and speed of the water's waves: about 1 is a
5525
+ * calm ripple, 5 moderate and 20 a storm. Default: 5.
5526
+ * @returns {number | undefined}
5527
+ */
5528
+ get waveStrength() {
5529
+ const ret = wasm.__wbg_get_polygonmaterial_waveStrength(this.__wbg_ptr);
5530
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
4775
5531
  }
4776
5532
  /**
4777
5533
  * @returns {boolean | undefined}
@@ -4816,12 +5572,6 @@ export class PolygonMaterial {
4816
5572
  }
4817
5573
  wasm.__wbg_set_polygonmaterial___internal__(this.__wbg_ptr, ptr0);
4818
5574
  }
4819
- /**
4820
- * @param {boolean | null} [arg0]
4821
- */
4822
- set applyWaterNormal(arg0) {
4823
- wasm.__wbg_set_polygonmaterial_applyWaterNormal(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
4824
- }
4825
5575
  /**
4826
5576
  * @param {boolean | null} [arg0]
4827
5577
  */
@@ -4840,6 +5590,13 @@ export class PolygonMaterial {
4840
5590
  set color(arg0) {
4841
5591
  wasm.__wbg_set_polygonmaterial_color(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : (arg0) >>> 0);
4842
5592
  }
5593
+ /**
5594
+ * Write depth before blending so a transparent layer blends only its nearest surface.
5595
+ * @param {boolean | null} [arg0]
5596
+ */
5597
+ set depthPrePass(arg0) {
5598
+ wasm.__wbg_set_polygonmaterial_depthPrePass(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
5599
+ }
4843
5600
  /**
4844
5601
  * IDs of selective effects to apply (e.g., "bloom", "outline")
4845
5602
  * @param {string[] | null} [arg0]
@@ -4869,6 +5626,14 @@ export class PolygonMaterial {
4869
5626
  set extrudedHeight(arg0) {
4870
5627
  wasm.__wbg_set_polygonmaterial_extrudedHeight(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4871
5628
  }
5629
+ /**
5630
+ * Speed in m/s of the current carrying the water's waves
5631
+ * along `waveDirection`. Default: 0.
5632
+ * @param {number | null} [arg0]
5633
+ */
5634
+ set flowSpeed(arg0) {
5635
+ wasm.__wbg_set_polygonmaterial_flowSpeed(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
5636
+ }
4872
5637
  /**
4873
5638
  * @param {number | null} [arg0]
4874
5639
  */
@@ -4954,6 +5719,14 @@ export class PolygonMaterial {
4954
5719
  wasm.__wbg_set_polygonmaterial_roughness(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
4955
5720
  }
4956
5721
  /**
5722
+ * Shade the extruded sides with the surface normal instead of their own.
5723
+ * @param {boolean | null} [arg0]
5724
+ */
5725
+ set shadeSidesAsSurface(arg0) {
5726
+ wasm.__wbg_set_polygonmaterial_shadeSidesAsSurface(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
5727
+ }
5728
+ /**
5729
+ * Phong shininess of the non-water `specular` highlight.
4957
5730
  * @param {number | null} [arg0]
4958
5731
  */
4959
5732
  set shininess(arg0) {
@@ -4973,6 +5746,7 @@ export class PolygonMaterial {
4973
5746
  }
4974
5747
  /**
4975
5748
  * Enabling this value allows using `shininess` and `specular_strength`.
5749
+ * Has no effect on water.
4976
5750
  * @param {boolean | null} [arg0]
4977
5751
  */
4978
5752
  set specular(arg0) {
@@ -5005,25 +5779,46 @@ export class PolygonMaterial {
5005
5779
  wasm.__wbg_set_polygonmaterial_transparent(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
5006
5780
  }
5007
5781
  /**
5008
- * Scale water normal. Decreasing this value will make the water surface rough.
5782
+ * Extent of the water body, which bounds how far the wind blows over it
5783
+ * and so how large its waves grow: `"ocean"` (the default; open sea),
5784
+ * `"large"` (a bay or a large lake, about 20 km), `"medium"` (a lake or a
5785
+ * wide river, about 2 km) or `"small"` (a river or a pond, about 200 m).
5786
+ * @param {string | null} [arg0]
5787
+ */
5788
+ set waterScale(arg0) {
5789
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
5790
+ var len0 = WASM_VECTOR_LEN;
5791
+ wasm.__wbg_set_polygonmaterial_waterScale(this.__wbg_ptr, ptr0, len0);
5792
+ }
5793
+ /**
5794
+ * Apply a water material on the polygon. It might slow down the loading of the mesh.
5795
+ * @param {boolean | null} [arg0]
5796
+ */
5797
+ set water(arg0) {
5798
+ wasm.__wbg_set_polygonmaterial_water(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
5799
+ }
5800
+ /**
5801
+ * Where the water's waves travel, in degrees clockwise from north.
5802
+ * Default: 0.
5009
5803
  * @param {number | null} [arg0]
5010
5804
  */
5011
- set waterScaleNormal(arg0) {
5012
- wasm.__wbg_set_polygonmaterial_waterScaleNormal(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
5805
+ set waveDirection(arg0) {
5806
+ wasm.__wbg_set_polygonmaterial_waveDirection(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
5013
5807
  }
5014
5808
  /**
5015
- * Water wave speed.
5809
+ * Scales the water's wave slopes; 0 is a flat mirror.
5016
5810
  * @param {number | null} [arg0]
5017
5811
  */
5018
- set waterSpeed(arg0) {
5019
- wasm.__wbg_set_polygonmaterial_waterSpeed(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
5812
+ set waveExaggeration(arg0) {
5813
+ wasm.__wbg_set_polygonmaterial_waveExaggeration(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
5020
5814
  }
5021
5815
  /**
5022
- * Apply a water material on the polygon. It might slow down the loading of the mesh.
5023
- * @param {boolean | null} [arg0]
5816
+ * Sets the size, steepness and speed of the water's waves: about 1 is a
5817
+ * calm ripple, 5 moderate and 20 a storm. Default: 5.
5818
+ * @param {number | null} [arg0]
5024
5819
  */
5025
- set water(arg0) {
5026
- wasm.__wbg_set_polygonmaterial_water(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
5820
+ set waveStrength(arg0) {
5821
+ wasm.__wbg_set_polygonmaterial_waveStrength(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
5027
5822
  }
5028
5823
  /**
5029
5824
  * @param {boolean | null} [arg0]
@@ -5104,15 +5899,15 @@ export class PolylineGeometry {
5104
5899
  /**
5105
5900
  * @returns {Float32Array | undefined}
5106
5901
  */
5107
- end_normal_and_texture_coordinate_normalization_x() {
5108
- const ret = wasm.polylinegeometry_end_normal_and_texture_coordinate_normalization_x(this.__wbg_ptr);
5902
+ end_normal_and_segment_length() {
5903
+ const ret = wasm.polylinegeometry_end_normal_and_segment_length(this.__wbg_ptr);
5109
5904
  return ret;
5110
5905
  }
5111
5906
  /**
5112
5907
  * @returns {number | undefined}
5113
5908
  */
5114
- end_normal_and_texture_coordinate_normalization_x_size() {
5115
- const ret = wasm.polylinegeometry_end_normal_and_texture_coordinate_normalization_x_size(this.__wbg_ptr);
5909
+ end_normal_and_segment_length_size() {
5910
+ const ret = wasm.polylinegeometry_end_normal_and_segment_length_size(this.__wbg_ptr);
5116
5911
  return ret === 0xFFFFFF ? undefined : ret;
5117
5912
  }
5118
5913
  /**
@@ -5136,6 +5931,20 @@ export class PolylineGeometry {
5136
5931
  const ret = wasm.polylinegeometry_indices(this.__wbg_ptr);
5137
5932
  return ret;
5138
5933
  }
5934
+ /**
5935
+ * @returns {Float32Array | undefined}
5936
+ */
5937
+ line_distance_and_ends() {
5938
+ const ret = wasm.polylinegeometry_line_distance_and_ends(this.__wbg_ptr);
5939
+ return ret;
5940
+ }
5941
+ /**
5942
+ * @returns {Float32Array | undefined}
5943
+ */
5944
+ line_segments() {
5945
+ const ret = wasm.polylinegeometry_line_segments(this.__wbg_ptr);
5946
+ return ret;
5947
+ }
5139
5948
  /**
5140
5949
  * @returns {Float32Array}
5141
5950
  */
@@ -5181,15 +5990,15 @@ export class PolylineGeometry {
5181
5990
  /**
5182
5991
  * @returns {Float32Array}
5183
5992
  */
5184
- right_normal_and_texture_coordinate_normalization_y() {
5185
- const ret = wasm.polylinegeometry_right_normal_and_texture_coordinate_normalization_y(this.__wbg_ptr);
5993
+ right_normal_and_line_length() {
5994
+ const ret = wasm.polylinegeometry_right_normal_and_line_length(this.__wbg_ptr);
5186
5995
  return ret;
5187
5996
  }
5188
5997
  /**
5189
5998
  * @returns {number}
5190
5999
  */
5191
- right_normal_and_texture_coordinate_normalization_y_size() {
5192
- const ret = wasm.polylinegeometry_right_normal_and_texture_coordinate_normalization_y_size(this.__wbg_ptr);
6000
+ right_normal_and_line_length_size() {
6001
+ const ret = wasm.polylinegeometry_right_normal_and_line_length_size(this.__wbg_ptr);
5193
6002
  return ret;
5194
6003
  }
5195
6004
  /**
@@ -5230,15 +6039,15 @@ export class PolylineGeometry {
5230
6039
  /**
5231
6040
  * @returns {Float32Array | undefined}
5232
6041
  */
5233
- start_normals() {
5234
- const ret = wasm.polylinegeometry_start_normals(this.__wbg_ptr);
6042
+ start_normal_and_length_high() {
6043
+ const ret = wasm.polylinegeometry_start_normal_and_length_high(this.__wbg_ptr);
5235
6044
  return ret;
5236
6045
  }
5237
6046
  /**
5238
6047
  * @returns {number | undefined}
5239
6048
  */
5240
- start_normals_size() {
5241
- const ret = wasm.polylinegeometry_start_normals_size(this.__wbg_ptr);
6049
+ start_normal_and_length_high_size() {
6050
+ const ret = wasm.polylinegeometry_start_normal_and_length_high_size(this.__wbg_ptr);
5242
6051
  return ret === 0xFFFFFF ? undefined : ret;
5243
6052
  }
5244
6053
  /**
@@ -5321,15 +6130,15 @@ export class PolylineGeometryAttributes {
5321
6130
  /**
5322
6131
  * @returns {Float32Array | undefined}
5323
6132
  */
5324
- transfer_end_normal_and_texture_coordinate_normalization_x() {
5325
- const ret = wasm.polylinegeometryattributes_transfer_end_normal_and_texture_coordinate_normalization_x(this.__wbg_ptr);
6133
+ transfer_end_normal_and_segment_length() {
6134
+ const ret = wasm.polylinegeometryattributes_transfer_end_normal_and_segment_length(this.__wbg_ptr);
5326
6135
  return ret;
5327
6136
  }
5328
6137
  /**
5329
6138
  * @returns {number | undefined}
5330
6139
  */
5331
- transfer_end_normal_and_texture_coordinate_normalization_x_size() {
5332
- const ret = wasm.polylinegeometryattributes_transfer_end_normal_and_texture_coordinate_normalization_x_size(this.__wbg_ptr);
6140
+ transfer_end_normal_and_segment_length_size() {
6141
+ const ret = wasm.polylinegeometryattributes_transfer_end_normal_and_segment_length_size(this.__wbg_ptr);
5333
6142
  return ret === 0xFFFFFF ? undefined : ret;
5334
6143
  }
5335
6144
  /**
@@ -5346,6 +6155,20 @@ export class PolylineGeometryAttributes {
5346
6155
  const ret = wasm.polylinegeometryattributes_transfer_forward_offset_size(this.__wbg_ptr);
5347
6156
  return ret === 0xFFFFFF ? undefined : ret;
5348
6157
  }
6158
+ /**
6159
+ * @returns {Float32Array | undefined}
6160
+ */
6161
+ transfer_line_distance_and_ends() {
6162
+ const ret = wasm.polylinegeometryattributes_transfer_line_distance_and_ends(this.__wbg_ptr);
6163
+ return ret;
6164
+ }
6165
+ /**
6166
+ * @returns {Float32Array | undefined}
6167
+ */
6168
+ transfer_line_segments() {
6169
+ const ret = wasm.polylinegeometryattributes_transfer_line_segments(this.__wbg_ptr);
6170
+ return ret;
6171
+ }
5349
6172
  /**
5350
6173
  * @returns {Float32Array}
5351
6174
  */
@@ -5391,15 +6214,15 @@ export class PolylineGeometryAttributes {
5391
6214
  /**
5392
6215
  * @returns {Float32Array}
5393
6216
  */
5394
- transfer_right_normal_and_texture_coordinate_normalization_y() {
5395
- const ret = wasm.polylinegeometryattributes_transfer_right_normal_and_texture_coordinate_normalization_y(this.__wbg_ptr);
6217
+ transfer_right_normal_and_line_length() {
6218
+ const ret = wasm.polylinegeometryattributes_transfer_right_normal_and_line_length(this.__wbg_ptr);
5396
6219
  return ret;
5397
6220
  }
5398
6221
  /**
5399
6222
  * @returns {number}
5400
6223
  */
5401
- transfer_right_normal_and_texture_coordinate_normalization_y_size() {
5402
- const ret = wasm.polylinegeometryattributes_transfer_right_normal_and_texture_coordinate_normalization_y_size(this.__wbg_ptr);
6224
+ transfer_right_normal_and_line_length_size() {
6225
+ const ret = wasm.polylinegeometryattributes_transfer_right_normal_and_line_length_size(this.__wbg_ptr);
5403
6226
  return ret;
5404
6227
  }
5405
6228
  /**
@@ -5440,15 +6263,15 @@ export class PolylineGeometryAttributes {
5440
6263
  /**
5441
6264
  * @returns {Float32Array | undefined}
5442
6265
  */
5443
- transfer_start_normals() {
5444
- const ret = wasm.polylinegeometryattributes_transfer_start_normals(this.__wbg_ptr);
6266
+ transfer_start_normal_and_length_high() {
6267
+ const ret = wasm.polylinegeometryattributes_transfer_start_normal_and_length_high(this.__wbg_ptr);
5445
6268
  return ret;
5446
6269
  }
5447
6270
  /**
5448
6271
  * @returns {number | undefined}
5449
6272
  */
5450
- transfer_start_normals_size() {
5451
- const ret = wasm.polylinegeometryattributes_transfer_start_normals_size(this.__wbg_ptr);
6273
+ transfer_start_normal_and_length_high_size() {
6274
+ const ret = wasm.polylinegeometryattributes_transfer_start_normal_and_length_high_size(this.__wbg_ptr);
5452
6275
  return ret === 0xFFFFFF ? undefined : ret;
5453
6276
  }
5454
6277
  /**
@@ -5516,6 +6339,23 @@ export class PolylineMaterial {
5516
6339
  const ret = wasm.__wbg_get_polylinematerial___internal__(this.__wbg_ptr);
5517
6340
  return ret === 0 ? undefined : PolylineInternalMaterial.__wrap(ret);
5518
6341
  }
6342
+ /**
6343
+ * Shape of the ends of the line and of its dashes: `"butt"` (the
6344
+ * default), `"round"` or `"square"`. `"round"` adds a half circle one
6345
+ * half line width in radius beyond both ends of the line and of every
6346
+ * dash, so a zero-length dash becomes a dot. `"square"` extends the ends
6347
+ * of the line by half a line width and leaves the dashes' ends square.
6348
+ * @returns {string | undefined}
6349
+ */
6350
+ get cap() {
6351
+ const ret = wasm.__wbg_get_polylinematerial_cap(this.__wbg_ptr);
6352
+ let v1;
6353
+ if (ret[0] !== 0) {
6354
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
6355
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
6356
+ }
6357
+ return v1;
6358
+ }
5519
6359
  /**
5520
6360
  * @returns {boolean | undefined}
5521
6361
  */
@@ -5537,6 +6377,22 @@ export class PolylineMaterial {
5537
6377
  const ret = wasm.__wbg_get_polylinematerial_color(this.__wbg_ptr);
5538
6378
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
5539
6379
  }
6380
+ /**
6381
+ * Alternating dash and gap lengths, in multiples of the line width,
6382
+ * repeated along the line. The pattern's period is the sum of the
6383
+ * entries, so an odd-length array ends in a dash that runs into the first
6384
+ * one. An empty array draws a solid line, which is the default.
6385
+ * @returns {Float32Array | undefined}
6386
+ */
6387
+ get dashArray() {
6388
+ const ret = wasm.__wbg_get_polylinematerial_dashArray(this.__wbg_ptr);
6389
+ let v1;
6390
+ if (ret[0] !== 0) {
6391
+ v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
6392
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
6393
+ }
6394
+ return v1;
6395
+ }
5540
6396
  /**
5541
6397
  * Enable writing to depth buffer
5542
6398
  * @returns {boolean | undefined}
@@ -5700,6 +6556,19 @@ export class PolylineMaterial {
5700
6556
  }
5701
6557
  wasm.__wbg_set_polylinematerial___internal__(this.__wbg_ptr, ptr0);
5702
6558
  }
6559
+ /**
6560
+ * Shape of the ends of the line and of its dashes: `"butt"` (the
6561
+ * default), `"round"` or `"square"`. `"round"` adds a half circle one
6562
+ * half line width in radius beyond both ends of the line and of every
6563
+ * dash, so a zero-length dash becomes a dot. `"square"` extends the ends
6564
+ * of the line by half a line width and leaves the dashes' ends square.
6565
+ * @param {string | null} [arg0]
6566
+ */
6567
+ set cap(arg0) {
6568
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6569
+ var len0 = WASM_VECTOR_LEN;
6570
+ wasm.__wbg_set_polylinematerial_cap(this.__wbg_ptr, ptr0, len0);
6571
+ }
5703
6572
  /**
5704
6573
  * @param {boolean | null} [arg0]
5705
6574
  */
@@ -5718,6 +6587,18 @@ export class PolylineMaterial {
5718
6587
  set color(arg0) {
5719
6588
  wasm.__wbg_set_polylinematerial_color(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : (arg0) >>> 0);
5720
6589
  }
6590
+ /**
6591
+ * Alternating dash and gap lengths, in multiples of the line width,
6592
+ * repeated along the line. The pattern's period is the sum of the
6593
+ * entries, so an odd-length array ends in a dash that runs into the first
6594
+ * one. An empty array draws a solid line, which is the default.
6595
+ * @param {Float32Array | null} [arg0]
6596
+ */
6597
+ set dashArray(arg0) {
6598
+ var ptr0 = isLikeNone(arg0) ? 0 : passArrayF32ToWasm0(arg0, wasm.__wbindgen_malloc);
6599
+ var len0 = WASM_VECTOR_LEN;
6600
+ wasm.__wbg_set_polylinematerial_dashArray(this.__wbg_ptr, ptr0, len0);
6601
+ }
5721
6602
  /**
5722
6603
  * Enable writing to depth buffer
5723
6604
  * @param {boolean | null} [arg0]
@@ -5919,6 +6800,17 @@ export class RasterTileInternalMaterial {
5919
6800
  const ret = wasm.__wbg_get_rastertileinternalmaterial_castShadow(this.__wbg_ptr);
5920
6801
  return ret === 0xFFFFFF ? undefined : ret !== 0;
5921
6802
  }
6803
+ /**
6804
+ * Per-slot layer IDs used to look up each layer's colorMap atlas row; an
6805
+ * empty string for slots without an elevation heatmap.
6806
+ * @returns {string[]}
6807
+ */
6808
+ get colorMapLayerIds() {
6809
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_colorMapLayerIds(this.__wbg_ptr);
6810
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
6811
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
6812
+ return v1;
6813
+ }
5922
6814
  /**
5923
6815
  * @returns {Uint32Array}
5924
6816
  */
@@ -5929,73 +6821,115 @@ export class RasterTileInternalMaterial {
5929
6821
  return v1;
5930
6822
  }
5931
6823
  /**
5932
- * @returns {number}
6824
+ * @returns {Float64Array}
5933
6825
  */
5934
- get elevationBScaler() {
5935
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationBScaler(this.__wbg_ptr);
5936
- return ret;
6826
+ get elevationBScalers() {
6827
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationBScalers(this.__wbg_ptr);
6828
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6829
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6830
+ return v1;
5937
6831
  }
5938
6832
  /**
5939
- * @returns {number}
6833
+ * @returns {Float64Array}
5940
6834
  */
5941
- get elevationBoundary() {
5942
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationBoundary(this.__wbg_ptr);
5943
- return ret;
6835
+ get elevationBoundaries() {
6836
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationBoundaries(this.__wbg_ptr);
6837
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6838
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6839
+ return v1;
5944
6840
  }
5945
6841
  /**
5946
- * @returns {number}
6842
+ * @returns {Float64Array}
5947
6843
  */
5948
- get elevationEpsilon() {
5949
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationEpsilon(this.__wbg_ptr);
5950
- return ret;
6844
+ get elevationEpsilons() {
6845
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationEpsilons(this.__wbg_ptr);
6846
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6847
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6848
+ return v1;
5951
6849
  }
5952
6850
  /**
5953
- * @returns {number}
6851
+ * @returns {Float64Array}
5954
6852
  */
5955
- get elevationGScaler() {
5956
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationGScaler(this.__wbg_ptr);
5957
- return ret;
6853
+ get elevationGScalers() {
6854
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationGScalers(this.__wbg_ptr);
6855
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6856
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6857
+ return v1;
5958
6858
  }
5959
6859
  /**
5960
- * @returns {number}
6860
+ * Per-layer filter modes: "linear" or "nearest"
6861
+ * @returns {string[]}
5961
6862
  */
5962
- get elevationMaxHeight() {
5963
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationMaxHeight(this.__wbg_ptr);
5964
- return ret;
6863
+ get elevationHeatmapFilters() {
6864
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationHeatmapFilters(this.__wbg_ptr);
6865
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
6866
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
6867
+ return v1;
5965
6868
  }
5966
6869
  /**
5967
- * @returns {number}
6870
+ * Per-layer maximum heights for elevation normalization
6871
+ * @returns {Float64Array}
5968
6872
  */
5969
- get elevationMaxOffset() {
5970
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationMaxOffset(this.__wbg_ptr);
5971
- return ret;
6873
+ get elevationMaxHeights() {
6874
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationMaxHeights(this.__wbg_ptr);
6875
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6876
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6877
+ return v1;
5972
6878
  }
5973
6879
  /**
5974
- * @returns {number}
6880
+ * @returns {Float64Array}
5975
6881
  */
5976
- get elevationMinHeight() {
5977
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationMinHeight(this.__wbg_ptr);
5978
- return ret;
6882
+ get elevationMaxOffsets() {
6883
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationMaxOffsets(this.__wbg_ptr);
6884
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6885
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6886
+ return v1;
5979
6887
  }
5980
6888
  /**
5981
- * @returns {number}
6889
+ * Per-layer minimum heights for elevation normalization
6890
+ * @returns {Float64Array}
5982
6891
  */
5983
- get elevationMinOffset() {
5984
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationMinOffset(this.__wbg_ptr);
5985
- return ret;
6892
+ get elevationMinHeights() {
6893
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationMinHeights(this.__wbg_ptr);
6894
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6895
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6896
+ return v1;
5986
6897
  }
5987
6898
  /**
5988
- * @returns {number}
6899
+ * @returns {Float64Array}
5989
6900
  */
5990
- get elevationOffset() {
5991
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationOffset(this.__wbg_ptr);
5992
- return ret;
6901
+ get elevationMinOffsets() {
6902
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationMinOffsets(this.__wbg_ptr);
6903
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6904
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6905
+ return v1;
6906
+ }
6907
+ /**
6908
+ * @returns {Float64Array}
6909
+ */
6910
+ get elevationOffsets() {
6911
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationOffsets(this.__wbg_ptr);
6912
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6913
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6914
+ return v1;
5993
6915
  }
5994
6916
  /**
6917
+ * Per-layer DEM decoder parameters
6918
+ * @returns {Float64Array}
6919
+ */
6920
+ get elevationRScalers() {
6921
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationRScalers(this.__wbg_ptr);
6922
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
6923
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
6924
+ return v1;
6925
+ }
6926
+ /**
6927
+ * Speed in m/s of the current carrying the waves on the watermask's water
6928
+ * along `waveDirection`.
5995
6929
  * @returns {number}
5996
6930
  */
5997
- get elevationRScaler() {
5998
- const ret = wasm.__wbg_get_rastertileinternalmaterial_elevationRScaler(this.__wbg_ptr);
6931
+ get flowSpeed() {
6932
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_flowSpeed(this.__wbg_ptr);
5999
6933
  return ret;
6000
6934
  }
6001
6935
  /**
@@ -6099,18 +7033,24 @@ export class RasterTileInternalMaterial {
6099
7033
  return ret === 0xFFFFFF ? undefined : ret !== 0;
6100
7034
  }
6101
7035
  /**
6102
- * @returns {number}
7036
+ * Per-layer logarithmic boundaries
7037
+ * @returns {Float64Array}
6103
7038
  */
6104
- get logBoundary() {
6105
- const ret = wasm.__wbg_get_rastertileinternalmaterial_logBoundary(this.__wbg_ptr);
6106
- return ret;
7039
+ get logBoundaries() {
7040
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_logBoundaries(this.__wbg_ptr);
7041
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
7042
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
7043
+ return v1;
6107
7044
  }
6108
7045
  /**
6109
- * @returns {boolean}
7046
+ * Per-layer logarithmic scaling flags
7047
+ * @returns {Uint8Array}
6110
7048
  */
6111
- get logarithmic() {
6112
- const ret = wasm.__wbg_get_rastertileinternalmaterial_logarithmic(this.__wbg_ptr);
6113
- return ret !== 0;
7049
+ get logarithmics() {
7050
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_logarithmics(this.__wbg_ptr);
7051
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
7052
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
7053
+ return v1;
6114
7054
  }
6115
7055
  /**
6116
7056
  * @returns {Float32Array}
@@ -6153,6 +7093,41 @@ export class RasterTileInternalMaterial {
6153
7093
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
6154
7094
  return v1;
6155
7095
  }
7096
+ /**
7097
+ * Body color of the watermask's water from the terrain layer; `None`
7098
+ * keeps the imagery or globe color.
7099
+ * @returns {number | undefined}
7100
+ */
7101
+ get waterMaskColor() {
7102
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_waterMaskColor(this.__wbg_ptr);
7103
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
7104
+ }
7105
+ /**
7106
+ * Where the waves on the watermask's water travel, in degrees clockwise
7107
+ * from north.
7108
+ * @returns {number}
7109
+ */
7110
+ get waveDirection() {
7111
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_waveDirection(this.__wbg_ptr);
7112
+ return ret;
7113
+ }
7114
+ /**
7115
+ * Scales the wave slopes on the watermask's water; 0 is a flat mirror.
7116
+ * @returns {number}
7117
+ */
7118
+ get waveExaggeration() {
7119
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_waveExaggeration(this.__wbg_ptr);
7120
+ return ret;
7121
+ }
7122
+ /**
7123
+ * Sets the size, slope and speed of the waves on the watermask's water, in
7124
+ * m/s.
7125
+ * @returns {number}
7126
+ */
7127
+ get waveStrength() {
7128
+ const ret = wasm.__wbg_get_rastertileinternalmaterial_waveStrength(this.__wbg_ptr);
7129
+ return ret;
7130
+ }
6156
7131
  /**
6157
7132
  * @returns {any[]}
6158
7133
  */
@@ -6180,6 +7155,16 @@ export class RasterTileInternalMaterial {
6180
7155
  set castShadow(arg0) {
6181
7156
  wasm.__wbg_set_rastertileinternalmaterial_castShadow(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
6182
7157
  }
7158
+ /**
7159
+ * Per-slot layer IDs used to look up each layer's colorMap atlas row; an
7160
+ * empty string for slots without an elevation heatmap.
7161
+ * @param {string[]} arg0
7162
+ */
7163
+ set colorMapLayerIds(arg0) {
7164
+ const ptr0 = passArrayJsValueToWasm0(arg0, wasm.__wbindgen_malloc);
7165
+ const len0 = WASM_VECTOR_LEN;
7166
+ wasm.__wbg_set_rastertileinternalmaterial_colorMapLayerIds(this.__wbg_ptr, ptr0, len0);
7167
+ }
6183
7168
  /**
6184
7169
  * @param {Uint32Array} arg0
6185
7170
  */
@@ -6189,64 +7174,104 @@ export class RasterTileInternalMaterial {
6189
7174
  wasm.__wbg_set_rastertileinternalmaterial_colors(this.__wbg_ptr, ptr0, len0);
6190
7175
  }
6191
7176
  /**
6192
- * @param {number} arg0
7177
+ * @param {Float64Array} arg0
6193
7178
  */
6194
- set elevationBScaler(arg0) {
6195
- wasm.__wbg_set_rastertileinternalmaterial_elevationBScaler(this.__wbg_ptr, arg0);
7179
+ set elevationBScalers(arg0) {
7180
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7181
+ const len0 = WASM_VECTOR_LEN;
7182
+ wasm.__wbg_set_rastertileinternalmaterial_elevationBScalers(this.__wbg_ptr, ptr0, len0);
6196
7183
  }
6197
7184
  /**
6198
- * @param {number} arg0
7185
+ * @param {Float64Array} arg0
6199
7186
  */
6200
- set elevationBoundary(arg0) {
6201
- wasm.__wbg_set_rastertileinternalmaterial_elevationBoundary(this.__wbg_ptr, arg0);
7187
+ set elevationBoundaries(arg0) {
7188
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7189
+ const len0 = WASM_VECTOR_LEN;
7190
+ wasm.__wbg_set_rastertileinternalmaterial_elevationBoundaries(this.__wbg_ptr, ptr0, len0);
6202
7191
  }
6203
7192
  /**
6204
- * @param {number} arg0
7193
+ * @param {Float64Array} arg0
6205
7194
  */
6206
- set elevationEpsilon(arg0) {
6207
- wasm.__wbg_set_rastertileinternalmaterial_elevationEpsilon(this.__wbg_ptr, arg0);
7195
+ set elevationEpsilons(arg0) {
7196
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7197
+ const len0 = WASM_VECTOR_LEN;
7198
+ wasm.__wbg_set_rastertileinternalmaterial_elevationEpsilons(this.__wbg_ptr, ptr0, len0);
6208
7199
  }
6209
7200
  /**
6210
- * @param {number} arg0
7201
+ * @param {Float64Array} arg0
6211
7202
  */
6212
- set elevationGScaler(arg0) {
6213
- wasm.__wbg_set_rastertileinternalmaterial_elevationGScaler(this.__wbg_ptr, arg0);
7203
+ set elevationGScalers(arg0) {
7204
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7205
+ const len0 = WASM_VECTOR_LEN;
7206
+ wasm.__wbg_set_rastertileinternalmaterial_elevationGScalers(this.__wbg_ptr, ptr0, len0);
6214
7207
  }
6215
7208
  /**
6216
- * @param {number} arg0
7209
+ * Per-layer filter modes: "linear" or "nearest"
7210
+ * @param {string[]} arg0
6217
7211
  */
6218
- set elevationMaxHeight(arg0) {
6219
- wasm.__wbg_set_rastertileinternalmaterial_elevationMaxHeight(this.__wbg_ptr, arg0);
7212
+ set elevationHeatmapFilters(arg0) {
7213
+ const ptr0 = passArrayJsValueToWasm0(arg0, wasm.__wbindgen_malloc);
7214
+ const len0 = WASM_VECTOR_LEN;
7215
+ wasm.__wbg_set_rastertileinternalmaterial_elevationHeatmapFilters(this.__wbg_ptr, ptr0, len0);
6220
7216
  }
6221
7217
  /**
6222
- * @param {number} arg0
7218
+ * Per-layer maximum heights for elevation normalization
7219
+ * @param {Float64Array} arg0
6223
7220
  */
6224
- set elevationMaxOffset(arg0) {
6225
- wasm.__wbg_set_rastertileinternalmaterial_elevationMaxOffset(this.__wbg_ptr, arg0);
7221
+ set elevationMaxHeights(arg0) {
7222
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7223
+ const len0 = WASM_VECTOR_LEN;
7224
+ wasm.__wbg_set_rastertileinternalmaterial_elevationMaxHeights(this.__wbg_ptr, ptr0, len0);
6226
7225
  }
6227
7226
  /**
6228
- * @param {number} arg0
7227
+ * @param {Float64Array} arg0
6229
7228
  */
6230
- set elevationMinHeight(arg0) {
6231
- wasm.__wbg_set_rastertileinternalmaterial_elevationMinHeight(this.__wbg_ptr, arg0);
7229
+ set elevationMaxOffsets(arg0) {
7230
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7231
+ const len0 = WASM_VECTOR_LEN;
7232
+ wasm.__wbg_set_rastertileinternalmaterial_elevationMaxOffsets(this.__wbg_ptr, ptr0, len0);
6232
7233
  }
6233
7234
  /**
6234
- * @param {number} arg0
7235
+ * Per-layer minimum heights for elevation normalization
7236
+ * @param {Float64Array} arg0
6235
7237
  */
6236
- set elevationMinOffset(arg0) {
6237
- wasm.__wbg_set_rastertileinternalmaterial_elevationMinOffset(this.__wbg_ptr, arg0);
7238
+ set elevationMinHeights(arg0) {
7239
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7240
+ const len0 = WASM_VECTOR_LEN;
7241
+ wasm.__wbg_set_rastertileinternalmaterial_elevationMinHeights(this.__wbg_ptr, ptr0, len0);
6238
7242
  }
6239
7243
  /**
6240
- * @param {number} arg0
7244
+ * @param {Float64Array} arg0
7245
+ */
7246
+ set elevationMinOffsets(arg0) {
7247
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7248
+ const len0 = WASM_VECTOR_LEN;
7249
+ wasm.__wbg_set_rastertileinternalmaterial_elevationMinOffsets(this.__wbg_ptr, ptr0, len0);
7250
+ }
7251
+ /**
7252
+ * @param {Float64Array} arg0
6241
7253
  */
6242
- set elevationOffset(arg0) {
6243
- wasm.__wbg_set_rastertileinternalmaterial_elevationOffset(this.__wbg_ptr, arg0);
7254
+ set elevationOffsets(arg0) {
7255
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7256
+ const len0 = WASM_VECTOR_LEN;
7257
+ wasm.__wbg_set_rastertileinternalmaterial_elevationOffsets(this.__wbg_ptr, ptr0, len0);
6244
7258
  }
6245
7259
  /**
7260
+ * Per-layer DEM decoder parameters
7261
+ * @param {Float64Array} arg0
7262
+ */
7263
+ set elevationRScalers(arg0) {
7264
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7265
+ const len0 = WASM_VECTOR_LEN;
7266
+ wasm.__wbg_set_rastertileinternalmaterial_elevationRScalers(this.__wbg_ptr, ptr0, len0);
7267
+ }
7268
+ /**
7269
+ * Speed in m/s of the current carrying the waves on the watermask's water
7270
+ * along `waveDirection`.
6246
7271
  * @param {number} arg0
6247
7272
  */
6248
- set elevationRScaler(arg0) {
6249
- wasm.__wbg_set_rastertileinternalmaterial_elevationRScaler(this.__wbg_ptr, arg0);
7273
+ set flowSpeed(arg0) {
7274
+ wasm.__wbg_set_rastertileinternalmaterial_flowSpeed(this.__wbg_ptr, arg0);
6250
7275
  }
6251
7276
  /**
6252
7277
  * @param {number} arg0
@@ -6336,16 +7361,22 @@ export class RasterTileInternalMaterial {
6336
7361
  wasm.__wbg_set_rastertileinternalmaterial_lit(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
6337
7362
  }
6338
7363
  /**
6339
- * @param {number} arg0
7364
+ * Per-layer logarithmic boundaries
7365
+ * @param {Float64Array} arg0
6340
7366
  */
6341
- set logBoundary(arg0) {
6342
- wasm.__wbg_set_rastertileinternalmaterial_logBoundary(this.__wbg_ptr, arg0);
7367
+ set logBoundaries(arg0) {
7368
+ const ptr0 = passArrayF64ToWasm0(arg0, wasm.__wbindgen_malloc);
7369
+ const len0 = WASM_VECTOR_LEN;
7370
+ wasm.__wbg_set_rastertileinternalmaterial_logBoundaries(this.__wbg_ptr, ptr0, len0);
6343
7371
  }
6344
7372
  /**
6345
- * @param {boolean} arg0
7373
+ * Per-layer logarithmic scaling flags
7374
+ * @param {Uint8Array} arg0
6346
7375
  */
6347
- set logarithmic(arg0) {
6348
- wasm.__wbg_set_rastertileinternalmaterial_logarithmic(this.__wbg_ptr, arg0);
7376
+ set logarithmics(arg0) {
7377
+ const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
7378
+ const len0 = WASM_VECTOR_LEN;
7379
+ wasm.__wbg_set_rastertileinternalmaterial_logarithmics(this.__wbg_ptr, ptr0, len0);
6349
7380
  }
6350
7381
  /**
6351
7382
  * @param {Float32Array} arg0
@@ -6383,6 +7414,37 @@ export class RasterTileInternalMaterial {
6383
7414
  const len0 = WASM_VECTOR_LEN;
6384
7415
  wasm.__wbg_set_rastertileinternalmaterial_terrainLatRange(this.__wbg_ptr, ptr0, len0);
6385
7416
  }
7417
+ /**
7418
+ * Body color of the watermask's water from the terrain layer; `None`
7419
+ * keeps the imagery or globe color.
7420
+ * @param {number | null} [arg0]
7421
+ */
7422
+ set waterMaskColor(arg0) {
7423
+ wasm.__wbg_set_rastertileinternalmaterial_waterMaskColor(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : (arg0) >>> 0);
7424
+ }
7425
+ /**
7426
+ * Where the waves on the watermask's water travel, in degrees clockwise
7427
+ * from north.
7428
+ * @param {number} arg0
7429
+ */
7430
+ set waveDirection(arg0) {
7431
+ wasm.__wbg_set_rastertileinternalmaterial_waveDirection(this.__wbg_ptr, arg0);
7432
+ }
7433
+ /**
7434
+ * Scales the wave slopes on the watermask's water; 0 is a flat mirror.
7435
+ * @param {number} arg0
7436
+ */
7437
+ set waveExaggeration(arg0) {
7438
+ wasm.__wbg_set_rastertileinternalmaterial_waveExaggeration(this.__wbg_ptr, arg0);
7439
+ }
7440
+ /**
7441
+ * Sets the size, slope and speed of the waves on the watermask's water, in
7442
+ * m/s.
7443
+ * @param {number} arg0
7444
+ */
7445
+ set waveStrength(arg0) {
7446
+ wasm.__wbg_set_rastertileinternalmaterial_waveStrength(this.__wbg_ptr, arg0);
7447
+ }
6386
7448
  }
6387
7449
  if (Symbol.dispose) RasterTileInternalMaterial.prototype[Symbol.dispose] = RasterTileInternalMaterial.prototype.free;
6388
7450
 
@@ -6548,6 +7610,13 @@ export class ReturnedConstructedTerrainMesh {
6548
7610
  const ret = wasm.returnedconstructedterrainmesh_transferNormals(this.__wbg_ptr);
6549
7611
  return ret;
6550
7612
  }
7613
+ /**
7614
+ * @returns {Float32Array | undefined}
7615
+ */
7616
+ transferSkirtHeights() {
7617
+ const ret = wasm.returnedconstructedterrainmesh_transferSkirtHeights(this.__wbg_ptr);
7618
+ return ret;
7619
+ }
6551
7620
  /**
6552
7621
  * @returns {Uint32Array | undefined}
6553
7622
  */
@@ -6640,6 +7709,15 @@ export class ShapeTextResult {
6640
7709
  const ptr = this.__destroy_into_raw();
6641
7710
  wasm.__wbg_shapetextresult_free(ptr, 0);
6642
7711
  }
7712
+ /**
7713
+ * False when letter spacing must not be applied to this text (it contains
7714
+ * cursive Arabic).
7715
+ * @returns {boolean}
7716
+ */
7717
+ get allows_letter_spacing() {
7718
+ const ret = wasm.__wbg_get_shapetextresult_allows_letter_spacing(this.__wbg_ptr);
7719
+ return ret !== 0;
7720
+ }
6643
7721
  /**
6644
7722
  * Vertical line metrics in font units, for multi-line layout.
6645
7723
  * @returns {number}
@@ -6719,6 +7797,14 @@ export class ShapeTextResult {
6719
7797
  const ret = wasm.__wbg_get_shapetextresult_units_per_em(this.__wbg_ptr);
6720
7798
  return ret;
6721
7799
  }
7800
+ /**
7801
+ * False when letter spacing must not be applied to this text (it contains
7802
+ * cursive Arabic).
7803
+ * @param {boolean} arg0
7804
+ */
7805
+ set allows_letter_spacing(arg0) {
7806
+ wasm.__wbg_set_shapetextresult_allows_letter_spacing(this.__wbg_ptr, arg0);
7807
+ }
6722
7808
  /**
6723
7809
  * Vertical line metrics in font units, for multi-line layout.
6724
7810
  * @param {number} arg0
@@ -6815,6 +7901,36 @@ export class TerrainMaterial {
6815
7901
  const ret = wasm.__wbg_get_terrainmaterial_castShadow(this.__wbg_ptr);
6816
7902
  return ret === 0xFFFFFF ? undefined : ret !== 0;
6817
7903
  }
7904
+ /**
7905
+ * Height in meters that stays in place while the terrain is exaggerated:
7906
+ * a terrain height `h` is rendered at
7907
+ * `(h - exaggerationRelativeHeight) * exaggeration + exaggerationRelativeHeight`.
7908
+ * Default: 0.
7909
+ * @returns {number | undefined}
7910
+ */
7911
+ get exaggerationRelativeHeight() {
7912
+ const ret = wasm.__wbg_get_terrainmaterial_exaggerationRelativeHeight(this.__wbg_ptr);
7913
+ return ret[0] === 0 ? undefined : ret[1];
7914
+ }
7915
+ /**
7916
+ * Vertical exaggeration of the terrain. Terrain heights are scaled by this
7917
+ * factor around `exaggerationRelativeHeight`. A negative value is treated
7918
+ * as 0, which flattens the terrain. Default: 1.
7919
+ * @returns {number | undefined}
7920
+ */
7921
+ get exaggeration() {
7922
+ const ret = wasm.__wbg_get_terrainmaterial_exaggeration(this.__wbg_ptr);
7923
+ return ret[0] === 0 ? undefined : ret[1];
7924
+ }
7925
+ /**
7926
+ * Speed in m/s of the current carrying the waves on the watermask's water
7927
+ * along `waveDirection`. Default: 0.
7928
+ * @returns {number | undefined}
7929
+ */
7930
+ get flowSpeed() {
7931
+ const ret = wasm.__wbg_get_terrainmaterial_flowSpeed(this.__wbg_ptr);
7932
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
7933
+ }
6818
7934
  /**
6819
7935
  * Applies the lighting equation to the color output. When `false` the
6820
7936
  * material outputs plain albedo (for deferred lighting) while normals and
@@ -6864,12 +7980,66 @@ export class TerrainMaterial {
6864
7980
  const ret = wasm.__wbg_get_terrainmaterial_skirt(this.__wbg_ptr);
6865
7981
  return ret === 0xFFFFFF ? undefined : ret !== 0;
6866
7982
  }
7983
+ /**
7984
+ * Where the waves on the watermask's water travel, in degrees clockwise
7985
+ * from north. Default: 0.
7986
+ * @returns {number | undefined}
7987
+ */
7988
+ get waveDirection() {
7989
+ const ret = wasm.__wbg_get_terrainmaterial_waveDirection(this.__wbg_ptr);
7990
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
7991
+ }
7992
+ /**
7993
+ * Scales the wave slopes on the watermask's water, keeping their size and
7994
+ * speed; 0 is a flat mirror. Default: 1.
7995
+ * @returns {number | undefined}
7996
+ */
7997
+ get waveExaggeration() {
7998
+ const ret = wasm.__wbg_get_terrainmaterial_waveExaggeration(this.__wbg_ptr);
7999
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8000
+ }
8001
+ /**
8002
+ * Sets the size, steepness and speed of the waves on the watermask's water:
8003
+ * about 1 is a calm ripple, 5 moderate and 20 a storm. Default: 5.
8004
+ * @returns {number | undefined}
8005
+ */
8006
+ get waveStrength() {
8007
+ const ret = wasm.__wbg_get_terrainmaterial_waveStrength(this.__wbg_ptr);
8008
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8009
+ }
6867
8010
  /**
6868
8011
  * @param {boolean | null} [arg0]
6869
8012
  */
6870
8013
  set castShadow(arg0) {
6871
8014
  wasm.__wbg_set_terrainmaterial_castShadow(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
6872
8015
  }
8016
+ /**
8017
+ * Height in meters that stays in place while the terrain is exaggerated:
8018
+ * a terrain height `h` is rendered at
8019
+ * `(h - exaggerationRelativeHeight) * exaggeration + exaggerationRelativeHeight`.
8020
+ * Default: 0.
8021
+ * @param {number | null} [arg0]
8022
+ */
8023
+ set exaggerationRelativeHeight(arg0) {
8024
+ wasm.__wbg_set_terrainmaterial_exaggerationRelativeHeight(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0);
8025
+ }
8026
+ /**
8027
+ * Vertical exaggeration of the terrain. Terrain heights are scaled by this
8028
+ * factor around `exaggerationRelativeHeight`. A negative value is treated
8029
+ * as 0, which flattens the terrain. Default: 1.
8030
+ * @param {number | null} [arg0]
8031
+ */
8032
+ set exaggeration(arg0) {
8033
+ wasm.__wbg_set_terrainmaterial_exaggeration(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0);
8034
+ }
8035
+ /**
8036
+ * Speed in m/s of the current carrying the waves on the watermask's water
8037
+ * along `waveDirection`. Default: 0.
8038
+ * @param {number | null} [arg0]
8039
+ */
8040
+ set flowSpeed(arg0) {
8041
+ wasm.__wbg_set_terrainmaterial_flowSpeed(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8042
+ }
6873
8043
  /**
6874
8044
  * Applies the lighting equation to the color output. When `false` the
6875
8045
  * material outputs plain albedo (for deferred lighting) while normals and
@@ -6913,6 +8083,47 @@ export class TerrainMaterial {
6913
8083
  set skirt(arg0) {
6914
8084
  wasm.__wbg_set_terrainmaterial_skirt(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
6915
8085
  }
8086
+ /**
8087
+ * Where the waves on the watermask's water travel, in degrees clockwise
8088
+ * from north. Default: 0.
8089
+ * @param {number | null} [arg0]
8090
+ */
8091
+ set waveDirection(arg0) {
8092
+ wasm.__wbg_set_terrainmaterial_waveDirection(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8093
+ }
8094
+ /**
8095
+ * Scales the wave slopes on the watermask's water, keeping their size and
8096
+ * speed; 0 is a flat mirror. Default: 1.
8097
+ * @param {number | null} [arg0]
8098
+ */
8099
+ set waveExaggeration(arg0) {
8100
+ wasm.__wbg_set_terrainmaterial_waveExaggeration(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8101
+ }
8102
+ /**
8103
+ * Sets the size, steepness and speed of the waves on the watermask's water:
8104
+ * about 1 is a calm ripple, 5 moderate and 20 a storm. Default: 5.
8105
+ * @param {number | null} [arg0]
8106
+ */
8107
+ set waveStrength(arg0) {
8108
+ wasm.__wbg_set_terrainmaterial_waveStrength(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8109
+ }
8110
+ /**
8111
+ * @param {number | null} [color]
8112
+ */
8113
+ set waterMaskColor(color) {
8114
+ wasm.terrainmaterial_set_waterMaskColor(this.__wbg_ptr, isLikeNone(color) ? Number.MAX_SAFE_INTEGER : (color) >>> 0);
8115
+ }
8116
+ /**
8117
+ * Body color of the water the source's watermask marks. The water shows
8118
+ * this color under its reflections instead of the imagery or globe color
8119
+ * beneath it. Requires `requestWaterMask` on a quantized-mesh source.
8120
+ * An update with `undefined` uses that imagery or globe color.
8121
+ * @returns {number | undefined}
8122
+ */
8123
+ get waterMaskColor() {
8124
+ const ret = wasm.terrainmaterial_waterMaskColor(this.__wbg_ptr);
8125
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8126
+ }
6916
8127
  }
6917
8128
  if (Symbol.dispose) TerrainMaterial.prototype[Symbol.dispose] = TerrainMaterial.prototype.free;
6918
8129
 
@@ -6928,10 +8139,27 @@ export class TextMaterial {
6928
8139
  wasm.__wbg_textmaterial_free(ptr, 0);
6929
8140
  }
6930
8141
  /**
6931
- * Whether faces seen from behind are culled. Default is false, so a
6932
- * quad frozen in its anchor's frame (`rotateWithCamera: false`) stays
6933
- * visible from behind. Turn it on to hide a flat quad's parts that wrap
6934
- * over the horizon, which face away from the camera.
8142
+ * Part of the text block placed at the anchor point: `"center"`
8143
+ * (default), `"left"`, `"right"`, `"top"`, `"bottom"`, `"top-left"`,
8144
+ * `"top-right"`, `"bottom-left"` or `"bottom-right"`, as MapLibre's
8145
+ * `text-anchor`. The block is as wide as its widest line and one line
8146
+ * height tall per line.
8147
+ * @returns {string | undefined}
8148
+ */
8149
+ get anchor() {
8150
+ const ret = wasm.__wbg_get_textmaterial_anchor(this.__wbg_ptr);
8151
+ let v1;
8152
+ if (ret[0] !== 0) {
8153
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
8154
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
8155
+ }
8156
+ return v1;
8157
+ }
8158
+ /**
8159
+ * Whether faces seen from behind are culled. Default is false. Only a
8160
+ * flat quad has a back the camera can see: turn it on to hide the parts
8161
+ * of a large one that wrap over the horizon, which face away from the
8162
+ * camera.
6935
8163
  * @returns {boolean | undefined}
6936
8164
  */
6937
8165
  get backfaceCulling() {
@@ -6959,13 +8187,6 @@ export class TextMaterial {
6959
8187
  const ret = wasm.__wbg_get_textmaterial_borderWidth(this.__wbg_ptr);
6960
8188
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
6961
8189
  }
6962
- /**
6963
- * @returns {Vec2 | undefined}
6964
- */
6965
- get center() {
6966
- const ret = wasm.__wbg_get_textmaterial_center(this.__wbg_ptr);
6967
- return ret === 0 ? undefined : Vec2.__wrap(ret);
6968
- }
6969
8190
  /**
6970
8191
  * @returns {boolean | undefined}
6971
8192
  */
@@ -6980,6 +8201,21 @@ export class TextMaterial {
6980
8201
  const ret = wasm.__wbg_get_textmaterial_color(this.__wbg_ptr);
6981
8202
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
6982
8203
  }
8204
+ /**
8205
+ * Extra space around the collision box, in screen pixels: one to four
8206
+ * values, expanded like CSS padding (top, right, bottom, left). Only
8207
+ * meaningful when `declutter` is enabled. Defaults to `[2]`.
8208
+ * @returns {Float32Array | undefined}
8209
+ */
8210
+ get declutterPadding() {
8211
+ const ret = wasm.__wbg_get_textmaterial_declutterPadding(this.__wbg_ptr);
8212
+ let v1;
8213
+ if (ret[0] !== 0) {
8214
+ v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
8215
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
8216
+ }
8217
+ return v1;
8218
+ }
6983
8219
  /**
6984
8220
  * Placement priority for decluttering; higher wins. Only meaningful when
6985
8221
  * `declutter` is enabled. Defaults to `0.0`.
@@ -6989,6 +8225,17 @@ export class TextMaterial {
6989
8225
  const ret = wasm.__wbg_get_textmaterial_declutterPriority(this.__wbg_ptr);
6990
8226
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
6991
8227
  }
8228
+ /**
8229
+ * Coarse placement order for decluttering, compared before
8230
+ * `declutterPriority`: every label with a higher rank is placed before any
8231
+ * label with a lower one, whatever their priorities. Only meaningful when
8232
+ * `declutter` is enabled. Defaults to `0.0`.
8233
+ * @returns {number | undefined}
8234
+ */
8235
+ get declutterRank() {
8236
+ const ret = wasm.__wbg_get_textmaterial_declutterRank(this.__wbg_ptr);
8237
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8238
+ }
6992
8239
  /**
6993
8240
  * Participate in screen-space decluttering: when labels/sprites overlap
6994
8241
  * on screen, lower-priority ones are hidden. Defaults to `true`; set to
@@ -7062,8 +8309,9 @@ export class TextMaterial {
7062
8309
  }
7063
8310
  /**
7064
8311
  * Source geometry types this appearance consumes: `"point"`, `"line"`,
7065
- * `"polygon"`. Defaults to `["point"]`; adding `"line"`/`"polygon"` also
7066
- * emits a label per line-string / polygon-ring vertex.
8312
+ * `"polygon"`. Defaults to `["point"]`; adding `"line"` also emits a
8313
+ * label per line string, at its first vertex, and `"polygon"` one per
8314
+ * polygon.
7067
8315
  * @returns {string[] | undefined}
7068
8316
  */
7069
8317
  get geometryTypes() {
@@ -7094,6 +8342,25 @@ export class TextMaterial {
7094
8342
  const ret = wasm.__wbg_get_textmaterial_highQuality(this.__wbg_ptr);
7095
8343
  return ret === 0xFFFFFF ? undefined : ret !== 0;
7096
8344
  }
8345
+ /**
8346
+ * Leave this label's box out of the collision grid, so symbols placed
8347
+ * after it may overlap it. Only meaningful when `declutter` is enabled.
8348
+ * Defaults to `false`.
8349
+ * @returns {boolean | undefined}
8350
+ */
8351
+ get ignorePlacement() {
8352
+ const ret = wasm.__wbg_get_textmaterial_ignorePlacement(this.__wbg_ptr);
8353
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
8354
+ }
8355
+ /**
8356
+ * Flip a label that would otherwise read right-to-left, so names stay
8357
+ * legible whichever way the underlying line runs. Defaults to `true`.
8358
+ * @returns {boolean | undefined}
8359
+ */
8360
+ get keepUpright() {
8361
+ const ret = wasm.__wbg_get_textmaterial_keepUpright(this.__wbg_ptr);
8362
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
8363
+ }
7097
8364
  /**
7098
8365
  * Language code for text shaping (e.g., "en", "ja", "ar"). Used for proper text rendering.
7099
8366
  * @returns {string | undefined}
@@ -7108,12 +8375,45 @@ export class TextMaterial {
7108
8375
  return v1;
7109
8376
  }
7110
8377
  /**
7111
- * Line height as a multiplier of the font's natural line height
7112
- * (ascender − descender + line gap). Defaults to `1.0`.
8378
+ * Extra space between characters, in ems (multiples of `size`). Not
8379
+ * added after the last character; ignored for Arabic-script text.
8380
+ * Negative values tighten. Defaults to `0.0`.
8381
+ * @returns {number | undefined}
8382
+ */
8383
+ get letterSpacing() {
8384
+ const ret = wasm.__wbg_get_textmaterial_letterSpacing(this.__wbg_ptr);
8385
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8386
+ }
8387
+ /**
8388
+ * Distance between the baselines of a multi-line label, in ems
8389
+ * (multiples of `size`). Defaults to the font's natural line height
8390
+ * (ascender − descender + line gap).
8391
+ * @returns {number | undefined}
8392
+ */
8393
+ get lineHeight() {
8394
+ const ret = wasm.__wbg_get_textmaterial_lineHeight(this.__wbg_ptr);
8395
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8396
+ }
8397
+ /**
8398
+ * Offset perpendicular to the line, in the same units as the font size:
8399
+ * pixels when `sizeInMeters` is false, metres when it is true. Positive is
8400
+ * to the left of the direction of travel, which puts the name above the
8401
+ * line. Defaults to `0.0`.
8402
+ * @returns {number | undefined}
8403
+ */
8404
+ get lineOffset() {
8405
+ const ret = wasm.__wbg_get_textmaterial_lineOffset(this.__wbg_ptr);
8406
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8407
+ }
8408
+ /**
8409
+ * Largest turn, in degrees, the line may make under a label within a
8410
+ * window of about one and a half ems before the label is dropped as
8411
+ * unreadable. The window slides along the label, so a long gentle curve
8412
+ * is accepted however far it turns in total. Defaults to `45.0`.
7113
8413
  * @returns {number | undefined}
7114
8414
  */
7115
- get lineHeight() {
7116
- const ret = wasm.__wbg_get_textmaterial_lineHeight(this.__wbg_ptr);
8415
+ get maxAngle() {
8416
+ const ret = wasm.__wbg_get_textmaterial_maxAngle(this.__wbg_ptr);
7117
8417
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
7118
8418
  }
7119
8419
  /**
@@ -7134,6 +8434,16 @@ export class TextMaterial {
7134
8434
  const ret = wasm.__wbg_get_textmaterial_offsetDepth(this.__wbg_ptr);
7135
8435
  return ret === 0xFFFFFF ? undefined : ret !== 0;
7136
8436
  }
8437
+ /**
8438
+ * Shift from the anchor point, x right and y down, in ems (multiples of
8439
+ * `size`), as MapLibre's `text-offset`. Lies in the label's own plane, so
8440
+ * it turns with `rotation`. Defaults to `(0, 0)`.
8441
+ * @returns {Vec2 | undefined}
8442
+ */
8443
+ get offset() {
8444
+ const ret = wasm.__wbg_get_textmaterial_offset(this.__wbg_ptr);
8445
+ return ret === 0 ? undefined : Vec2.__wrap(ret);
8446
+ }
7137
8447
  /**
7138
8448
  * Opacity of the text
7139
8449
  * @returns {number | undefined}
@@ -7143,7 +8453,15 @@ export class TextMaterial {
7143
8453
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
7144
8454
  }
7145
8455
  /**
7146
- * Outline blur radius in CSS pixels. Defaults to `0.0`.
8456
+ * Width over which the outline's outer edge fades out, centered on that
8457
+ * edge, in the unit of `outlineWidth`. Defaults to `0.0`.
8458
+ * @returns {number | undefined}
8459
+ */
8460
+ get outlineBlur() {
8461
+ const ret = wasm.__wbg_get_textmaterial_outlineBlur(this.__wbg_ptr);
8462
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8463
+ }
8464
+ /**
7147
8465
  * @returns {number | undefined}
7148
8466
  */
7149
8467
  get outlineColor() {
@@ -7159,7 +8477,9 @@ export class TextMaterial {
7159
8477
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
7160
8478
  }
7161
8479
  /**
7162
- * Outline thickness measured in CSS pixels. Defaults to `0.0`.
8480
+ * Outline thickness in 1/64 em: pixels of text drawn 64 pixels tall, so
8481
+ * the outline keeps its proportion to the glyphs at any size. Defaults
8482
+ * to `0.0`.
7163
8483
  * @returns {number | undefined}
7164
8484
  */
7165
8485
  get outlineWidth() {
@@ -7167,11 +8487,49 @@ export class TextMaterial {
7167
8487
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
7168
8488
  }
7169
8489
  /**
7170
- * Whether the label turns to follow the camera. `true` (the default)
7171
- * keeps it facing the viewer. `false` freezes it in the anchor's local
7172
- * east-north-up frame, so moving the camera never reorients it: with
7173
- * `textFacing: "upright"` it becomes a signboard standing on the
7174
- * surface, with `"flat"` a north-up label painted on it.
8490
+ * Whether the label may be drawn over symbols placed before it:
8491
+ * `"never"` (the default) hides it on any collision, `"always"` never
8492
+ * does, `"cooperative"` hides it only when it collides with a `"never"`
8493
+ * symbol. Only meaningful when `declutter` is enabled.
8494
+ * @returns {string | undefined}
8495
+ */
8496
+ get overlap() {
8497
+ const ret = wasm.__wbg_get_textmaterial_overlap(this.__wbg_ptr);
8498
+ let v1;
8499
+ if (ret[0] !== 0) {
8500
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
8501
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
8502
+ }
8503
+ return v1;
8504
+ }
8505
+ /**
8506
+ * How anchors are derived from line and polygon geometry: `"point"` (the
8507
+ * default) puts a label per line string, at its first vertex, and one
8508
+ * per polygon, `"line"` repeats labels along the line every `spacing`
8509
+ * with the glyphs bending to follow it, `"line-center"` places a single
8510
+ * label at the line's midpoint. Polygon rings are walked like lines.
8511
+ * Requires `geometryTypes` to include `"line"` or `"polygon"`.
8512
+ * @returns {string | undefined}
8513
+ */
8514
+ get placement() {
8515
+ const ret = wasm.__wbg_get_textmaterial_placement(this.__wbg_ptr);
8516
+ let v1;
8517
+ if (ret[0] !== 0) {
8518
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
8519
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
8520
+ }
8521
+ return v1;
8522
+ }
8523
+ /**
8524
+ * Whether the label turns with the camera or with the map, as MapLibre's
8525
+ * `text-rotation-alignment` `viewport` and `map`. `true` keeps it reading
8526
+ * left to right (a screen-aligned billboard, or a flat label yawed to the
8527
+ * camera). `false` aligns it with the map: upright, it stays on screen but
8528
+ * turns with the camera heading so its x-axis points east; flat, it lies
8529
+ * north-up. Along a line, `false` makes the label follow the line, and
8530
+ * `true` draws it straight at its anchor unless `spreadGlyphs` is set.
8531
+ * Left unset, it is `true` for `placement: "point"` and `false` along a
8532
+ * line, as MapLibre resolves `auto`.
7175
8533
  * @returns {boolean | undefined}
7176
8534
  */
7177
8535
  get rotateWithCamera() {
@@ -7183,8 +8541,10 @@ export class TextMaterial {
7183
8541
  * degrees, clockwise seen from the front. Applied on top of whatever
7184
8542
  * orientation `textFacing` and `rotateWithCamera` resolve to: it spins a
7185
8543
  * billboard on screen and turns a surface label like a compass bearing.
7186
- * `center` decides where inside the text the pivot sits. Defaults to
7187
- * `0.0`.
8544
+ * `anchor` decides where inside the text the pivot sits. Along a line
8545
+ * each glyph spins about its own point on the line, as MapLibre's
8546
+ * `text-rotate` does, except for a straight label (`rotateWithCamera`
8547
+ * without `spreadGlyphs`), which turns as a whole. Defaults to `0.0`.
7188
8548
  * @returns {number | undefined}
7189
8549
  */
7190
8550
  get rotation() {
@@ -7214,9 +8574,52 @@ export class TextMaterial {
7214
8574
  const ret = wasm.__wbg_get_textmaterial_size(this.__wbg_ptr);
7215
8575
  return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
7216
8576
  }
8577
+ /**
8578
+ * Distance between repeated labels along a line, in screen pixels, for
8579
+ * `vector-tile` and `geojson` sources alike. Resolved per label as the
8580
+ * camera moves: labels thin out as it pulls back and fill in as it
8581
+ * closes, never moving, so the gap on screen stays between one and two
8582
+ * times `spacing` across a pitched view. As MapLibre does with
8583
+ * `symbol-spacing`, a label longer than three quarters of the spacing
8584
+ * spreads its repeats to its own length plus a quarter of the spacing, a
8585
+ * label within half the spacing of an earlier one with the same text is
8586
+ * dropped, and a vector tile places labels only inside its own bounds.
8587
+ * Defaults to `250.0`.
8588
+ * @returns {number | undefined}
8589
+ */
8590
+ get spacing() {
8591
+ const ret = wasm.__wbg_get_textmaterial_spacing(this.__wbg_ptr);
8592
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
8593
+ }
8594
+ /**
8595
+ * Place each glyph of an along-line label on its own instead of each
8596
+ * word. With `rotateWithCamera: false` each glyph turns with the line
8597
+ * under it (MapLibre's `symbol-placement: "line"`); with `true`, each
8598
+ * glyph turns to the camera like a point label and is spaced on the
8599
+ * screen (MapLibre's `viewport-glyph`). Can be overridden per feature
8600
+ * from a feature evaluator. Defaults to `false`.
8601
+ * @returns {boolean | undefined}
8602
+ */
8603
+ get spreadGlyphs() {
8604
+ const ret = wasm.__wbg_get_textmaterial_spreadGlyphs(this.__wbg_ptr);
8605
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
8606
+ }
8607
+ /**
8608
+ * Whether this may show while its partner at the same anchor (the
8609
+ * layer's label for a billboard, its billboard for a label) is hidden.
8610
+ * With `false` on both, the two are placed together: both show or
8611
+ * neither does. Only meaningful when `declutter` is enabled. Defaults to
8612
+ * `true`.
8613
+ * @returns {boolean | undefined}
8614
+ */
8615
+ get standalone() {
8616
+ const ret = wasm.__wbg_get_textmaterial_standalone(this.__wbg_ptr);
8617
+ return ret === 0xFFFFFF ? undefined : ret !== 0;
8618
+ }
7217
8619
  /**
7218
8620
  * Horizontal alignment of lines within a multi-line block:
7219
- * `"left"`, `"center"` (default), or `"right"`.
8621
+ * `"left"`, `"center"` (default), `"right"`, or `"auto"`, which aligns
8622
+ * towards the horizontal side of `anchor` (MapLibre's `text-justify`).
7220
8623
  * @returns {string | undefined}
7221
8624
  */
7222
8625
  get textAlign() {
@@ -7229,9 +8632,13 @@ export class TextMaterial {
7229
8632
  return v1;
7230
8633
  }
7231
8634
  /**
7232
- * Whether the label stands up (`"upright"`, the default) or lies on the
7233
- * globe surface around its anchor (`"flat"`), following its curvature so
7234
- * it reads as painted on the surface. Pair with `rotateWithCamera`.
8635
+ * Plane the label lies in: the screen (`"upright"`, never foreshortened)
8636
+ * or the globe surface around its anchor (`"flat"`), following its
8637
+ * curvature so it reads as painted on the surface. MapLibre's
8638
+ * `text-pitch-alignment` `viewport` and `map`. Pair with
8639
+ * `rotateWithCamera`. Left unset, it is `"flat"` when `rotateWithCamera`
8640
+ * resolves to `false` and `"upright"` otherwise, as MapLibre resolves
8641
+ * `auto`.
7235
8642
  * @returns {string | undefined}
7236
8643
  */
7237
8644
  get textFacing() {
@@ -7255,6 +8662,31 @@ export class TextMaterial {
7255
8662
  }
7256
8663
  return v1;
7257
8664
  }
8665
+ /**
8666
+ * Frame `translate` is measured in: `"map"` (default) turns it with the
8667
+ * camera heading so +x points east and +y south; `"viewport"` keeps it on
8668
+ * the screen axes. MapLibre's `text-translate-anchor`.
8669
+ * @returns {string | undefined}
8670
+ */
8671
+ get translateAnchor() {
8672
+ const ret = wasm.__wbg_get_textmaterial_translateAnchor(this.__wbg_ptr);
8673
+ let v1;
8674
+ if (ret[0] !== 0) {
8675
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
8676
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
8677
+ }
8678
+ return v1;
8679
+ }
8680
+ /**
8681
+ * Screen-pixel shift of the drawn label, x right and y down, applied after
8682
+ * projection so it stays the same number of pixels at any distance, as
8683
+ * MapLibre's `text-translate`. Defaults to `(0, 0)`.
8684
+ * @returns {Vec2 | undefined}
8685
+ */
8686
+ get translate() {
8687
+ const ret = wasm.__wbg_get_textmaterial_translate(this.__wbg_ptr);
8688
+ return ret === 0 ? undefined : Vec2.__wrap(ret);
8689
+ }
7258
8690
  /**
7259
8691
  * Enable transparency and alpha blending
7260
8692
  * @returns {boolean | undefined}
@@ -7264,10 +8696,40 @@ export class TextMaterial {
7264
8696
  return ret === 0xFFFFFF ? undefined : ret !== 0;
7265
8697
  }
7266
8698
  /**
7267
- * Whether faces seen from behind are culled. Default is false, so a
7268
- * quad frozen in its anchor's frame (`rotateWithCamera: false`) stays
7269
- * visible from behind. Turn it on to hide a flat quad's parts that wrap
7270
- * over the horizon, which face away from the camera.
8699
+ * Placements the declutter pass tries in order, keeping the first whose
8700
+ * box is free, as MapLibre's `text-variable-anchor-offset`. The one in
8701
+ * use is tried first, so a label only moves when it must. Overrides
8702
+ * `anchor` and `offset` when not empty, except along a line. Without
8703
+ * declutter the first is used.
8704
+ * @returns {VariableAnchor[] | undefined}
8705
+ */
8706
+ get variableAnchors() {
8707
+ const ret = wasm.__wbg_get_textmaterial_variableAnchors(this.__wbg_ptr);
8708
+ let v1;
8709
+ if (ret[0] !== 0) {
8710
+ v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
8711
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
8712
+ }
8713
+ return v1;
8714
+ }
8715
+ /**
8716
+ * Part of the text block placed at the anchor point: `"center"`
8717
+ * (default), `"left"`, `"right"`, `"top"`, `"bottom"`, `"top-left"`,
8718
+ * `"top-right"`, `"bottom-left"` or `"bottom-right"`, as MapLibre's
8719
+ * `text-anchor`. The block is as wide as its widest line and one line
8720
+ * height tall per line.
8721
+ * @param {string | null} [arg0]
8722
+ */
8723
+ set anchor(arg0) {
8724
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
8725
+ var len0 = WASM_VECTOR_LEN;
8726
+ wasm.__wbg_set_textmaterial_anchor(this.__wbg_ptr, ptr0, len0);
8727
+ }
8728
+ /**
8729
+ * Whether faces seen from behind are culled. Default is false. Only a
8730
+ * flat quad has a back the camera can see: turn it on to hide the parts
8731
+ * of a large one that wrap over the horizon, which face away from the
8732
+ * camera.
7271
8733
  * @param {boolean | null} [arg0]
7272
8734
  */
7273
8735
  set backfaceCulling(arg0) {
@@ -7291,17 +8753,6 @@ export class TextMaterial {
7291
8753
  set borderWidth(arg0) {
7292
8754
  wasm.__wbg_set_textmaterial_borderWidth(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
7293
8755
  }
7294
- /**
7295
- * @param {Vec2 | null} [arg0]
7296
- */
7297
- set center(arg0) {
7298
- let ptr0 = 0;
7299
- if (!isLikeNone(arg0)) {
7300
- _assertClass(arg0, Vec2);
7301
- ptr0 = arg0.__destroy_into_raw();
7302
- }
7303
- wasm.__wbg_set_textmaterial_center(this.__wbg_ptr, ptr0);
7304
- }
7305
8756
  /**
7306
8757
  * @param {boolean | null} [arg0]
7307
8758
  */
@@ -7314,6 +8765,17 @@ export class TextMaterial {
7314
8765
  set color(arg0) {
7315
8766
  wasm.__wbg_set_textmaterial_color(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : (arg0) >>> 0);
7316
8767
  }
8768
+ /**
8769
+ * Extra space around the collision box, in screen pixels: one to four
8770
+ * values, expanded like CSS padding (top, right, bottom, left). Only
8771
+ * meaningful when `declutter` is enabled. Defaults to `[2]`.
8772
+ * @param {Float32Array | null} [arg0]
8773
+ */
8774
+ set declutterPadding(arg0) {
8775
+ var ptr0 = isLikeNone(arg0) ? 0 : passArrayF32ToWasm0(arg0, wasm.__wbindgen_malloc);
8776
+ var len0 = WASM_VECTOR_LEN;
8777
+ wasm.__wbg_set_textmaterial_declutterPadding(this.__wbg_ptr, ptr0, len0);
8778
+ }
7317
8779
  /**
7318
8780
  * Placement priority for decluttering; higher wins. Only meaningful when
7319
8781
  * `declutter` is enabled. Defaults to `0.0`.
@@ -7322,6 +8784,16 @@ export class TextMaterial {
7322
8784
  set declutterPriority(arg0) {
7323
8785
  wasm.__wbg_set_textmaterial_declutterPriority(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
7324
8786
  }
8787
+ /**
8788
+ * Coarse placement order for decluttering, compared before
8789
+ * `declutterPriority`: every label with a higher rank is placed before any
8790
+ * label with a lower one, whatever their priorities. Only meaningful when
8791
+ * `declutter` is enabled. Defaults to `0.0`.
8792
+ * @param {number | null} [arg0]
8793
+ */
8794
+ set declutterRank(arg0) {
8795
+ wasm.__wbg_set_textmaterial_declutterRank(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8796
+ }
7325
8797
  /**
7326
8798
  * Participate in screen-space decluttering: when labels/sprites overlap
7327
8799
  * on screen, lower-priority ones are hidden. Defaults to `true`; set to
@@ -7383,8 +8855,9 @@ export class TextMaterial {
7383
8855
  }
7384
8856
  /**
7385
8857
  * Source geometry types this appearance consumes: `"point"`, `"line"`,
7386
- * `"polygon"`. Defaults to `["point"]`; adding `"line"`/`"polygon"` also
7387
- * emits a label per line-string / polygon-ring vertex.
8858
+ * `"polygon"`. Defaults to `["point"]`; adding `"line"` also emits a
8859
+ * label per line string, at its first vertex, and `"polygon"` one per
8860
+ * polygon.
7388
8861
  * @param {string[] | null} [arg0]
7389
8862
  */
7390
8863
  set geometryTypes(arg0) {
@@ -7409,6 +8882,23 @@ export class TextMaterial {
7409
8882
  set highQuality(arg0) {
7410
8883
  wasm.__wbg_set_textmaterial_highQuality(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
7411
8884
  }
8885
+ /**
8886
+ * Leave this label's box out of the collision grid, so symbols placed
8887
+ * after it may overlap it. Only meaningful when `declutter` is enabled.
8888
+ * Defaults to `false`.
8889
+ * @param {boolean | null} [arg0]
8890
+ */
8891
+ set ignorePlacement(arg0) {
8892
+ wasm.__wbg_set_textmaterial_ignorePlacement(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
8893
+ }
8894
+ /**
8895
+ * Flip a label that would otherwise read right-to-left, so names stay
8896
+ * legible whichever way the underlying line runs. Defaults to `true`.
8897
+ * @param {boolean | null} [arg0]
8898
+ */
8899
+ set keepUpright(arg0) {
8900
+ wasm.__wbg_set_textmaterial_keepUpright(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
8901
+ }
7412
8902
  /**
7413
8903
  * Language code for text shaping (e.g., "en", "ja", "ar"). Used for proper text rendering.
7414
8904
  * @param {string | null} [arg0]
@@ -7419,13 +8909,43 @@ export class TextMaterial {
7419
8909
  wasm.__wbg_set_textmaterial_lang(this.__wbg_ptr, ptr0, len0);
7420
8910
  }
7421
8911
  /**
7422
- * Line height as a multiplier of the font's natural line height
7423
- * (ascender − descender + line gap). Defaults to `1.0`.
8912
+ * Extra space between characters, in ems (multiples of `size`). Not
8913
+ * added after the last character; ignored for Arabic-script text.
8914
+ * Negative values tighten. Defaults to `0.0`.
8915
+ * @param {number | null} [arg0]
8916
+ */
8917
+ set letterSpacing(arg0) {
8918
+ wasm.__wbg_set_textmaterial_letterSpacing(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8919
+ }
8920
+ /**
8921
+ * Distance between the baselines of a multi-line label, in ems
8922
+ * (multiples of `size`). Defaults to the font's natural line height
8923
+ * (ascender − descender + line gap).
7424
8924
  * @param {number | null} [arg0]
7425
8925
  */
7426
8926
  set lineHeight(arg0) {
7427
8927
  wasm.__wbg_set_textmaterial_lineHeight(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
7428
8928
  }
8929
+ /**
8930
+ * Offset perpendicular to the line, in the same units as the font size:
8931
+ * pixels when `sizeInMeters` is false, metres when it is true. Positive is
8932
+ * to the left of the direction of travel, which puts the name above the
8933
+ * line. Defaults to `0.0`.
8934
+ * @param {number | null} [arg0]
8935
+ */
8936
+ set lineOffset(arg0) {
8937
+ wasm.__wbg_set_textmaterial_lineOffset(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8938
+ }
8939
+ /**
8940
+ * Largest turn, in degrees, the line may make under a label within a
8941
+ * window of about one and a half ems before the label is dropped as
8942
+ * unreadable. The window slides along the label, so a long gentle curve
8943
+ * is accepted however far it turns in total. Defaults to `45.0`.
8944
+ * @param {number | null} [arg0]
8945
+ */
8946
+ set maxAngle(arg0) {
8947
+ wasm.__wbg_set_textmaterial_maxAngle(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8948
+ }
7429
8949
  /**
7430
8950
  * Maximum line width in ems (multiples of `size`) before text wraps at
7431
8951
  * word boundaries. `0.0` (the default) disables wrapping; explicit `\n`
@@ -7442,6 +8962,20 @@ export class TextMaterial {
7442
8962
  set offsetDepth(arg0) {
7443
8963
  wasm.__wbg_set_textmaterial_offsetDepth(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
7444
8964
  }
8965
+ /**
8966
+ * Shift from the anchor point, x right and y down, in ems (multiples of
8967
+ * `size`), as MapLibre's `text-offset`. Lies in the label's own plane, so
8968
+ * it turns with `rotation`. Defaults to `(0, 0)`.
8969
+ * @param {Vec2 | null} [arg0]
8970
+ */
8971
+ set offset(arg0) {
8972
+ let ptr0 = 0;
8973
+ if (!isLikeNone(arg0)) {
8974
+ _assertClass(arg0, Vec2);
8975
+ ptr0 = arg0.__destroy_into_raw();
8976
+ }
8977
+ wasm.__wbg_set_textmaterial_offset(this.__wbg_ptr, ptr0);
8978
+ }
7445
8979
  /**
7446
8980
  * Opacity of the text
7447
8981
  * @param {number | null} [arg0]
@@ -7450,7 +8984,14 @@ export class TextMaterial {
7450
8984
  wasm.__wbg_set_textmaterial_opacity(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
7451
8985
  }
7452
8986
  /**
7453
- * Outline blur radius in CSS pixels. Defaults to `0.0`.
8987
+ * Width over which the outline's outer edge fades out, centered on that
8988
+ * edge, in the unit of `outlineWidth`. Defaults to `0.0`.
8989
+ * @param {number | null} [arg0]
8990
+ */
8991
+ set outlineBlur(arg0) {
8992
+ wasm.__wbg_set_textmaterial_outlineBlur(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
8993
+ }
8994
+ /**
7454
8995
  * @param {number | null} [arg0]
7455
8996
  */
7456
8997
  set outlineColor(arg0) {
@@ -7464,18 +9005,50 @@ export class TextMaterial {
7464
9005
  wasm.__wbg_set_textmaterial_outlineOpacity(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
7465
9006
  }
7466
9007
  /**
7467
- * Outline thickness measured in CSS pixels. Defaults to `0.0`.
9008
+ * Outline thickness in 1/64 em: pixels of text drawn 64 pixels tall, so
9009
+ * the outline keeps its proportion to the glyphs at any size. Defaults
9010
+ * to `0.0`.
7468
9011
  * @param {number | null} [arg0]
7469
9012
  */
7470
9013
  set outlineWidth(arg0) {
7471
9014
  wasm.__wbg_set_textmaterial_outlineWidth(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
7472
9015
  }
7473
9016
  /**
7474
- * Whether the label turns to follow the camera. `true` (the default)
7475
- * keeps it facing the viewer. `false` freezes it in the anchor's local
7476
- * east-north-up frame, so moving the camera never reorients it: with
7477
- * `textFacing: "upright"` it becomes a signboard standing on the
7478
- * surface, with `"flat"` a north-up label painted on it.
9017
+ * Whether the label may be drawn over symbols placed before it:
9018
+ * `"never"` (the default) hides it on any collision, `"always"` never
9019
+ * does, `"cooperative"` hides it only when it collides with a `"never"`
9020
+ * symbol. Only meaningful when `declutter` is enabled.
9021
+ * @param {string | null} [arg0]
9022
+ */
9023
+ set overlap(arg0) {
9024
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
9025
+ var len0 = WASM_VECTOR_LEN;
9026
+ wasm.__wbg_set_textmaterial_overlap(this.__wbg_ptr, ptr0, len0);
9027
+ }
9028
+ /**
9029
+ * How anchors are derived from line and polygon geometry: `"point"` (the
9030
+ * default) puts a label per line string, at its first vertex, and one
9031
+ * per polygon, `"line"` repeats labels along the line every `spacing`
9032
+ * with the glyphs bending to follow it, `"line-center"` places a single
9033
+ * label at the line's midpoint. Polygon rings are walked like lines.
9034
+ * Requires `geometryTypes` to include `"line"` or `"polygon"`.
9035
+ * @param {string | null} [arg0]
9036
+ */
9037
+ set placement(arg0) {
9038
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
9039
+ var len0 = WASM_VECTOR_LEN;
9040
+ wasm.__wbg_set_textmaterial_placement(this.__wbg_ptr, ptr0, len0);
9041
+ }
9042
+ /**
9043
+ * Whether the label turns with the camera or with the map, as MapLibre's
9044
+ * `text-rotation-alignment` `viewport` and `map`. `true` keeps it reading
9045
+ * left to right (a screen-aligned billboard, or a flat label yawed to the
9046
+ * camera). `false` aligns it with the map: upright, it stays on screen but
9047
+ * turns with the camera heading so its x-axis points east; flat, it lies
9048
+ * north-up. Along a line, `false` makes the label follow the line, and
9049
+ * `true` draws it straight at its anchor unless `spreadGlyphs` is set.
9050
+ * Left unset, it is `true` for `placement: "point"` and `false` along a
9051
+ * line, as MapLibre resolves `auto`.
7479
9052
  * @param {boolean | null} [arg0]
7480
9053
  */
7481
9054
  set rotateWithCamera(arg0) {
@@ -7486,8 +9059,10 @@ export class TextMaterial {
7486
9059
  * degrees, clockwise seen from the front. Applied on top of whatever
7487
9060
  * orientation `textFacing` and `rotateWithCamera` resolve to: it spins a
7488
9061
  * billboard on screen and turns a surface label like a compass bearing.
7489
- * `center` decides where inside the text the pivot sits. Defaults to
7490
- * `0.0`.
9062
+ * `anchor` decides where inside the text the pivot sits. Along a line
9063
+ * each glyph spins about its own point on the line, as MapLibre's
9064
+ * `text-rotate` does, except for a straight label (`rotateWithCamera`
9065
+ * without `spreadGlyphs`), which turns as a whole. Defaults to `0.0`.
7491
9066
  * @param {number | null} [arg0]
7492
9067
  */
7493
9068
  set rotation(arg0) {
@@ -7513,9 +9088,49 @@ export class TextMaterial {
7513
9088
  set size(arg0) {
7514
9089
  wasm.__wbg_set_textmaterial_size(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
7515
9090
  }
9091
+ /**
9092
+ * Distance between repeated labels along a line, in screen pixels, for
9093
+ * `vector-tile` and `geojson` sources alike. Resolved per label as the
9094
+ * camera moves: labels thin out as it pulls back and fill in as it
9095
+ * closes, never moving, so the gap on screen stays between one and two
9096
+ * times `spacing` across a pitched view. As MapLibre does with
9097
+ * `symbol-spacing`, a label longer than three quarters of the spacing
9098
+ * spreads its repeats to its own length plus a quarter of the spacing, a
9099
+ * label within half the spacing of an earlier one with the same text is
9100
+ * dropped, and a vector tile places labels only inside its own bounds.
9101
+ * Defaults to `250.0`.
9102
+ * @param {number | null} [arg0]
9103
+ */
9104
+ set spacing(arg0) {
9105
+ wasm.__wbg_set_textmaterial_spacing(this.__wbg_ptr, isLikeNone(arg0) ? Number.MAX_SAFE_INTEGER : Math.fround(arg0));
9106
+ }
9107
+ /**
9108
+ * Place each glyph of an along-line label on its own instead of each
9109
+ * word. With `rotateWithCamera: false` each glyph turns with the line
9110
+ * under it (MapLibre's `symbol-placement: "line"`); with `true`, each
9111
+ * glyph turns to the camera like a point label and is spaced on the
9112
+ * screen (MapLibre's `viewport-glyph`). Can be overridden per feature
9113
+ * from a feature evaluator. Defaults to `false`.
9114
+ * @param {boolean | null} [arg0]
9115
+ */
9116
+ set spreadGlyphs(arg0) {
9117
+ wasm.__wbg_set_textmaterial_spreadGlyphs(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
9118
+ }
9119
+ /**
9120
+ * Whether this may show while its partner at the same anchor (the
9121
+ * layer's label for a billboard, its billboard for a label) is hidden.
9122
+ * With `false` on both, the two are placed together: both show or
9123
+ * neither does. Only meaningful when `declutter` is enabled. Defaults to
9124
+ * `true`.
9125
+ * @param {boolean | null} [arg0]
9126
+ */
9127
+ set standalone(arg0) {
9128
+ wasm.__wbg_set_textmaterial_standalone(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
9129
+ }
7516
9130
  /**
7517
9131
  * Horizontal alignment of lines within a multi-line block:
7518
- * `"left"`, `"center"` (default), or `"right"`.
9132
+ * `"left"`, `"center"` (default), `"right"`, or `"auto"`, which aligns
9133
+ * towards the horizontal side of `anchor` (MapLibre's `text-justify`).
7519
9134
  * @param {string | null} [arg0]
7520
9135
  */
7521
9136
  set textAlign(arg0) {
@@ -7524,9 +9139,13 @@ export class TextMaterial {
7524
9139
  wasm.__wbg_set_textmaterial_textAlign(this.__wbg_ptr, ptr0, len0);
7525
9140
  }
7526
9141
  /**
7527
- * Whether the label stands up (`"upright"`, the default) or lies on the
7528
- * globe surface around its anchor (`"flat"`), following its curvature so
7529
- * it reads as painted on the surface. Pair with `rotateWithCamera`.
9142
+ * Plane the label lies in: the screen (`"upright"`, never foreshortened)
9143
+ * or the globe surface around its anchor (`"flat"`), following its
9144
+ * curvature so it reads as painted on the surface. MapLibre's
9145
+ * `text-pitch-alignment` `viewport` and `map`. Pair with
9146
+ * `rotateWithCamera`. Left unset, it is `"flat"` when `rotateWithCamera`
9147
+ * resolves to `false` and `"upright"` otherwise, as MapLibre resolves
9148
+ * `auto`.
7530
9149
  * @param {string | null} [arg0]
7531
9150
  */
7532
9151
  set textFacing(arg0) {
@@ -7542,6 +9161,31 @@ export class TextMaterial {
7542
9161
  var len0 = WASM_VECTOR_LEN;
7543
9162
  wasm.__wbg_set_textmaterial_text(this.__wbg_ptr, ptr0, len0);
7544
9163
  }
9164
+ /**
9165
+ * Frame `translate` is measured in: `"map"` (default) turns it with the
9166
+ * camera heading so +x points east and +y south; `"viewport"` keeps it on
9167
+ * the screen axes. MapLibre's `text-translate-anchor`.
9168
+ * @param {string | null} [arg0]
9169
+ */
9170
+ set translateAnchor(arg0) {
9171
+ var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
9172
+ var len0 = WASM_VECTOR_LEN;
9173
+ wasm.__wbg_set_textmaterial_translateAnchor(this.__wbg_ptr, ptr0, len0);
9174
+ }
9175
+ /**
9176
+ * Screen-pixel shift of the drawn label, x right and y down, applied after
9177
+ * projection so it stays the same number of pixels at any distance, as
9178
+ * MapLibre's `text-translate`. Defaults to `(0, 0)`.
9179
+ * @param {Vec2 | null} [arg0]
9180
+ */
9181
+ set translate(arg0) {
9182
+ let ptr0 = 0;
9183
+ if (!isLikeNone(arg0)) {
9184
+ _assertClass(arg0, Vec2);
9185
+ ptr0 = arg0.__destroy_into_raw();
9186
+ }
9187
+ wasm.__wbg_set_textmaterial_translate(this.__wbg_ptr, ptr0);
9188
+ }
7545
9189
  /**
7546
9190
  * Enable transparency and alpha blending
7547
9191
  * @param {boolean | null} [arg0]
@@ -7549,6 +9193,19 @@ export class TextMaterial {
7549
9193
  set transparent(arg0) {
7550
9194
  wasm.__wbg_set_textmaterial_transparent(this.__wbg_ptr, isLikeNone(arg0) ? 0xFFFFFF : arg0 ? 1 : 0);
7551
9195
  }
9196
+ /**
9197
+ * Placements the declutter pass tries in order, keeping the first whose
9198
+ * box is free, as MapLibre's `text-variable-anchor-offset`. The one in
9199
+ * use is tried first, so a label only moves when it must. Overrides
9200
+ * `anchor` and `offset` when not empty, except along a line. Without
9201
+ * declutter the first is used.
9202
+ * @param {VariableAnchor[] | null} [arg0]
9203
+ */
9204
+ set variableAnchors(arg0) {
9205
+ var ptr0 = isLikeNone(arg0) ? 0 : passArrayJsValueToWasm0(arg0, wasm.__wbindgen_malloc);
9206
+ var len0 = WASM_VECTOR_LEN;
9207
+ wasm.__wbg_set_textmaterial_variableAnchors(this.__wbg_ptr, ptr0, len0);
9208
+ }
7552
9209
  }
7553
9210
  if (Symbol.dispose) TextMaterial.prototype[Symbol.dispose] = TextMaterial.prototype.free;
7554
9211
 
@@ -8363,6 +10020,83 @@ export class UpsamplableTerrainGeometry {
8363
10020
  }
8364
10021
  if (Symbol.dispose) UpsamplableTerrainGeometry.prototype[Symbol.dispose] = UpsamplableTerrainGeometry.prototype.free;
8365
10022
 
10023
+ /**
10024
+ * One placement a label may take, as an entry of MapLibre's
10025
+ * `text-variable-anchor-offset`.
10026
+ */
10027
+ export class VariableAnchor {
10028
+ static __wrap(ptr) {
10029
+ const obj = Object.create(VariableAnchor.prototype);
10030
+ obj.__wbg_ptr = ptr;
10031
+ VariableAnchorFinalization.register(obj, obj.__wbg_ptr, obj);
10032
+ return obj;
10033
+ }
10034
+ static __unwrap(jsValue) {
10035
+ if (!(jsValue instanceof VariableAnchor)) {
10036
+ return 0;
10037
+ }
10038
+ return jsValue.__destroy_into_raw();
10039
+ }
10040
+ __destroy_into_raw() {
10041
+ const ptr = this.__wbg_ptr;
10042
+ this.__wbg_ptr = 0;
10043
+ VariableAnchorFinalization.unregister(this);
10044
+ return ptr;
10045
+ }
10046
+ free() {
10047
+ const ptr = this.__destroy_into_raw();
10048
+ wasm.__wbg_variableanchor_free(ptr, 0);
10049
+ }
10050
+ /**
10051
+ * Part of the text block placed at the anchor point, as `anchor`.
10052
+ * @returns {string}
10053
+ */
10054
+ get anchor() {
10055
+ let deferred1_0;
10056
+ let deferred1_1;
10057
+ try {
10058
+ const ret = wasm.__wbg_get_variableanchor_anchor(this.__wbg_ptr);
10059
+ deferred1_0 = ret[0];
10060
+ deferred1_1 = ret[1];
10061
+ return getStringFromWasm0(ret[0], ret[1]);
10062
+ } finally {
10063
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
10064
+ }
10065
+ }
10066
+ /**
10067
+ * Shift from the anchor point, x right and y down, in ems. Defaults to
10068
+ * `(0, 0)`.
10069
+ * @returns {Vec2 | undefined}
10070
+ */
10071
+ get offset() {
10072
+ const ret = wasm.__wbg_get_variableanchor_offset(this.__wbg_ptr);
10073
+ return ret === 0 ? undefined : Vec2.__wrap(ret);
10074
+ }
10075
+ /**
10076
+ * Part of the text block placed at the anchor point, as `anchor`.
10077
+ * @param {string} arg0
10078
+ */
10079
+ set anchor(arg0) {
10080
+ const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
10081
+ const len0 = WASM_VECTOR_LEN;
10082
+ wasm.__wbg_set_variableanchor_anchor(this.__wbg_ptr, ptr0, len0);
10083
+ }
10084
+ /**
10085
+ * Shift from the anchor point, x right and y down, in ems. Defaults to
10086
+ * `(0, 0)`.
10087
+ * @param {Vec2 | null} [arg0]
10088
+ */
10089
+ set offset(arg0) {
10090
+ let ptr0 = 0;
10091
+ if (!isLikeNone(arg0)) {
10092
+ _assertClass(arg0, Vec2);
10093
+ ptr0 = arg0.__destroy_into_raw();
10094
+ }
10095
+ wasm.__wbg_set_variableanchor_offset(this.__wbg_ptr, ptr0);
10096
+ }
10097
+ }
10098
+ if (Symbol.dispose) VariableAnchor.prototype[Symbol.dispose] = VariableAnchor.prototype.free;
10099
+
8366
10100
  export class Vec2 {
8367
10101
  static __wrap(ptr) {
8368
10102
  const obj = Object.create(Vec2.prototype);
@@ -8665,6 +10399,22 @@ export class WasmShapedGlyph {
8665
10399
  const ret = wasm.__wbg_get_wasmshapedglyph_char_class(this.__wbg_ptr);
8666
10400
  return ret;
8667
10401
  }
10402
+ /**
10403
+ * Same cluster as the previous glyph; letter spacing skips these.
10404
+ * @returns {boolean}
10405
+ */
10406
+ get continues_cluster() {
10407
+ const ret = wasm.__wbg_get_wasmshapedglyph_continues_cluster(this.__wbg_ptr);
10408
+ return ret !== 0;
10409
+ }
10410
+ /**
10411
+ * One of the `shaping::DIRECTION_*` constants (segment direction).
10412
+ * @returns {number}
10413
+ */
10414
+ get direction() {
10415
+ const ret = wasm.__wbg_get_wasmshapedglyph_direction(this.__wbg_ptr);
10416
+ return ret;
10417
+ }
8668
10418
  /**
8669
10419
  * @returns {number}
8670
10420
  */
@@ -8714,6 +10464,20 @@ export class WasmShapedGlyph {
8714
10464
  set char_class(arg0) {
8715
10465
  wasm.__wbg_set_wasmshapedglyph_char_class(this.__wbg_ptr, arg0);
8716
10466
  }
10467
+ /**
10468
+ * Same cluster as the previous glyph; letter spacing skips these.
10469
+ * @param {boolean} arg0
10470
+ */
10471
+ set continues_cluster(arg0) {
10472
+ wasm.__wbg_set_wasmshapedglyph_continues_cluster(this.__wbg_ptr, arg0);
10473
+ }
10474
+ /**
10475
+ * One of the `shaping::DIRECTION_*` constants (segment direction).
10476
+ * @param {number} arg0
10477
+ */
10478
+ set direction(arg0) {
10479
+ wasm.__wbg_set_wasmshapedglyph_direction(this.__wbg_ptr, arg0);
10480
+ }
8717
10481
  /**
8718
10482
  * @param {number} arg0
8719
10483
  */
@@ -9122,6 +10886,14 @@ function __wbg_get_imports() {
9122
10886
  const ret = arg0.value;
9123
10887
  return ret;
9124
10888
  },
10889
+ __wbg_variableanchor_new: function(arg0) {
10890
+ const ret = VariableAnchor.__wrap(arg0);
10891
+ return ret;
10892
+ },
10893
+ __wbg_variableanchor_unwrap: function(arg0) {
10894
+ const ret = VariableAnchor.__unwrap(arg0);
10895
+ return ret;
10896
+ },
9125
10897
  __wbg_wasmglyphmetrics_new: function(arg0) {
9126
10898
  const ret = WasmGlyphMetrics.__wrap(arg0);
9127
10899
  return ret;
@@ -9357,6 +11129,9 @@ const UintAttributeFinalization = (typeof FinalizationRegistry === 'undefined')
9357
11129
  const UpsamplableTerrainGeometryFinalization = (typeof FinalizationRegistry === 'undefined')
9358
11130
  ? { register: () => {}, unregister: () => {} }
9359
11131
  : new FinalizationRegistry(ptr => wasm.__wbg_upsamplableterraingeometry_free(ptr, 1));
11132
+ const VariableAnchorFinalization = (typeof FinalizationRegistry === 'undefined')
11133
+ ? { register: () => {}, unregister: () => {} }
11134
+ : new FinalizationRegistry(ptr => wasm.__wbg_variableanchor_free(ptr, 1));
9360
11135
  const Vec2Finalization = (typeof FinalizationRegistry === 'undefined')
9361
11136
  ? { register: () => {}, unregister: () => {} }
9362
11137
  : new FinalizationRegistry(ptr => wasm.__wbg_vec2_free(ptr, 1));