maplibre-gl-layers 0.19.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.cjs +8646 -6335
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1353 -7
- package/dist/index.mjs +8645 -6334
- package/dist/index.mjs.map +1 -1
- package/dist/wasm/offloads-nosimd.wasm +0 -0
- package/dist/wasm/offloads-simd-mt.wasm +0 -0
- package/dist/wasm/offloads-simd.wasm +0 -0
- package/package.json +10 -9
- package/dist/SpriteLayer.d.ts +0 -41
- package/dist/config.d.ts +0 -26
- package/dist/const.d.ts +0 -98
- package/dist/default.d.ts +0 -29
- package/dist/gl/atlas.d.ts +0 -64
- package/dist/gl/hitTest.d.ts +0 -54
- package/dist/gl/mouseEvents.d.ts +0 -36
- package/dist/gl/shader.d.ts +0 -114
- package/dist/gl/text.d.ts +0 -17
- package/dist/gl/tracking.d.ts +0 -36
- package/dist/host/calculationHost.d.ts +0 -87
- package/dist/host/mapLibreProjectionHost.d.ts +0 -18
- package/dist/host/projectionHost.d.ts +0 -62
- package/dist/host/runtime.d.ts +0 -38
- package/dist/host/wasmCalculationHost.d.ts +0 -72
- package/dist/host/wasmHost.d.ts +0 -133
- package/dist/host/wasmProjectionHost.d.ts +0 -19
- package/dist/internalTypes.d.ts +0 -582
- package/dist/interpolation/degreeInterpolation.d.ts +0 -48
- package/dist/interpolation/distanceInterpolation.d.ts +0 -31
- package/dist/interpolation/easing.d.ts +0 -26
- package/dist/interpolation/interpolationChannels.d.ts +0 -59
- package/dist/interpolation/locationInterpolation.d.ts +0 -30
- package/dist/interpolation/rotationInterpolation.d.ts +0 -40
- package/dist/types.d.ts +0 -944
- package/dist/utils/color.d.ts +0 -20
- package/dist/utils/image.d.ts +0 -32
- package/dist/utils/looseQuadTree.d.ts +0 -34
- package/dist/utils/math.d.ts +0 -451
- package/dist/utils/utils.d.ts +0 -37
- package/dist/wasm/config.json.d.ts +0 -16
package/dist/utils/color.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* name: maplibre-gl-layers
|
|
3
|
-
* version: 0.19.0
|
|
4
|
-
* description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
|
|
5
|
-
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
|
-
* license: MIT
|
|
7
|
-
* repository.url: https://github.com/kekyo/maplibre-gl-layers.git
|
|
8
|
-
* git.commit.hash: 7bc93c11d7855dedb8d60f140af4e413252c32a7
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { RgbaColor } from '../internalTypes';
|
|
12
|
-
/**
|
|
13
|
-
* Parses a CSS color string into normalized RGBA values.
|
|
14
|
-
* Falls back to the supplied default when parsing fails.
|
|
15
|
-
*
|
|
16
|
-
* @param color CSS color string to parse.
|
|
17
|
-
* @param fallback Fallback value used when parsing fails.
|
|
18
|
-
* @returns Parsed RGBA tuple.
|
|
19
|
-
*/
|
|
20
|
-
export declare const parseCssColorToRgba: (color: string | undefined, fallback: RgbaColor) => RgbaColor;
|
package/dist/utils/image.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* name: maplibre-gl-layers
|
|
3
|
-
* version: 0.19.0
|
|
4
|
-
* description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
|
|
5
|
-
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
|
-
* license: MIT
|
|
7
|
-
* repository.url: https://github.com/kekyo/maplibre-gl-layers.git
|
|
8
|
-
* git.commit.hash: 7bc93c11d7855dedb8d60f140af4e413252c32a7
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { SpriteImageRegisterOptions } from '../types';
|
|
12
|
-
export type SvgSizeResolutionErrorCode = 'size-missing' | 'viewbox-disabled' | 'invalid-dimensions';
|
|
13
|
-
export declare class SvgSizeResolutionError extends Error implements Error {
|
|
14
|
-
readonly code: SvgSizeResolutionErrorCode;
|
|
15
|
-
constructor(message: string, code: SvgSizeResolutionErrorCode);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Helper that read an ImageBitmap from a blob.
|
|
19
|
-
* @param blob Target blob.
|
|
20
|
-
* @param options Optional reading options.
|
|
21
|
-
* @returns Promise resolving to the ImageBitmap.
|
|
22
|
-
* @remarks This function helps reading SVG with better manner.
|
|
23
|
-
*/
|
|
24
|
-
export declare const readImageBitmap: (blob: Blob, options?: SpriteImageRegisterOptions) => Promise<ImageBitmap>;
|
|
25
|
-
/**
|
|
26
|
-
* Helper that loads an ImageBitmap from a URL.
|
|
27
|
-
* @param url Target image URL.
|
|
28
|
-
* @param options Optional loading options.
|
|
29
|
-
* @returns Promise resolving to the ImageBitmap.
|
|
30
|
-
* @remarks This function helps loading SVG with better manner.
|
|
31
|
-
*/
|
|
32
|
-
export declare const loadImageBitmap: (url: string, options?: SpriteImageRegisterOptions) => Promise<ImageBitmap>;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* name: maplibre-gl-layers
|
|
3
|
-
* version: 0.19.0
|
|
4
|
-
* description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
|
|
5
|
-
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
|
-
* license: MIT
|
|
7
|
-
* repository.url: https://github.com/kekyo/maplibre-gl-layers.git
|
|
8
|
-
* git.commit.hash: 7bc93c11d7855dedb8d60f140af4e413252c32a7
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
export interface Rect {
|
|
12
|
-
readonly x0: number;
|
|
13
|
-
readonly y0: number;
|
|
14
|
-
readonly x1: number;
|
|
15
|
-
readonly y1: number;
|
|
16
|
-
}
|
|
17
|
-
export interface Item<TState> extends Rect {
|
|
18
|
-
readonly state: TState;
|
|
19
|
-
}
|
|
20
|
-
export interface LooseQuadTree<TState> {
|
|
21
|
-
readonly size: number;
|
|
22
|
-
readonly add: (item: Item<TState>) => void;
|
|
23
|
-
readonly remove: (x0: number, y0: number, x1: number, y1: number, item: Item<TState>) => boolean;
|
|
24
|
-
readonly update: (oldX0: number, oldY0: number, oldX1: number, oldY1: number, newX0: number, newY0: number, newX1: number, newY1: number, item: Item<TState>) => boolean;
|
|
25
|
-
readonly lookup: (x0: number, y0: number, x1: number, y1: number) => Item<TState>[];
|
|
26
|
-
readonly clear: () => void;
|
|
27
|
-
}
|
|
28
|
-
export interface LooseQuadTreeOptions {
|
|
29
|
-
readonly bounds: Rect;
|
|
30
|
-
readonly maxItemsPerNode?: number;
|
|
31
|
-
readonly maxDepth?: number;
|
|
32
|
-
readonly looseness?: number;
|
|
33
|
-
}
|
|
34
|
-
export declare const createLooseQuadTree: <TState>(options: LooseQuadTreeOptions) => LooseQuadTree<TState>;
|
package/dist/utils/math.d.ts
DELETED
|
@@ -1,451 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* name: maplibre-gl-layers
|
|
3
|
-
* version: 0.19.0
|
|
4
|
-
* description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
|
|
5
|
-
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
|
-
* license: MIT
|
|
7
|
-
* repository.url: https://github.com/kekyo/maplibre-gl-layers.git
|
|
8
|
-
* git.commit.hash: 7bc93c11d7855dedb8d60f140af4e413252c32a7
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { SpriteAnchor, SpriteLocation, SpritePoint, SpriteScalingOptions, SpriteScreenPoint } from '../types';
|
|
12
|
-
import { InternalSpriteCurrentState, MatrixInput, ProjectionHost, SpriteMercatorCoordinate } from '../internalTypes';
|
|
13
|
-
export type OffsetInput = {
|
|
14
|
-
offsetMeters?: number;
|
|
15
|
-
offsetDeg?: number;
|
|
16
|
-
} | undefined;
|
|
17
|
-
/**
|
|
18
|
-
* Produces a deep copy so later updates do not mutate the original object.
|
|
19
|
-
*/
|
|
20
|
-
export declare const cloneSpriteLocation: (location: SpriteLocation) => SpriteLocation;
|
|
21
|
-
/**
|
|
22
|
-
* Linearly interpolates longitude, latitude, and optionally altitude.
|
|
23
|
-
* The `ratio` may fall outside [0, 1]; callers are responsible for clamping if needed.
|
|
24
|
-
*/
|
|
25
|
-
export declare const lerpSpriteLocation: (from: SpriteLocation, to: SpriteLocation, ratio: number) => SpriteLocation;
|
|
26
|
-
/**
|
|
27
|
-
* Compares two locations. Treats altitude as equal when either side is undefined.
|
|
28
|
-
*/
|
|
29
|
-
export declare const spriteLocationsEqual: (a: SpriteLocation, b: SpriteLocation) => boolean;
|
|
30
|
-
export declare const calculateCartesianDistanceMeters: (a: Readonly<SpriteLocation>, b: Readonly<SpriteLocation>) => number;
|
|
31
|
-
/**
|
|
32
|
-
* Normalizes an angle in degrees to the [0, 360) range.
|
|
33
|
-
*/
|
|
34
|
-
export declare const normalizeAngleDeg: (angle: number) => number;
|
|
35
|
-
/**
|
|
36
|
-
* Multiplies a 4x4 matrix with a 4-component vector using row-major indexing.
|
|
37
|
-
* @param {MatrixInput} matrix - Matrix to multiply.
|
|
38
|
-
* @param {number} x - X component of the vector.
|
|
39
|
-
* @param {number} y - Y component of the vector.
|
|
40
|
-
* @param {number} z - Z component of the vector.
|
|
41
|
-
* @param {number} w - W component of the vector.
|
|
42
|
-
* @returns {[number, number, number, number]} Resulting homogeneous coordinate.
|
|
43
|
-
*/
|
|
44
|
-
export declare const multiplyMatrixAndVector: (matrix: MatrixInput, x: number, y: number, z: number, w: number) => [number, number, number, number];
|
|
45
|
-
/**
|
|
46
|
-
* Structure holding resolved sprite scaling options.
|
|
47
|
-
*/
|
|
48
|
-
export interface ResolvedSpriteScalingOptions {
|
|
49
|
-
/** Effective number of meters represented by each rendered pixel. */
|
|
50
|
-
metersPerPixel: number;
|
|
51
|
-
/** Distance at or below which sprites stop growing further. */
|
|
52
|
-
minScaleDistanceMeters: number;
|
|
53
|
-
/** Distance at or above which sprites stop shrinking further. */
|
|
54
|
-
maxScaleDistanceMeters: number;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Fills missing {@link SpriteScalingOptions} values with defaults so downstream math can assume a complete object.
|
|
58
|
-
* @param options Optional scaling configuration from the caller.
|
|
59
|
-
* @returns {ResolvedSpriteScalingOptions} Resolved scaling settings covering every field.
|
|
60
|
-
*/
|
|
61
|
-
export declare const resolveScalingOptions: (options?: SpriteScalingOptions) => ResolvedSpriteScalingOptions;
|
|
62
|
-
/**
|
|
63
|
-
* Computes a scale factor based on camera-to-sprite distance.
|
|
64
|
-
* @param {number} distanceMeters - Calculated distance from camera to sprite.
|
|
65
|
-
* @param {ResolvedSpriteScalingOptions} scaling - Resolved scaling options.
|
|
66
|
-
* @returns {number} Scale multiplier that clamps near/far distances to maintain consistent sizing.
|
|
67
|
-
*/
|
|
68
|
-
export declare const calculateDistanceScaleFactor: (distanceMeters: number, scaling: ResolvedSpriteScalingOptions) => number;
|
|
69
|
-
/**
|
|
70
|
-
* Calculates meters per pixel at the given latitude.
|
|
71
|
-
* Uses Web Mercator scale and applies the latitude-based cosine correction.
|
|
72
|
-
* @param {number} zoom - Map zoom level used to determine the Mercator scale.
|
|
73
|
-
* @param {number} latitude - Latitude in degrees where the meters-per-pixel value is resolved.
|
|
74
|
-
* @returns {number} Distance in meters represented by a single pixel at the provided latitude.
|
|
75
|
-
*/
|
|
76
|
-
export declare const calculateMetersPerPixelAtLatitude: (zoom: number, latitude: number) => number;
|
|
77
|
-
/**
|
|
78
|
-
* Checks whether a value is finite and not `NaN`.
|
|
79
|
-
* @param {number} value - Value to validate.
|
|
80
|
-
* @returns {boolean} `true` when the number is both finite and not `NaN`.
|
|
81
|
-
*/
|
|
82
|
-
export declare const isFiniteNumber: (value: number) => boolean;
|
|
83
|
-
/**
|
|
84
|
-
* Calculates the distance and bearing between two points in meters.
|
|
85
|
-
* @param {SpriteLocation} from - Starting point expressed in longitude/latitude (degrees) and optional altitude.
|
|
86
|
-
* @param {SpriteLocation} to - Destination point expressed in longitude/latitude (degrees) and optional altitude.
|
|
87
|
-
* @returns {{ distanceMeters: number; bearingDeg: number }} Distance in meters and bearing clockwise from north.
|
|
88
|
-
*/
|
|
89
|
-
export declare const calculateDistanceAndBearingMeters: (from: SpriteLocation, to: SpriteLocation) => {
|
|
90
|
-
distanceMeters: number;
|
|
91
|
-
bearingDeg: number;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Calculates billboard image dimensions in pixels.
|
|
95
|
-
* @param {number | undefined} imageWidth - Source bitmap width in pixels.
|
|
96
|
-
* @param {number | undefined} imageHeight - Source bitmap height in pixels.
|
|
97
|
-
* @param {number} baseMetersPerPixel - Base scale derived from map zoom and latitude.
|
|
98
|
-
* @param {number} imageScale - User-provided scale multiplier.
|
|
99
|
-
* @param {number} distanceScaleFactor - Distance-dependent scale multiplier.
|
|
100
|
-
* @param {number} effectivePixelsPerMeter - Conversion between world meters and screen pixels.
|
|
101
|
-
* @returns {{ width: number; height: number; scaleAdjustment: number }} Pixel dimensions alongside the scale factor (always 1 without clamping).
|
|
102
|
-
*/
|
|
103
|
-
export declare const calculateBillboardPixelDimensions: (imageWidth: number | undefined, imageHeight: number | undefined, baseMetersPerPixel: number, imageScale: number, distanceScaleFactor: number, effectivePixelsPerMeter: number) => {
|
|
104
|
-
width: number;
|
|
105
|
-
height: number;
|
|
106
|
-
scaleAdjustment: number;
|
|
107
|
-
};
|
|
108
|
-
/**
|
|
109
|
-
* Computes the billboard offset in screen-space pixels.
|
|
110
|
-
* @param {OffsetInput} offset - Offset configuration describing length (meters) and heading (degrees).
|
|
111
|
-
* @param {number} imageScale - User-provided scale multiplier applied to the offset distance.
|
|
112
|
-
* @param {number} distanceScaleFactor - Distance-dependent scale multiplier.
|
|
113
|
-
* @param {number} effectivePixelsPerMeter - Conversion factor from meters to pixels.
|
|
114
|
-
* @param {number} [sizeScaleAdjustment=1] - Additional scale factor applied when sprite size is clamped.
|
|
115
|
-
* @returns {SpriteScreenPoint} Screen-space offset relative to the billboard center.
|
|
116
|
-
*/
|
|
117
|
-
export declare const calculateBillboardOffsetPixels: (offset: OffsetInput, imageScale: number, distanceScaleFactor: number, effectivePixelsPerMeter: number, sizeScaleAdjustment?: number) => SpriteScreenPoint;
|
|
118
|
-
/**
|
|
119
|
-
* Computes the screen-space shift caused by anchor rotation for billboards.
|
|
120
|
-
* @param {number} halfWidth - Half of the sprite width in pixels.
|
|
121
|
-
* @param {number} halfHeight - Half of the sprite height in pixels.
|
|
122
|
-
* @param {SpriteAnchor | undefined} anchor - Anchor definition normalized to [-1, 1] range.
|
|
123
|
-
* @param {number} totalRotateDeg - Rotation applied to the sprite, combining user and bearing rotations.
|
|
124
|
-
* @returns {SpritePoint} Pixel delta required to bring the anchor back to the requested origin.
|
|
125
|
-
*/
|
|
126
|
-
export declare const calculateBillboardAnchorShiftPixels: (halfWidth: number, halfHeight: number, anchor: SpriteAnchor | undefined, totalRotateDeg: number) => SpritePoint;
|
|
127
|
-
/**
|
|
128
|
-
* Calculates surface image dimensions in world meters.
|
|
129
|
-
* @param {number | undefined} imageWidth - Source bitmap width in pixels.
|
|
130
|
-
* @param {number | undefined} imageHeight - Source bitmap height in pixels.
|
|
131
|
-
* @param {number} baseMetersPerPixel - World meters represented by a pixel at the current zoom.
|
|
132
|
-
* @param {number} imageScale - User-provided scale multiplier.
|
|
133
|
-
* @param {number} distanceScaleFactor - Distance-dependent scale multiplier.
|
|
134
|
-
* @returns {{ width: number; height: number; scaleAdjustment: number }} World dimensions in meters and the applied clamp scale factor (always 1 without clamping).
|
|
135
|
-
*/
|
|
136
|
-
export declare const calculateSurfaceWorldDimensions: (imageWidth: number | undefined, imageHeight: number | undefined, baseMetersPerPixel: number, imageScale: number, distanceScaleFactor: number) => {
|
|
137
|
-
width: number;
|
|
138
|
-
height: number;
|
|
139
|
-
scaleAdjustment: number;
|
|
140
|
-
};
|
|
141
|
-
/**
|
|
142
|
-
* Computes east/north shifts from anchor rotation on surface images.
|
|
143
|
-
* @param {number} halfWidthMeters - Half of the world-space width.
|
|
144
|
-
* @param {number} halfHeightMeters - Half of the world-space height.
|
|
145
|
-
* @param {SpriteAnchor | undefined} anchor - Anchor definition normalized to [-1, 1] range.
|
|
146
|
-
* @param {number} totalRotateDeg - Rotation angle applied to the surface.
|
|
147
|
-
* @returns {SurfaceCorner} Displacement in meters required to apply the anchor.
|
|
148
|
-
*/
|
|
149
|
-
export declare const calculateSurfaceAnchorShiftMeters: (halfWidthMeters: number, halfHeightMeters: number, anchor: SpriteAnchor | undefined, totalRotateDeg: number) => SurfaceCorner;
|
|
150
|
-
/**
|
|
151
|
-
* Calculates surface image offsets in meters.
|
|
152
|
-
* @param {OffsetInput} offset - Offset configuration for the surface sprite.
|
|
153
|
-
* @param {number} imageScale - User-provided scale multiplier applied to the offset distance.
|
|
154
|
-
* @param {number} distanceScaleFactor - Distance-dependent scale multiplier.
|
|
155
|
-
* @param {number} [sizeScaleAdjustment=1] - Additional scale factor applied when sprite size is clamped.
|
|
156
|
-
* @returns {SurfaceCorner} Offset vector in meters.
|
|
157
|
-
*/
|
|
158
|
-
export declare const calculateSurfaceOffsetMeters: (offset: OffsetInput, imageScale: number, distanceScaleFactor: number, sizeScaleAdjustment?: number) => SurfaceCorner;
|
|
159
|
-
/**
|
|
160
|
-
* Adds east/north distances (meters) to a longitude/latitude pair.
|
|
161
|
-
* @param {number} location - Base location in degrees.
|
|
162
|
-
* @param {number} east - Eastward displacement in meters.
|
|
163
|
-
* @param {number} north - Northward displacement in meters.
|
|
164
|
-
* @returns {SpriteLocation} New geographic position after applying the displacement.
|
|
165
|
-
*/
|
|
166
|
-
export declare const applySurfaceDisplacement: (location: SpriteLocation, corner: SurfaceCorner) => SpriteLocation;
|
|
167
|
-
/**
|
|
168
|
-
* Converts screen coordinates to clip space.
|
|
169
|
-
* @param {number} point - Screen-space coordinate in CSS pixels.
|
|
170
|
-
* @param {number} drawingBufferWidth - WebGL drawing buffer width in device pixels.
|
|
171
|
-
* @param {number} drawingBufferHeight - WebGL drawing buffer height in device pixels.
|
|
172
|
-
* @param {number} pixelRatio - Device pixel ratio used to scale CSS pixels to device pixels.
|
|
173
|
-
* @returns {[number, number]} Clip-space coordinates in the range [-1, 1].
|
|
174
|
-
*/
|
|
175
|
-
export declare const screenToClip: (point: SpriteScreenPoint, drawingBufferWidth: number, drawingBufferHeight: number, pixelRatio: number) => [number, number];
|
|
176
|
-
/**
|
|
177
|
-
* Converts homogeneous clip coordinates back into screen-space pixels.
|
|
178
|
-
* @param {[number, number, number, number]} clipPosition - Homogeneous clip coordinates.
|
|
179
|
-
* @param {number} drawingBufferWidth - WebGL drawing buffer width in device pixels.
|
|
180
|
-
* @param {number} drawingBufferHeight - WebGL drawing buffer height in device pixels.
|
|
181
|
-
* @param {number} pixelRatio - Device pixel ratio relating CSS pixels to device pixels.
|
|
182
|
-
* @returns {SpriteScreenPoint | null} Screen-space coordinates or `null` when invalid.
|
|
183
|
-
*/
|
|
184
|
-
export declare const clipToScreen: (clipPosition: readonly [number, number, number, number], drawingBufferWidth: number, drawingBufferHeight: number, pixelRatio: number) => SpriteScreenPoint | null;
|
|
185
|
-
/**
|
|
186
|
-
* Calculates the conversion factor between meters and pixels taking perspective into account.
|
|
187
|
-
* @param {number} metersPerPixelAtLatitude - Meters covered by a single pixel at the sprite latitude.
|
|
188
|
-
* @param {number} perspectiveRatio - Additional scale factor introduced by perspective settings.
|
|
189
|
-
* @returns {number} Effective pixels per meter along the camera ray.
|
|
190
|
-
*/
|
|
191
|
-
export declare const calculateEffectivePixelsPerMeter: (metersPerPixelAtLatitude: number, perspectiveRatio: number) => number;
|
|
192
|
-
/**
|
|
193
|
-
* Projects a geographic coordinate and elevation into homogeneous clip space.
|
|
194
|
-
* @typedef ProjectToClipSpaceFn
|
|
195
|
-
* @param {number} location - Location in degrees.
|
|
196
|
-
* @returns {[number, number, number, number] | undefined} Homogeneous clip coordinates or `undefined` when outside the view.
|
|
197
|
-
*/
|
|
198
|
-
export type ProjectToClipSpaceFn = (location: Readonly<SpriteLocation>) => [number, number, number, number] | undefined;
|
|
199
|
-
/**
|
|
200
|
-
* Unprojects a screen-space point back to longitude/latitude.
|
|
201
|
-
* @typedef UnprojectPointFn
|
|
202
|
-
* @param {SpriteScreenPoint} point - Screen-space coordinates in pixels.
|
|
203
|
-
* @returns {SpriteLocation | undefined} Geographic location or `undefined` when unprojection fails.
|
|
204
|
-
*/
|
|
205
|
-
export type UnprojectPointFn = (point: Readonly<SpriteScreenPoint>) => SpriteLocation | undefined;
|
|
206
|
-
/**
|
|
207
|
-
* Resolves a depth key for billboards by sampling the clip-space Z at the sprite center.
|
|
208
|
-
* @param {SpriteScreenPoint} center - Screen-space center of the billboard in pixels.
|
|
209
|
-
* @param {SpriteLocation} spriteLocation - Geographic location including optional altitude.
|
|
210
|
-
* @param {UnprojectPointFn} unproject - Function for converting screen coordinates to geographic coordinates.
|
|
211
|
-
* @param {ProjectToClipSpaceFn} projectToClipSpace - Function that projects a geographic coordinate to clip space.
|
|
212
|
-
* @returns {number | undefined} Negative normalized device coordinate Z used for depth sorting, or `undefined` when unavailable.
|
|
213
|
-
*/
|
|
214
|
-
export declare const calculateBillboardDepthKey: (center: Readonly<SpriteScreenPoint>, unproject: UnprojectPointFn, projectToClipSpace: ProjectToClipSpaceFn) => number | undefined;
|
|
215
|
-
/**
|
|
216
|
-
* Signature for surface depth bias callbacks that tweak clip-space Z/W.
|
|
217
|
-
* @typedef SurfaceDepthBiasFn
|
|
218
|
-
* @param {{ index: number; clipZ: number; clipW: number }} params - Geometry index and unmodified clip coordinates.
|
|
219
|
-
* @returns {{ clipZ: number; clipW: number }} Adjusted clip coordinates used for depth evaluation.
|
|
220
|
-
*/
|
|
221
|
-
export type SurfaceDepthBiasFn = (params: {
|
|
222
|
-
index: number;
|
|
223
|
-
clipZ: number;
|
|
224
|
-
clipW: number;
|
|
225
|
-
}) => {
|
|
226
|
-
clipZ: number;
|
|
227
|
-
clipW: number;
|
|
228
|
-
};
|
|
229
|
-
/**
|
|
230
|
-
* Computes a depth key for surface quads by projecting each corner and tracking the deepest point.
|
|
231
|
-
* @param {SpriteLocation} baseLngLat - Base longitude/latitude of the quad center.
|
|
232
|
-
* @param {readonly SurfaceCorner[]} displacements - Corner offsets in meters from the center.
|
|
233
|
-
* @param {ProjectToClipSpaceFn} projectToClipSpace - Projection function used to reach clip space.
|
|
234
|
-
* @param {{ readonly indices?: readonly number[]; readonly biasFn?: SurfaceDepthBiasFn }} [options] - Optional overrides.
|
|
235
|
-
* @returns {number | undefined} Depth key suitable for sorting, or `undefined` when any corner cannot be projected.
|
|
236
|
-
*/
|
|
237
|
-
export declare const calculateSurfaceDepthKey: (baseLngLat: Readonly<SpriteLocation>, displacements: readonly SurfaceCorner[], projectToClipSpace: ProjectToClipSpaceFn, options?: {
|
|
238
|
-
readonly indices?: readonly number[];
|
|
239
|
-
readonly biasFn?: SurfaceDepthBiasFn;
|
|
240
|
-
}) => number | undefined;
|
|
241
|
-
/**
|
|
242
|
-
* Projects a longitude/latitude pair to screen-space pixels.
|
|
243
|
-
* @typedef ProjectLngLatFn
|
|
244
|
-
* @param {SpriteLocation} lngLat - Geographic coordinate to project.
|
|
245
|
-
* @returns {SpriteScreenPoint | undefined} Screen coordinates or `undefined` when projection fails.
|
|
246
|
-
*/
|
|
247
|
-
export type ProjectLngLatFn = (lngLat: Readonly<SpriteLocation>) => SpriteScreenPoint | undefined;
|
|
248
|
-
/**
|
|
249
|
-
* Parameters required to resolve a billboard center position.
|
|
250
|
-
*/
|
|
251
|
-
export interface BillboardCenterParams {
|
|
252
|
-
/** Reference screen-space position (usually anchor point). */
|
|
253
|
-
base: Readonly<SpriteScreenPoint>;
|
|
254
|
-
/** Source bitmap width in pixels. */
|
|
255
|
-
imageWidth?: number;
|
|
256
|
-
/** Source bitmap height in pixels. */
|
|
257
|
-
imageHeight?: number;
|
|
258
|
-
/** Meters represented by a pixel at the sprite latitude. */
|
|
259
|
-
baseMetersPerPixel: number;
|
|
260
|
-
/** User-provided scaling multiplier. */
|
|
261
|
-
imageScale: number;
|
|
262
|
-
/** Distance-dependent scale multiplier. */
|
|
263
|
-
distanceScaleFactor: number;
|
|
264
|
-
/** Pixels per meter after perspective adjustments. */
|
|
265
|
-
effectivePixelsPerMeter: number;
|
|
266
|
-
/** Aggregate rotation applied to the sprite in degrees. */
|
|
267
|
-
totalRotateDeg: number;
|
|
268
|
-
/** Anchor definition normalized between -1 and 1. */
|
|
269
|
-
anchor?: Readonly<SpriteAnchor>;
|
|
270
|
-
/** Offset definition applied in meters/deg. */
|
|
271
|
-
offset?: OffsetInput;
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Resolved properties describing the billboard center and derived dimensions.
|
|
275
|
-
*/
|
|
276
|
-
export interface BillboardCenterResult {
|
|
277
|
-
/** Screen-space coordinate after offset adjustments. */
|
|
278
|
-
center: SpriteScreenPoint;
|
|
279
|
-
/** Half of the pixel width. */
|
|
280
|
-
halfWidth: number;
|
|
281
|
-
/** Half of the pixel height. */
|
|
282
|
-
halfHeight: number;
|
|
283
|
-
/** Full pixel width after scaling. */
|
|
284
|
-
pixelWidth: number;
|
|
285
|
-
/** Full pixel height after scaling. */
|
|
286
|
-
pixelHeight: number;
|
|
287
|
-
/** Pixel delta caused by anchor rotation. */
|
|
288
|
-
anchorShift: SpritePoint;
|
|
289
|
-
/** Pixel delta caused by radial offset. */
|
|
290
|
-
offsetShift: SpritePoint;
|
|
291
|
-
/** Scaling adjustment applied during pixel dimension calculation. */
|
|
292
|
-
scaleAdjustment: number;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Calculates the final billboard center position, applying scaling, anchor, and offset adjustments.
|
|
296
|
-
* @param {BillboardCenterParams} params - Inputs describing sprite geometry and scaling context.
|
|
297
|
-
* @returns {BillboardCenterResult} Computed center position and derived metrics for rendering.
|
|
298
|
-
*/
|
|
299
|
-
export declare const calculateBillboardCenterPosition: (params: BillboardCenterParams) => BillboardCenterResult;
|
|
300
|
-
/**
|
|
301
|
-
* Parameters controlling how billboard corners are computed in screen space.
|
|
302
|
-
*/
|
|
303
|
-
export interface BillboardCornerParams {
|
|
304
|
-
/** Screen-space coordinate for the billboard center after offsets. */
|
|
305
|
-
center: Readonly<SpriteScreenPoint>;
|
|
306
|
-
/** Half of the billboard width in pixels. */
|
|
307
|
-
halfWidth: number;
|
|
308
|
-
/** Half of the billboard height in pixels. */
|
|
309
|
-
halfHeight: number;
|
|
310
|
-
/** Optional anchor definition normalized between -1 and 1. */
|
|
311
|
-
anchor?: Readonly<SpriteAnchor>;
|
|
312
|
-
/** Total rotation applied to the billboard in degrees. */
|
|
313
|
-
totalRotateDeg: number;
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Screen-space coordinates combined with UV data for a quad corner.
|
|
317
|
-
*/
|
|
318
|
-
export interface QuadCorner extends SpriteScreenPoint {
|
|
319
|
-
/** Texture u coordinate. */
|
|
320
|
-
readonly u: number;
|
|
321
|
-
/** Texture v coordinate. */
|
|
322
|
-
readonly v: number;
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Produces the rotated, anchor-adjusted screen-space positions for each billboard corner.
|
|
326
|
-
* @param {BillboardCornerParams} params - Inputs describing the billboard geometry.
|
|
327
|
-
* @returns {QuadCorner[]} Array containing screen- and texture-space information per corner.
|
|
328
|
-
*/
|
|
329
|
-
export declare const calculateBillboardCornerScreenPositions: (params: BillboardCornerParams) => QuadCorner[];
|
|
330
|
-
export interface SurfaceShaderModelParams {
|
|
331
|
-
baseLngLat: Readonly<SpriteLocation>;
|
|
332
|
-
worldWidthMeters: number;
|
|
333
|
-
worldHeightMeters: number;
|
|
334
|
-
anchor: Readonly<SpriteAnchor>;
|
|
335
|
-
totalRotateDeg: number;
|
|
336
|
-
offsetMeters: Readonly<SurfaceCorner>;
|
|
337
|
-
}
|
|
338
|
-
export type SurfaceShaderCornerModel = SurfaceCorner & SpriteLocation;
|
|
339
|
-
export declare const computeSurfaceCornerShaderModel: (params: SurfaceShaderModelParams) => SurfaceShaderCornerModel[];
|
|
340
|
-
/**
|
|
341
|
-
* Parameters for projecting a surface sprite's center into screen space.
|
|
342
|
-
*/
|
|
343
|
-
export interface SurfaceCenterParams {
|
|
344
|
-
/** Base geographic location of the sprite. */
|
|
345
|
-
baseLngLat: Readonly<SpriteLocation>;
|
|
346
|
-
/** Source bitmap width in pixels. */
|
|
347
|
-
imageWidth?: number;
|
|
348
|
-
/** Source bitmap height in pixels. */
|
|
349
|
-
imageHeight?: number;
|
|
350
|
-
/** Base meters per pixel at the sprite latitude. */
|
|
351
|
-
baseMetersPerPixel: number;
|
|
352
|
-
/** User-provided scaling multiplier. */
|
|
353
|
-
imageScale: number;
|
|
354
|
-
/** Distance-dependent scale multiplier. */
|
|
355
|
-
distanceScaleFactor: number;
|
|
356
|
-
/** Rotation applied to the sprite in degrees. */
|
|
357
|
-
totalRotateDeg: number;
|
|
358
|
-
/** Anchor definition normalized between -1 and 1. */
|
|
359
|
-
anchor?: Readonly<SpriteAnchor>;
|
|
360
|
-
/** Offset definition applied in meters/deg. */
|
|
361
|
-
offset?: OffsetInput;
|
|
362
|
-
/** Projection function mapping longitude/latitude to screen space. */
|
|
363
|
-
project?: ProjectLngLatFn;
|
|
364
|
-
/** Projection into clip space when available. */
|
|
365
|
-
projectToClipSpace?: ProjectToClipSpaceFn;
|
|
366
|
-
/** WebGL drawing buffer width in device pixels. */
|
|
367
|
-
drawingBufferWidth?: number;
|
|
368
|
-
/** WebGL drawing buffer height in device pixels. */
|
|
369
|
-
drawingBufferHeight?: number;
|
|
370
|
-
/** Device pixel ratio relating CSS pixels to device pixels. */
|
|
371
|
-
pixelRatio?: number;
|
|
372
|
-
/** When true, also computes the anchorless center. */
|
|
373
|
-
resolveAnchorless?: boolean;
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Output describing the resolved surface center and displacement details.
|
|
377
|
-
*/
|
|
378
|
-
export interface SurfaceCenterResult {
|
|
379
|
-
/** Projected screen coordinates or `undefined` when projection fails. */
|
|
380
|
-
center: Readonly<SpriteScreenPoint> | undefined;
|
|
381
|
-
/** Sprite dimensions in world meters. */
|
|
382
|
-
worldDimensions: Readonly<{
|
|
383
|
-
width: number;
|
|
384
|
-
height: number;
|
|
385
|
-
scaleAdjustment: number;
|
|
386
|
-
}>;
|
|
387
|
-
/** Combined anchor and offset displacement in meters. */
|
|
388
|
-
totalDisplacement: Readonly<SurfaceCorner>;
|
|
389
|
-
/** Geographic coordinates after applying displacement. */
|
|
390
|
-
displacedLngLat: Readonly<SpriteLocation>;
|
|
391
|
-
/** Anchorless screen coordinates when requested. */
|
|
392
|
-
anchorlessCenter?: Readonly<SpriteScreenPoint> | null;
|
|
393
|
-
/** Offset-only displacement when requested. */
|
|
394
|
-
anchorlessDisplacement?: Readonly<SurfaceCorner>;
|
|
395
|
-
/** Anchorless geographic coordinate when requested. */
|
|
396
|
-
anchorlessLngLat?: Readonly<SpriteLocation>;
|
|
397
|
-
}
|
|
398
|
-
/**
|
|
399
|
-
* Calculates the projected center of a surface sprite and derives related world-space displacements.
|
|
400
|
-
* @param {SurfaceCenterParams} params - Inputs describing the sprite geometry and projection context.
|
|
401
|
-
* @returns {SurfaceCenterResult} Result containing projection output and displacement metadata.
|
|
402
|
-
*/
|
|
403
|
-
export declare const calculateSurfaceCenterPosition: (params: SurfaceCenterParams) => SurfaceCenterResult;
|
|
404
|
-
/**
|
|
405
|
-
* Parameters describing how to compute each surface corner displacement.
|
|
406
|
-
*/
|
|
407
|
-
export interface SurfaceCornerParams {
|
|
408
|
-
/** Width of the sprite footprint in meters. */
|
|
409
|
-
worldWidthMeters: number;
|
|
410
|
-
/** Height of the sprite footprint in meters. */
|
|
411
|
-
worldHeightMeters: number;
|
|
412
|
-
/** Anchor definition normalized between -1 and 1. */
|
|
413
|
-
anchor: Readonly<SpriteAnchor>;
|
|
414
|
-
/** Rotation applied to the surface in degrees. */
|
|
415
|
-
totalRotateDeg: number;
|
|
416
|
-
/** Additional displacement applied uniformly to all corners. */
|
|
417
|
-
offsetMeters: Readonly<SurfaceCorner>;
|
|
418
|
-
}
|
|
419
|
-
/**
|
|
420
|
-
* East/north displacement for an individual surface corner.
|
|
421
|
-
*/
|
|
422
|
-
export interface SurfaceCorner {
|
|
423
|
-
/** Eastward offset in meters relative to the base center. */
|
|
424
|
-
readonly east: number;
|
|
425
|
-
/** Northward offset in meters relative to the base center. */
|
|
426
|
-
readonly north: number;
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Number of surface corners returns from `calculateSurfaceCornerDisplacements`.
|
|
430
|
-
*/
|
|
431
|
-
export declare const SURFACE_CORNER_DISPLACEMENT_COUNT: number;
|
|
432
|
-
/**
|
|
433
|
-
* Converts normalized surface corners into world-space displacements honoring anchor, rotation, and offsets.
|
|
434
|
-
* @param {SurfaceCornerParams} params - Inputs describing quad geometry and positioning.
|
|
435
|
-
* @returns {SurfaceCorner[]} Array of corner displacements in meters relative to the base center.
|
|
436
|
-
*/
|
|
437
|
-
export declare const calculateSurfaceCornerDisplacements: (params: SurfaceCornerParams) => SurfaceCorner[];
|
|
438
|
-
/**
|
|
439
|
-
* Ensures the sprite's cached Mercator coordinate matches its current location.
|
|
440
|
-
* Recomputes the coordinate lazily when longitude/latitude/altitude change.
|
|
441
|
-
* @param {ProjectionHost} projectionHost - Projection host.
|
|
442
|
-
* @param {InternalSpriteCurrentState<T>} sprite - Target sprite.
|
|
443
|
-
* @returns {SpriteMercatorCoordinate} Cached Mercator coordinate representing the current location.
|
|
444
|
-
*/
|
|
445
|
-
export declare const resolveSpriteMercator: <T>(projectionHost: ProjectionHost, sprite: InternalSpriteCurrentState<T>) => SpriteMercatorCoordinate;
|
|
446
|
-
/**
|
|
447
|
-
* Clamp opacity value.
|
|
448
|
-
* @param value Value
|
|
449
|
-
* @returns Clamped value
|
|
450
|
-
*/
|
|
451
|
-
export declare const clampOpacity: (value: number) => number;
|
package/dist/utils/utils.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* name: maplibre-gl-layers
|
|
3
|
-
* version: 0.19.0
|
|
4
|
-
* description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
|
|
5
|
-
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
|
-
* license: MIT
|
|
7
|
-
* repository.url: https://github.com/kekyo/maplibre-gl-layers.git
|
|
8
|
-
* git.commit.hash: 7bc93c11d7855dedb8d60f140af4e413252c32a7
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { ImageHandleBufferController, IdHandler, RenderTargetBucketBuffers, RenderTargetEntryLike, SpriteOriginReference } from '../internalTypes';
|
|
12
|
-
/**
|
|
13
|
-
* Create id handler object.
|
|
14
|
-
* @param T Identified instance type
|
|
15
|
-
* @returns Image id handler object.
|
|
16
|
-
* @remarks It is used for (wasm) interoperability for image identity.
|
|
17
|
-
*/
|
|
18
|
-
export declare const createIdHandler: <T>() => IdHandler<T>;
|
|
19
|
-
/**
|
|
20
|
-
* Image handle buffer controller interface.
|
|
21
|
-
* @remarks It is used for (wasm) interoperability for image identity.
|
|
22
|
-
*/
|
|
23
|
-
export declare const createImageHandleBufferController: () => ImageHandleBufferController;
|
|
24
|
-
/**
|
|
25
|
-
* Creates typed buffers aligned with the supplied render target bucket for WASM interop.
|
|
26
|
-
* @param bucket Render target bucket containing sprite/image pairs.
|
|
27
|
-
* @param options Optional configuration.
|
|
28
|
-
* @returns {RenderTargetBucketBuffers} Typed array views of origin metadata.
|
|
29
|
-
*/
|
|
30
|
-
export declare const createRenderTargetBucketBuffers: <T>(bucket: readonly Readonly<RenderTargetEntryLike<T>>[], options?: {
|
|
31
|
-
readonly originReference?: SpriteOriginReference;
|
|
32
|
-
}) => RenderTargetBucketBuffers;
|
|
33
|
-
/**
|
|
34
|
-
* Encode/Decode a (subLayer, order) pair into a compact numeric key.
|
|
35
|
-
* @remarks It is used for (wasm) interoperability for image identity.
|
|
36
|
-
*/
|
|
37
|
-
export declare const createSpriteOriginReference: () => SpriteOriginReference;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* name: maplibre-gl-layers
|
|
3
|
-
* version: 0.19.0
|
|
4
|
-
* description: MapLibre's layer extension library enabling the display, movement, and modification of large numbers of dynamic sprite images
|
|
5
|
-
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
|
-
* license: MIT
|
|
7
|
-
* repository.url: https://github.com/kekyo/maplibre-gl-layers.git
|
|
8
|
-
* git.commit.hash: 7bc93c11d7855dedb8d60f140af4e413252c32a7
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
declare const _default: {
|
|
12
|
-
"pthreadPoolSize": 4
|
|
13
|
-
}
|
|
14
|
-
;
|
|
15
|
-
|
|
16
|
-
export default _default;
|