@fxi/zartigl 0.10.0 → 0.10.2
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/catalog.d.ts +42 -0
- package/dist/catalog.js +25 -318
- package/dist/engine.d.ts +266 -0
- package/dist/engine.js +69 -53
- package/dist/geovideo-index-BqOLqzgA.js +1839 -0
- package/dist/index-RrmAk1JY.js +376 -0
- package/dist/zartigl.d.ts +75 -131
- package/dist/zartigl.js +2323 -2620
- package/package.json +1 -1
- package/dist/geovideo-index-BJjE_fgO.js +0 -1342
package/dist/zartigl.d.ts
CHANGED
|
@@ -252,29 +252,14 @@ east: number,
|
|
|
252
252
|
north: number
|
|
253
253
|
];
|
|
254
254
|
|
|
255
|
-
declare type GeoVideoEventMap =
|
|
256
|
-
loading: () => void;
|
|
257
|
-
loaded: (meta: FieldMeta) => void;
|
|
258
|
-
error: (error: Error) => void;
|
|
259
|
-
status: (status: ZartiglStatus) => void;
|
|
260
|
-
timeChange: (time: number) => void;
|
|
261
|
-
playbackChange: (playing: boolean) => void;
|
|
262
|
-
/** Playback reached the end of the timeline without looping. */
|
|
263
|
-
playbackEnd: () => void;
|
|
264
|
-
};
|
|
255
|
+
declare type GeoVideoEventMap = GeoVideoPlaybackEvents;
|
|
265
256
|
|
|
266
257
|
export declare class GeoVideoLayer implements CustomLayerInterface {
|
|
267
258
|
readonly id: string;
|
|
268
259
|
readonly type: "custom";
|
|
269
260
|
readonly renderingMode: "3d";
|
|
270
261
|
private readonly source;
|
|
271
|
-
|
|
272
|
-
private playOnReady;
|
|
273
|
-
private loop;
|
|
274
|
-
private playbackRate;
|
|
275
|
-
private requestedTime;
|
|
276
|
-
private requestedTimeRange?;
|
|
277
|
-
private timeRange;
|
|
262
|
+
private readonly playback;
|
|
278
263
|
private opacity;
|
|
279
264
|
private colorRamp;
|
|
280
265
|
private colorDomain;
|
|
@@ -283,78 +268,25 @@ export declare class GeoVideoLayer implements CustomLayerInterface {
|
|
|
283
268
|
private map;
|
|
284
269
|
private gl;
|
|
285
270
|
private manifest;
|
|
286
|
-
private video;
|
|
287
|
-
/** Manifest of `video`, which still differs from `manifest` mid-swap. */
|
|
288
|
-
private videoManifest;
|
|
289
|
-
/** Incoming media of a swap, shown once its first frame is decodable. */
|
|
290
|
-
private pendingVideo;
|
|
291
|
-
private standby;
|
|
292
|
-
/** Ended on a preloaded artifact: playing until it is swapped in or paused. */
|
|
293
|
-
private awaitingNext;
|
|
294
|
-
private maskUrl;
|
|
295
|
-
private colorTexture;
|
|
296
|
-
private maskTexture;
|
|
297
271
|
private colorRampTexture;
|
|
298
|
-
private maskCanvas;
|
|
299
|
-
private maskContext;
|
|
300
272
|
private mercatorProgram;
|
|
301
273
|
private globeProgram;
|
|
302
274
|
private vertexBuffer;
|
|
303
275
|
private indexBuffer;
|
|
304
276
|
private indexCount;
|
|
305
|
-
private frameCallback;
|
|
306
|
-
private repaintFrame;
|
|
307
|
-
private frameDirty;
|
|
308
|
-
private maskDirty;
|
|
309
|
-
private colorTextureInitialized;
|
|
310
|
-
private maskTextureInitialized;
|
|
311
|
-
private maskCaptured;
|
|
312
|
-
private mediaReady;
|
|
313
|
-
private readyEmitted;
|
|
314
|
-
private hasVideoFrameCallback;
|
|
315
|
-
private lastBufferedMediaTime;
|
|
316
|
-
private lastUploadedMediaTime;
|
|
317
|
-
private decodedFrames;
|
|
318
|
-
private frameCallbackCount;
|
|
319
|
-
private frameCallbackTimes;
|
|
320
|
-
private lastFrameCallbackAt;
|
|
321
|
-
private bufferedFrames;
|
|
322
|
-
private skippedFrames;
|
|
323
|
-
private uploadedFrames;
|
|
324
|
-
private lastUploadDurationMs;
|
|
325
277
|
private abortController;
|
|
326
|
-
private resumePlayback;
|
|
327
|
-
private stepTimer;
|
|
328
|
-
private endEmitted;
|
|
329
278
|
private listeners;
|
|
330
279
|
constructor(options: GeoVideoLayerOptions);
|
|
331
280
|
onAdd(map: Map_2, context: WebGLRenderingContext | WebGL2RenderingContext): Promise<void>;
|
|
332
281
|
render(context: WebGLRenderingContext | WebGL2RenderingContext, options: CustomRenderMethodInput): void;
|
|
333
282
|
onRemove(): void;
|
|
334
283
|
setTime(time: string | number): void;
|
|
335
|
-
/**
|
|
336
|
-
* Switch to another artifact of the same frame size, such as the next
|
|
337
|
-
* archive chunk, keeping the map layer and GL state. The current frame stays
|
|
338
|
-
* on screen until the new media can show its first one, at once when it was
|
|
339
|
-
* preloaded. Returns false when the artifact needs a new layer.
|
|
340
|
-
*/
|
|
341
284
|
replaceManifest(manifest: GeoVideoManifest, options?: GeoVideoReplaceOptions): boolean;
|
|
342
|
-
/**
|
|
343
|
-
* Load the artifact expected next, such as the following archive chunk, so
|
|
344
|
-
* `replaceManifest` can show it without waiting for the network. Until then,
|
|
345
|
-
* reaching the end of the current artifact keeps the playing state and
|
|
346
|
-
* emits `playbackEnd` for the caller to swap it in, or to pause. Returns
|
|
347
|
-
* false when the artifact cannot replace the current one in place.
|
|
348
|
-
*/
|
|
349
285
|
preloadManifest(manifest: GeoVideoManifest, options?: GeoVideoReplaceOptions): boolean;
|
|
350
|
-
/** Clamped time range of a compatible replacement, else null. */
|
|
351
|
-
private replacementTimeRange;
|
|
352
|
-
/** The preloaded artifact when it holds this media; any other is dropped. */
|
|
353
|
-
private takeStandby;
|
|
354
286
|
setTimeAndDepth(time: string | number, _depth: number): void;
|
|
355
287
|
setDepth(_depth: number): void;
|
|
356
|
-
prefetchTime(
|
|
357
|
-
isFrameCached(
|
|
288
|
+
prefetchTime(ms: number): Promise<void>;
|
|
289
|
+
isFrameCached(ms: number): boolean;
|
|
358
290
|
cancelPrefetches(): void;
|
|
359
291
|
suspend(): void;
|
|
360
292
|
resume(): void;
|
|
@@ -366,24 +298,6 @@ export declare class GeoVideoLayer implements CustomLayerInterface {
|
|
|
366
298
|
setOpacity(value: number): void;
|
|
367
299
|
play(): Promise<void>;
|
|
368
300
|
pause(): void;
|
|
369
|
-
/**
|
|
370
|
-
* Playback is a request, applied once ready, while the manifest loads,
|
|
371
|
-
* mid-swap, or at an end waiting for the preloaded artifact.
|
|
372
|
-
*/
|
|
373
|
-
private deferredPlayback;
|
|
374
|
-
private isPlaying;
|
|
375
|
-
/**
|
|
376
|
-
* Below the slowest media rate browsers accept, keep the video paused and
|
|
377
|
-
* seek one sample (or frame) at a time.
|
|
378
|
-
*/
|
|
379
|
-
private startStepping;
|
|
380
|
-
private stopStepping;
|
|
381
|
-
private step;
|
|
382
|
-
/**
|
|
383
|
-
* The timeline ended without looping. With a preloaded artifact, keep the
|
|
384
|
-
* playing state for the caller to swap it in; otherwise stop.
|
|
385
|
-
*/
|
|
386
|
-
private reachEnd;
|
|
387
301
|
setLoop(loop: boolean): void;
|
|
388
302
|
setPlaybackRate(rate: number): void;
|
|
389
303
|
setTimeRange(range: [number, number]): void;
|
|
@@ -392,35 +306,6 @@ export declare class GeoVideoLayer implements CustomLayerInterface {
|
|
|
392
306
|
on<K extends keyof GeoVideoEventMap>(event: K, handler: GeoVideoEventMap[K]): this;
|
|
393
307
|
off<K extends keyof GeoVideoEventMap>(event: K, handler: GeoVideoEventMap[K]): this;
|
|
394
308
|
private initGl;
|
|
395
|
-
private initVideo;
|
|
396
|
-
/**
|
|
397
|
-
* Media element for a manifest. Its events drive the layer only while it is
|
|
398
|
-
* the current video and no swap is pending.
|
|
399
|
-
*/
|
|
400
|
-
private createVideo;
|
|
401
|
-
/** Track presented frames of the current video. */
|
|
402
|
-
private startFrameCallbacks;
|
|
403
|
-
/**
|
|
404
|
-
* Time a loading video opens at: its preload target, or the requested time
|
|
405
|
-
* within the active range.
|
|
406
|
-
*/
|
|
407
|
-
private startTime;
|
|
408
|
-
private checkVideoSize;
|
|
409
|
-
private cancelFrameCallback;
|
|
410
|
-
/** Stop the current video and free its media resources. */
|
|
411
|
-
private releaseVideo;
|
|
412
|
-
private discardStandby;
|
|
413
|
-
private discardPendingVideo;
|
|
414
|
-
private bufferFrame;
|
|
415
|
-
private createMaskImage;
|
|
416
|
-
/** Show the mask of a manifest once its image, possibly preloaded, loads. */
|
|
417
|
-
private applyMask;
|
|
418
|
-
private emitReady;
|
|
419
|
-
private createVideoTexture;
|
|
420
|
-
private uploadTextureSource;
|
|
421
|
-
private startRepaintLoop;
|
|
422
|
-
private stopRepaintLoop;
|
|
423
|
-
private presentedFps;
|
|
424
309
|
private bindGrid;
|
|
425
310
|
private unbindGrid;
|
|
426
311
|
private emit;
|
|
@@ -515,6 +400,34 @@ export declare interface GeoVideoOptions {
|
|
|
515
400
|
stepsPerSecond?: number;
|
|
516
401
|
}
|
|
517
402
|
|
|
403
|
+
declare type GeoVideoPlaybackEvents = {
|
|
404
|
+
loading: () => void;
|
|
405
|
+
loaded: (meta: FieldMeta) => void;
|
|
406
|
+
error: (error: Error) => void;
|
|
407
|
+
status: (status: ZartiglStatus) => void;
|
|
408
|
+
timeChange: (time: number) => void;
|
|
409
|
+
playbackChange: (playing: boolean) => void;
|
|
410
|
+
/** Playback reached the end of the timeline without looping. */
|
|
411
|
+
playbackEnd: () => void;
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
declare interface GeoVideoPlaybackOptions {
|
|
415
|
+
time?: string | number;
|
|
416
|
+
timeRange?: [number, number];
|
|
417
|
+
autoplay?: boolean;
|
|
418
|
+
loop?: boolean;
|
|
419
|
+
playbackRate?: number;
|
|
420
|
+
stepsPerSecond?: number;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
declare interface GeoVideoPlaybackReplaceOptions {
|
|
424
|
+
time?: number;
|
|
425
|
+
stepsPerSecond?: number;
|
|
426
|
+
timeRange?: [number, number];
|
|
427
|
+
loop?: boolean;
|
|
428
|
+
playbackRate?: number;
|
|
429
|
+
}
|
|
430
|
+
|
|
518
431
|
export declare interface GeoVideoRangeTimeline {
|
|
519
432
|
kind: "range";
|
|
520
433
|
dateStart: string;
|
|
@@ -526,12 +439,7 @@ export declare interface GeoVideoRangeTimeline {
|
|
|
526
439
|
* Playback state for an artifact swapped in with `replaceManifest`, or
|
|
527
440
|
* loaded ahead with `preloadManifest`.
|
|
528
441
|
*/
|
|
529
|
-
declare
|
|
530
|
-
time?: number;
|
|
531
|
-
timeRange?: [number, number];
|
|
532
|
-
loop?: boolean;
|
|
533
|
-
playbackRate?: number;
|
|
534
|
-
}
|
|
442
|
+
declare type GeoVideoReplaceOptions = GeoVideoPlaybackReplaceOptions;
|
|
535
443
|
|
|
536
444
|
export declare interface GeoVideoSampleSequenceTimeline {
|
|
537
445
|
kind: "sample-sequence";
|
|
@@ -616,7 +524,7 @@ declare type LayerEventMap = {
|
|
|
616
524
|
cacheInvalidated: () => void;
|
|
617
525
|
};
|
|
618
526
|
|
|
619
|
-
declare type LayerEventMap_2 = {
|
|
527
|
+
declare type LayerEventMap_2 = GeoVideoPlaybackEvents & {
|
|
620
528
|
loading: () => void;
|
|
621
529
|
loaded: (meta: FieldMeta) => void;
|
|
622
530
|
error: (err: Error) => void;
|
|
@@ -689,6 +597,12 @@ export declare interface MapxWidgetSnippetOptions {
|
|
|
689
597
|
style?: LayerStyleInput;
|
|
690
598
|
/** Engine tuning; flat style keys are ignored. */
|
|
691
599
|
settings?: Partial<ZartiglSettings>;
|
|
600
|
+
/**
|
|
601
|
+
* The layer definition, written inline (MapX widget only): for a layer
|
|
602
|
+
* MapX may not know, such as a custom or unpublished entry. Left out, the
|
|
603
|
+
* widget names the layer and MapX reads it from the live catalog.
|
|
604
|
+
*/
|
|
605
|
+
entry?: CatalogEntry;
|
|
692
606
|
}
|
|
693
607
|
|
|
694
608
|
export declare interface PaletteMeta {
|
|
@@ -767,19 +681,19 @@ export declare class ParticleSimulation {
|
|
|
767
681
|
south: number;
|
|
768
682
|
east: number;
|
|
769
683
|
north: number;
|
|
770
|
-
}, isGlobe?: boolean, globeCenter?: [number, number, number], clippingPlane?: [number, number, number, number]): void;
|
|
684
|
+
}, isGlobe?: boolean, globeCenter?: [number, number, number], clippingPlane?: [number, number, number, number], velocityPair?: VelocityTexturePair): void;
|
|
771
685
|
renderGrid(velocityTexUnit: number, velocityMin: [number, number], velocityMax: [number, number], matrix: Iterable<number>, worldSize: number, worldCopyOffsets: number[], geoBounds: {
|
|
772
686
|
west: number;
|
|
773
687
|
south: number;
|
|
774
688
|
east: number;
|
|
775
689
|
north: number;
|
|
776
|
-
}, opacityScale?: number, solid?: Vec4): void;
|
|
690
|
+
}, opacityScale?: number, solid?: Vec4, velocityPair?: VelocityTexturePair): void;
|
|
777
691
|
renderGridGlobe(velocityTexUnit: number, velocityMin: [number, number], velocityMax: [number, number], matrix: Iterable<number>, geoBounds: {
|
|
778
692
|
west: number;
|
|
779
693
|
south: number;
|
|
780
694
|
east: number;
|
|
781
695
|
north: number;
|
|
782
|
-
}, clippingPlane: [number, number, number, number], opacityScale?: number, solid?: Vec4): void;
|
|
696
|
+
}, clippingPlane: [number, number, number, number], opacityScale?: number, solid?: Vec4, velocityPair?: VelocityTexturePair): void;
|
|
783
697
|
private setGridFieldUniforms;
|
|
784
698
|
private bindRasterGrid;
|
|
785
699
|
private unbindRasterGrid;
|
|
@@ -1193,9 +1107,12 @@ export declare class VectorLayer implements CustomLayerInterface {
|
|
|
1193
1107
|
readonly renderingMode: "3d";
|
|
1194
1108
|
private map;
|
|
1195
1109
|
private gl;
|
|
1110
|
+
private readonly playback;
|
|
1111
|
+
private readonly geoVideoManifest?;
|
|
1196
1112
|
private simulation;
|
|
1197
1113
|
private velocityField;
|
|
1198
|
-
private
|
|
1114
|
+
private readonly zarrSourceValue;
|
|
1115
|
+
private get zarrSource();
|
|
1199
1116
|
private variableU;
|
|
1200
1117
|
private variableV;
|
|
1201
1118
|
private vectorDerivation;
|
|
@@ -1250,6 +1167,13 @@ export declare class VectorLayer implements CustomLayerInterface {
|
|
|
1250
1167
|
suspend(): void;
|
|
1251
1168
|
resume(): void;
|
|
1252
1169
|
setDepth(depth: number): void;
|
|
1170
|
+
play(): Promise<void>;
|
|
1171
|
+
pause(): void;
|
|
1172
|
+
setLoop(loop: boolean): void;
|
|
1173
|
+
setStepsPerSecond(value: number): void;
|
|
1174
|
+
setTimeRange(range: [number, number]): void;
|
|
1175
|
+
replaceManifest(manifest: GeoVideoManifest, options?: GeoVideoPlaybackReplaceOptions): boolean;
|
|
1176
|
+
preloadManifest(manifest: GeoVideoManifest, options?: GeoVideoPlaybackReplaceOptions): boolean;
|
|
1253
1177
|
setSpeed(v: number): void;
|
|
1254
1178
|
setFade(v: number): void;
|
|
1255
1179
|
setParticleDensity(density: number): void;
|
|
@@ -1281,6 +1205,10 @@ export declare interface VectorLayerDebugInfo {
|
|
|
1281
1205
|
}
|
|
1282
1206
|
|
|
1283
1207
|
export declare interface VectorLayerOptions {
|
|
1208
|
+
/** Decoded GeoVideo playback; omitted for the unchanged Zarr field path. */
|
|
1209
|
+
geoVideo?: GeoVideoPlaybackOptions & {
|
|
1210
|
+
manifest: GeoVideoManifest;
|
|
1211
|
+
};
|
|
1284
1212
|
id: string;
|
|
1285
1213
|
source: string;
|
|
1286
1214
|
/** Optional initialized/shared source. When omitted, the layer creates one from `source`. */
|
|
@@ -1376,6 +1304,22 @@ export declare class VelocityField {
|
|
|
1376
1304
|
destroy(): void;
|
|
1377
1305
|
}
|
|
1378
1306
|
|
|
1307
|
+
/** One bound velocity texture and the physical range used to decode it. */
|
|
1308
|
+
declare interface VelocityTextureField {
|
|
1309
|
+
unit: number;
|
|
1310
|
+
min: [number, number];
|
|
1311
|
+
max: [number, number];
|
|
1312
|
+
/** Physical (u, v, validity, 0); otherwise normalized (u, v, 0, validity). */
|
|
1313
|
+
physical?: boolean;
|
|
1314
|
+
northToSouth?: boolean;
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
declare interface VelocityTexturePair {
|
|
1318
|
+
a: VelocityTextureField;
|
|
1319
|
+
b: VelocityTextureField;
|
|
1320
|
+
mix: number;
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1379
1323
|
declare interface WebGLRendererInfo {
|
|
1380
1324
|
vendor: string;
|
|
1381
1325
|
renderer: string;
|
|
@@ -1730,7 +1674,7 @@ export declare class Zartigl {
|
|
|
1730
1674
|
/** GeoVideo playback options shared by a new layer and an in-place swap. */
|
|
1731
1675
|
private geoVideoPlayback;
|
|
1732
1676
|
/**
|
|
1733
|
-
* Show another artifact of the same
|
|
1677
|
+
* Show another artifact of the same GeoVideo entry, such as the next
|
|
1734
1678
|
* archive chunk, in the attached layer. The last frame stays on screen until
|
|
1735
1679
|
* the new media is ready, instead of a blank map while a new layer loads.
|
|
1736
1680
|
*/
|