maplibre-gl-layers 0.16.0 → 0.18.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.
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * name: maplibre-gl-layers
3
- * version: 0.16.0
3
+ * version: 0.18.0
4
4
  * description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
5
5
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
6
  * license: MIT
7
7
  * repository.url: https://github.com/kekyo/maplibre-gl-layers.git
8
- * git.commit.hash: 8d2149a6811cac25ed9d8c1d97acde73e1a38e25
8
+ * git.commit.hash: ca8392c8aa3aae7e0e4e3c871e195d49b125e481
9
9
  */
10
10
 
11
11
  import { SpriteAnchor, SpriteImageOffset, SpriteLocation, SpritePoint, SpriteScalingOptions, SpriteScreenPoint } from '../types';
@@ -40,21 +40,21 @@ export declare const normalizeAngleDeg: (angle: number) => number;
40
40
  export declare const multiplyMatrixAndVector: (matrix: MatrixInput, x: number, y: number, z: number, w: number) => [number, number, number, number];
41
41
  /**
42
42
  * Structure holding resolved sprite scaling options.
43
- * @property {number} metersPerPixel - Effective number of meters represented by each rendered pixel.
44
- * @property {number} zoomMin - Lowest zoom level at which scaling interpolation begins.
45
- * @property {number} zoomMax - Highest zoom level at which scaling interpolation ends.
46
- * @property {number} scaleMin - Scale multiplier applied at {@link ResolvedSpriteScalingOptions.zoomMin}.
47
- * @property {number} scaleMax - Scale multiplier applied at {@link ResolvedSpriteScalingOptions.zoomMax}.
48
- * @property {number} spriteMinPixel - Lower clamp for sprite size in pixels.
49
- * @property {number} spriteMaxPixel - Upper clamp for sprite size in pixels.
50
43
  */
51
44
  export interface ResolvedSpriteScalingOptions {
45
+ /** Effective number of meters represented by each rendered pixel. */
52
46
  metersPerPixel: number;
47
+ /** Lowest zoom level at which scaling interpolation begins. */
53
48
  zoomMin: number;
49
+ /** Highest zoom level at which scaling interpolation ends. */
54
50
  zoomMax: number;
51
+ /** Scale multiplier applied at {@link ResolvedSpriteScalingOptions.zoomMin}. */
55
52
  scaleMin: number;
53
+ /** Scale multiplier applied at {@link ResolvedSpriteScalingOptions.zoomMax}. */
56
54
  scaleMax: number;
55
+ /** Lower clamp for sprite size in pixels. */
57
56
  spriteMinPixel: number;
57
+ /** Upper clamp for sprite size in pixels. */
58
58
  spriteMaxPixel: number;
59
59
  }
60
60
  /**
@@ -257,53 +257,52 @@ export declare const calculateSurfaceDepthKey: (baseLngLat: Readonly<SpriteLocat
257
257
  export type ProjectLngLatFn = (lngLat: Readonly<SpriteLocation>) => SpriteScreenPoint | undefined;
258
258
  /**
259
259
  * Parameters required to resolve a billboard center position.
260
- * @typedef BillboardCenterParams
261
- * @property {SpriteScreenPoint} base - Reference screen-space position (usually anchor point).
262
- * @property {number} [imageWidth] - Source bitmap width in pixels.
263
- * @property {number} [imageHeight] - Source bitmap height in pixels.
264
- * @property {number} baseMetersPerPixel - Meters represented by a pixel at the sprite latitude.
265
- * @property {number} imageScale - User-provided scaling multiplier.
266
- * @property {number} zoomScaleFactor - Zoom-dependent scale multiplier.
267
- * @property {number} effectivePixelsPerMeter - Pixels per meter after perspective adjustments.
268
- * @property {number} spriteMinPixel - Lower clamp for the sprite's largest pixel dimension.
269
- * @property {number} spriteMaxPixel - Upper clamp for the sprite's largest pixel dimension.
270
- * @property {number} totalRotateDeg - Aggregate rotation applied to the sprite in degrees.
271
- * @property {SpriteAnchor} [anchor] - Anchor definition normalized between -1 and 1.
272
- * @property {SpriteImageOffset} [offset] - Offset definition applied in meters/deg.
273
260
  */
274
261
  export interface BillboardCenterParams {
262
+ /** Reference screen-space position (usually anchor point). */
275
263
  base: Readonly<SpriteScreenPoint>;
264
+ /** Source bitmap width in pixels. */
276
265
  imageWidth?: number;
266
+ /** Source bitmap height in pixels. */
277
267
  imageHeight?: number;
268
+ /** Meters represented by a pixel at the sprite latitude. */
278
269
  baseMetersPerPixel: number;
270
+ /** User-provided scaling multiplier. */
279
271
  imageScale: number;
272
+ /** Zoom-dependent scale multiplier. */
280
273
  zoomScaleFactor: number;
274
+ /** Pixels per meter after perspective adjustments. */
281
275
  effectivePixelsPerMeter: number;
276
+ /** Lower clamp for the sprite's largest pixel dimension. */
282
277
  spriteMinPixel: number;
278
+ /** Upper clamp for the sprite's largest pixel dimension. */
283
279
  spriteMaxPixel: number;
280
+ /** Aggregate rotation applied to the sprite in degrees. */
284
281
  totalRotateDeg: number;
282
+ /** Anchor definition normalized between -1 and 1. */
285
283
  anchor?: Readonly<SpriteAnchor>;
284
+ /** Offset definition applied in meters/deg. */
286
285
  offset?: Readonly<SpriteImageOffset>;
287
286
  }
288
287
  /**
289
288
  * Resolved properties describing the billboard center and derived dimensions.
290
- * @typedef BillboardCenterResult
291
- * @property {SpriteScreenPoint} center - Screen-space coordinate after offset adjustments.
292
- * @property {number} halfWidth - Half of the clamped pixel width.
293
- * @property {number} halfHeight - Half of the clamped pixel height.
294
- * @property {number} pixelWidth - Full pixel width after scaling and clamping.
295
- * @property {number} pixelHeight - Full pixel height after scaling and clamping.
296
- * @property {SpritePoint} anchorShift - Pixel delta caused by anchor rotation.
297
- * @property {SpritePoint} offsetShift - Pixel delta caused by radial offset.
298
289
  */
299
290
  export interface BillboardCenterResult {
291
+ /** Screen-space coordinate after offset adjustments. */
300
292
  center: SpriteScreenPoint;
293
+ /** Half of the clamped pixel width. */
301
294
  halfWidth: number;
295
+ /** Half of the clamped pixel height. */
302
296
  halfHeight: number;
297
+ /** Full pixel width after scaling and clamping. */
303
298
  pixelWidth: number;
299
+ /** Full pixel height after scaling and clamping. */
304
300
  pixelHeight: number;
301
+ /** Pixel delta caused by anchor rotation. */
305
302
  anchorShift: SpritePoint;
303
+ /** Pixel delta caused by radial offset. */
306
304
  offsetShift: SpritePoint;
305
+ /** Scaling adjustment applied during pixel dimension calculation. */
307
306
  scaleAdjustment: number;
308
307
  }
309
308
  /**
@@ -314,28 +313,26 @@ export interface BillboardCenterResult {
314
313
  export declare const calculateBillboardCenterPosition: (params: BillboardCenterParams) => BillboardCenterResult;
315
314
  /**
316
315
  * Parameters controlling how billboard corners are computed in screen space.
317
- * @typedef BillboardCornerParams
318
- * @property {SpriteScreenPoint} center - Screen-space coordinate for the billboard center after offsets.
319
- * @property {number} halfWidth - Half of the billboard width in pixels.
320
- * @property {number} halfHeight - Half of the billboard height in pixels.
321
- * @property {SpriteAnchor} [anchor] - Optional anchor definition normalized between -1 and 1.
322
- * @property {number} totalRotateDeg - Total rotation applied to the billboard in degrees.
323
316
  */
324
317
  export interface BillboardCornerParams {
318
+ /** Screen-space coordinate for the billboard center after offsets. */
325
319
  center: Readonly<SpriteScreenPoint>;
320
+ /** Half of the billboard width in pixels. */
326
321
  halfWidth: number;
322
+ /** Half of the billboard height in pixels. */
327
323
  halfHeight: number;
324
+ /** Optional anchor definition normalized between -1 and 1. */
328
325
  anchor?: Readonly<SpriteAnchor>;
326
+ /** Total rotation applied to the billboard in degrees. */
329
327
  totalRotateDeg: number;
330
328
  }
331
329
  /**
332
330
  * Screen-space coordinates combined with UV data for a quad corner.
333
- * @typedef QuadCorner
334
- * @property {number} u - Texture u coordinate.
335
- * @property {number} v - Texture v coordinate.
336
331
  */
337
332
  export interface QuadCorner extends SpriteScreenPoint {
333
+ /** Texture u coordinate. */
338
334
  readonly u: number;
335
+ /** Texture v coordinate. */
339
336
  readonly v: number;
340
337
  }
341
338
  /**
@@ -356,68 +353,66 @@ export type SurfaceShaderCornerModel = SurfaceCorner & SpriteLocation;
356
353
  export declare const computeSurfaceCornerShaderModel: (params: SurfaceShaderModelParams) => SurfaceShaderCornerModel[];
357
354
  /**
358
355
  * Parameters for projecting a surface sprite's center into screen space.
359
- * @typedef SurfaceCenterParams
360
- * @property {SpriteLocation} baseLngLat - Base geographic location of the sprite.
361
- * @property {number} [imageWidth] - Source bitmap width in pixels.
362
- * @property {number} [imageHeight] - Source bitmap height in pixels.
363
- * @property {number} baseMetersPerPixel - Base meters per pixel at the sprite latitude.
364
- * @property {number} imageScale - User-provided scaling multiplier.
365
- * @property {number} zoomScaleFactor - Zoom-dependent scale multiplier.
366
- * @property {number} totalRotateDeg - Rotation applied to the sprite in degrees.
367
- * @property {SpriteAnchor} [anchor] - Anchor definition normalized between -1 and 1.
368
- * @property {SpriteImageOffset} [offset] - Offset definition applied in meters/deg.
369
- * @property {number} [effectivePixelsPerMeter] - Conversion rate from meters to on-screen pixels.
370
- * @property {number} [spriteMinPixel] - Lower clamp for the sprite's largest pixel dimension.
371
- * @property {number} [spriteMaxPixel] - Upper clamp for the sprite's largest pixel dimension.
372
- * @property {ProjectLngLatFn} [project] - Projection function mapping longitude/latitude to screen space.
373
- * @property {ProjectToClipSpaceFn} [projectToClipSpace] - Projection into clip space when available.
374
- * @property {number} [drawingBufferWidth] - WebGL drawing buffer width in device pixels.
375
- * @property {number} [drawingBufferHeight] - WebGL drawing buffer height in device pixels.
376
- * @property {number} [pixelRatio] - Device pixel ratio relating CSS pixels to device pixels.
377
- * @property {boolean} [resolveAnchorless] - When true, also computes the anchorless center.
378
356
  */
379
357
  export interface SurfaceCenterParams {
358
+ /** Base geographic location of the sprite. */
380
359
  baseLngLat: Readonly<SpriteLocation>;
360
+ /** Source bitmap width in pixels. */
381
361
  imageWidth?: number;
362
+ /** Source bitmap height in pixels. */
382
363
  imageHeight?: number;
364
+ /** Base meters per pixel at the sprite latitude. */
383
365
  baseMetersPerPixel: number;
366
+ /** User-provided scaling multiplier. */
384
367
  imageScale: number;
368
+ /** Zoom-dependent scale multiplier. */
385
369
  zoomScaleFactor: number;
370
+ /** Rotation applied to the sprite in degrees. */
386
371
  totalRotateDeg: number;
372
+ /** Anchor definition normalized between -1 and 1. */
387
373
  anchor?: Readonly<SpriteAnchor>;
374
+ /** Offset definition applied in meters/deg. */
388
375
  offset?: Readonly<SpriteImageOffset>;
376
+ /** Conversion rate from meters to on-screen pixels. */
389
377
  effectivePixelsPerMeter?: number;
378
+ /** Lower clamp for the sprite's largest pixel dimension. */
390
379
  spriteMinPixel?: number;
380
+ /** Upper clamp for the sprite's largest pixel dimension. */
391
381
  spriteMaxPixel?: number;
382
+ /** Projection function mapping longitude/latitude to screen space. */
392
383
  project?: ProjectLngLatFn;
384
+ /** Projection into clip space when available. */
393
385
  projectToClipSpace?: ProjectToClipSpaceFn;
386
+ /** WebGL drawing buffer width in device pixels. */
394
387
  drawingBufferWidth?: number;
388
+ /** WebGL drawing buffer height in device pixels. */
395
389
  drawingBufferHeight?: number;
390
+ /** Device pixel ratio relating CSS pixels to device pixels. */
396
391
  pixelRatio?: number;
392
+ /** When true, also computes the anchorless center. */
397
393
  resolveAnchorless?: boolean;
398
394
  }
399
395
  /**
400
396
  * Output describing the resolved surface center and displacement details.
401
- * @typedef SurfaceCenterResult
402
- * @property {SpriteScreenPoint | undefined} center - Projected screen coordinates or `undefined` when projection fails.
403
- * @property {{ width: number; height: number; scaleAdjustment: number }} worldDimensions - Sprite dimensions in world meters.
404
- * @property {SurfaceCorner} totalDisplacement - Combined anchor and offset displacement in meters.
405
- * @property {SpriteLocation} displacedLngLat - Geographic coordinates after applying displacement.
406
- * @property {SpriteScreenPoint | null | undefined} [anchorlessCenter] - Anchorless screen coordinates when requested.
407
- * @property {SurfaceCorner | undefined} [anchorlessDisplacement] - Offset-only displacement when requested.
408
- * @property {SpriteLocation | undefined} [anchorlessLngLat] - Anchorless geographic coordinate when requested.
409
397
  */
410
398
  export interface SurfaceCenterResult {
399
+ /** Projected screen coordinates or `undefined` when projection fails. */
411
400
  center: Readonly<SpriteScreenPoint> | undefined;
401
+ /** Sprite dimensions in world meters. */
412
402
  worldDimensions: Readonly<{
413
403
  width: number;
414
404
  height: number;
415
405
  scaleAdjustment: number;
416
406
  }>;
407
+ /** Combined anchor and offset displacement in meters. */
417
408
  totalDisplacement: Readonly<SurfaceCorner>;
409
+ /** Geographic coordinates after applying displacement. */
418
410
  displacedLngLat: Readonly<SpriteLocation>;
411
+ /** Anchorless screen coordinates when requested. */
419
412
  anchorlessCenter?: Readonly<SpriteScreenPoint> | null;
413
+ /** Offset-only displacement when requested. */
420
414
  anchorlessDisplacement?: Readonly<SurfaceCorner>;
415
+ /** Anchorless geographic coordinate when requested. */
421
416
  anchorlessLngLat?: Readonly<SpriteLocation>;
422
417
  }
423
418
  /**
@@ -428,28 +423,26 @@ export interface SurfaceCenterResult {
428
423
  export declare const calculateSurfaceCenterPosition: (params: SurfaceCenterParams) => SurfaceCenterResult;
429
424
  /**
430
425
  * Parameters describing how to compute each surface corner displacement.
431
- * @typedef SurfaceCornerParams
432
- * @property {number} worldWidthMeters - Width of the sprite footprint in meters.
433
- * @property {number} worldHeightMeters - Height of the sprite footprint in meters.
434
- * @property {SpriteAnchor} anchor - Anchor definition normalized between -1 and 1.
435
- * @property {number} totalRotateDeg - Rotation applied to the surface in degrees.
436
- * @property {SurfaceCorner} offsetMeters - Additional displacement applied uniformly to all corners.
437
426
  */
438
427
  export interface SurfaceCornerParams {
428
+ /** Width of the sprite footprint in meters. */
439
429
  worldWidthMeters: number;
430
+ /** Height of the sprite footprint in meters. */
440
431
  worldHeightMeters: number;
432
+ /** Anchor definition normalized between -1 and 1. */
441
433
  anchor: Readonly<SpriteAnchor>;
434
+ /** Rotation applied to the surface in degrees. */
442
435
  totalRotateDeg: number;
436
+ /** Additional displacement applied uniformly to all corners. */
443
437
  offsetMeters: Readonly<SurfaceCorner>;
444
438
  }
445
439
  /**
446
440
  * East/north displacement for an individual surface corner.
447
- * @typedef SurfaceCorner
448
- * @property {number} east - Eastward offset in meters relative to the base center.
449
- * @property {number} north - Northward offset in meters relative to the base center.
450
441
  */
451
442
  export interface SurfaceCorner {
443
+ /** Eastward offset in meters relative to the base center. */
452
444
  readonly east: number;
445
+ /** Northward offset in meters relative to the base center. */
453
446
  readonly north: number;
454
447
  }
455
448
  /**
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * name: maplibre-gl-layers
3
- * version: 0.16.0
3
+ * version: 0.18.0
4
4
  * description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
5
5
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
6
  * license: MIT
7
7
  * repository.url: https://github.com/kekyo/maplibre-gl-layers.git
8
- * git.commit.hash: 8d2149a6811cac25ed9d8c1d97acde73e1a38e25
8
+ * git.commit.hash: ca8392c8aa3aae7e0e4e3c871e195d49b125e481
9
9
  */
10
10
 
11
11
  import { ImageHandleBufferController, IdHandler, RenderTargetBucketBuffers, RenderTargetEntryLike, SpriteOriginReference } from '../internalTypes';
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * name: maplibre-gl-layers
3
- * version: 0.16.0
3
+ * version: 0.18.0
4
4
  * description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
5
5
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
6
  * license: MIT
7
7
  * repository.url: https://github.com/kekyo/maplibre-gl-layers.git
8
- * git.commit.hash: 8d2149a6811cac25ed9d8c1d97acde73e1a38e25
8
+ * git.commit.hash: ca8392c8aa3aae7e0e4e3c871e195d49b125e481
9
9
  */
10
10
 
11
11
  declare const _default: {
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "git": {
3
3
  "tags": [
4
- "0.16.0"
4
+ "0.18.0"
5
5
  ],
6
6
  "branches": [
7
7
  "main"
8
8
  ],
9
- "version": "0.16.0",
9
+ "version": "0.18.0",
10
10
  "commit": {
11
- "hash": "8d2149a6811cac25ed9d8c1d97acde73e1a38e25",
12
- "shortHash": "8d2149a",
13
- "date": "2025-11-18T18:12:19+09:00Z",
11
+ "hash": "ca8392c8aa3aae7e0e4e3c871e195d49b125e481",
12
+ "shortHash": "ca8392c",
13
+ "date": "2025-11-20T15:27:46+09:00Z",
14
14
  "message": "Merge branch 'develop'"
15
15
  }
16
16
  },
17
- "version": "0.16.0",
17
+ "version": "0.18.0",
18
18
  "description": "MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images",
19
19
  "author": "Kouji Matsui (@kekyo@mi.kekyo.net)",
20
20
  "license": "MIT",