@fideus-labs/fidnii 0.5.0 → 0.7.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/dist/OMEZarrNVImage.d.ts +147 -14
- package/dist/OMEZarrNVImage.d.ts.map +1 -1
- package/dist/OMEZarrNVImage.js +517 -123
- package/dist/OMEZarrNVImage.js.map +1 -1
- package/dist/RegionCoalescer.d.ts +12 -7
- package/dist/RegionCoalescer.d.ts.map +1 -1
- package/dist/RegionCoalescer.js +30 -20
- package/dist/RegionCoalescer.js.map +1 -1
- package/dist/events.d.ts +17 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +62 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -5
- package/src/OMEZarrNVImage.ts +633 -139
- package/src/RegionCoalescer.ts +33 -14
- package/src/events.ts +18 -0
- package/src/index.ts +6 -1
- package/src/types.ts +88 -12
package/dist/OMEZarrNVImage.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Multiscales, Omero } from "@fideus-labs/ngff-zarr";
|
|
|
2
2
|
import type { Niivue } from "@niivue/niivue";
|
|
3
3
|
import { NVImage } from "@niivue/niivue";
|
|
4
4
|
import { type OMEZarrNVImageEventListener, type OMEZarrNVImageEventListenerOptions, type OMEZarrNVImageEventMap, type PopulateTrigger } from "./events.js";
|
|
5
|
-
import type { ClipPlane, ClipPlanes, OMEZarrNVImageOptions, SlabBufferState, SlabSliceType, VolumeBounds } from "./types.js";
|
|
5
|
+
import type { ClipPlane, ClipPlanes, OMEZarrNVImageOptions, SlabBufferState, SlabSliceType, TimeAxisInfo, VolumeBounds } from "./types.js";
|
|
6
6
|
/**
|
|
7
7
|
* OMEZarrNVImage extends NVImage to support rendering OME-Zarr images in NiiVue.
|
|
8
8
|
*
|
|
@@ -26,6 +26,15 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
26
26
|
* OMERO intensity windowing is skipped.
|
|
27
27
|
*/
|
|
28
28
|
readonly isLabelImage: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The continuous colormap name used for rendering.
|
|
31
|
+
*
|
|
32
|
+
* Overrides the NVImage setter so that changing the colormap on this
|
|
33
|
+
* image automatically propagates to all slab (2D slice) NVImages.
|
|
34
|
+
* Label images are unaffected — they use `setColormapLabel()` instead.
|
|
35
|
+
*/
|
|
36
|
+
get colormap(): string;
|
|
37
|
+
set colormap(cm: string);
|
|
29
38
|
/** Reference to NiiVue instance */
|
|
30
39
|
private readonly niivue;
|
|
31
40
|
/** Buffer manager for dynamically-sized pixel data */
|
|
@@ -63,8 +72,8 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
63
72
|
private readonly _volumeBounds;
|
|
64
73
|
/** Current buffer bounds in world space (may differ from full volume when clipped) */
|
|
65
74
|
private _currentBufferBounds;
|
|
66
|
-
/**
|
|
67
|
-
private
|
|
75
|
+
/** AbortController for the clip plane event listener on the primary NV */
|
|
76
|
+
private _clipPlaneAbortController?;
|
|
68
77
|
/** Debounce delay for clip plane updates (ms) */
|
|
69
78
|
private readonly clipPlaneDebounceMs;
|
|
70
79
|
/** Timeout handle for debounced clip plane refetch */
|
|
@@ -83,6 +92,12 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
83
92
|
private readonly _eventTarget;
|
|
84
93
|
/** Pending populate request (latest wins - replaces any previous pending) */
|
|
85
94
|
private _pendingPopulateRequest;
|
|
95
|
+
/**
|
|
96
|
+
* AbortController for the in-flight `populateVolume` fetch.
|
|
97
|
+
* Aborted when a new `populateVolume` call supersedes the current one,
|
|
98
|
+
* allowing in-flight HTTP requests to be cancelled promptly.
|
|
99
|
+
*/
|
|
100
|
+
private _populateAbortController;
|
|
86
101
|
/** Current populate trigger (set at start of populateVolume, used by events) */
|
|
87
102
|
private _currentPopulateTrigger;
|
|
88
103
|
/** Attached Niivue instances and their state */
|
|
@@ -107,6 +122,31 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
107
122
|
private _viewportUpdateTimeout;
|
|
108
123
|
/** Per-slab AbortController to cancel in-flight progressive loads */
|
|
109
124
|
private _slabAbortControllers;
|
|
125
|
+
/**
|
|
126
|
+
* Time axis metadata, or `null` if the dataset has no `"t"` dimension.
|
|
127
|
+
* Populated during construction by inspecting `NgffImage.dims`.
|
|
128
|
+
*/
|
|
129
|
+
private readonly _timeAxisInfo;
|
|
130
|
+
/** Current time index (0-based). Always 0 for non-time datasets. */
|
|
131
|
+
private _timeIndex;
|
|
132
|
+
/** Number of adjacent time frames to pre-fetch in each direction. */
|
|
133
|
+
private readonly _timePrefetchCount;
|
|
134
|
+
/**
|
|
135
|
+
* LRU cache of pre-fetched 3D time frames, keyed by time index.
|
|
136
|
+
* Only used when `_timeAxisInfo` is non-null.
|
|
137
|
+
*/
|
|
138
|
+
private readonly _timeFrameCache;
|
|
139
|
+
/** Set of time indices currently being pre-fetched (for dedup). */
|
|
140
|
+
private readonly _prefetchingTimeIndices;
|
|
141
|
+
/** AbortController for the most recent pre-fetch batch. */
|
|
142
|
+
private _prefetchAbortController;
|
|
143
|
+
/**
|
|
144
|
+
* Snapshot of the chunk-aligned region and resolution level used for
|
|
145
|
+
* the last successful 3D volume load. Used to serve cached time frames
|
|
146
|
+
* at the same spatial region. Cleared on clip plane / viewport / resolution
|
|
147
|
+
* changes.
|
|
148
|
+
*/
|
|
149
|
+
private _lastLoadedRegion;
|
|
110
150
|
/** Maximum 3D render zoom level for scroll-wheel zoom */
|
|
111
151
|
private readonly _max3DZoom;
|
|
112
152
|
/** Minimum 3D render zoom level for scroll-wheel zoom */
|
|
@@ -117,6 +157,8 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
117
157
|
* continuous zoom/pan interactions.
|
|
118
158
|
*/
|
|
119
159
|
private static readonly VIEWPORT_DEBOUNCE_MS;
|
|
160
|
+
/** Default number of adjacent time frames to pre-fetch. */
|
|
161
|
+
private static readonly DEFAULT_TIME_PREFETCH_COUNT;
|
|
120
162
|
/**
|
|
121
163
|
* Private constructor. Use OMEZarrNVImage.create() for instantiation.
|
|
122
164
|
*/
|
|
@@ -171,6 +213,8 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
171
213
|
*
|
|
172
214
|
* @param levelIndex - Resolution level index
|
|
173
215
|
* @param requesterId - ID for request coalescing
|
|
216
|
+
* @param timeIndex - Time point index to fetch (defaults to `this._timeIndex`)
|
|
217
|
+
* @param signal - Optional AbortSignal to cancel the fetch
|
|
174
218
|
*/
|
|
175
219
|
private loadResolutionLevel;
|
|
176
220
|
/**
|
|
@@ -320,6 +364,76 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
320
364
|
* Get the volume bounds in world space.
|
|
321
365
|
*/
|
|
322
366
|
getVolumeBounds(): VolumeBounds;
|
|
367
|
+
/**
|
|
368
|
+
* Time axis metadata, or `null` if the dataset has no `"t"` dimension.
|
|
369
|
+
*
|
|
370
|
+
* @example
|
|
371
|
+
* ```ts
|
|
372
|
+
* const info = image.timeAxisInfo
|
|
373
|
+
* if (info) {
|
|
374
|
+
* console.log(`${info.count} time points, step=${info.step} ${info.unit}`)
|
|
375
|
+
* }
|
|
376
|
+
* ```
|
|
377
|
+
*/
|
|
378
|
+
get timeAxisInfo(): TimeAxisInfo | null;
|
|
379
|
+
/**
|
|
380
|
+
* Total number of time points.
|
|
381
|
+
* Returns 1 for datasets without a `"t"` dimension.
|
|
382
|
+
*/
|
|
383
|
+
get timeCount(): number;
|
|
384
|
+
/**
|
|
385
|
+
* Current time index (0-based).
|
|
386
|
+
* Always 0 for datasets without a `"t"` dimension.
|
|
387
|
+
*/
|
|
388
|
+
get timeIndex(): number;
|
|
389
|
+
/**
|
|
390
|
+
* Compute the physical time value at a given index.
|
|
391
|
+
*
|
|
392
|
+
* @param index - Time index (0-based)
|
|
393
|
+
* @returns Physical time value (`origin + index * step`)
|
|
394
|
+
*/
|
|
395
|
+
getTimeValue(index: number): number;
|
|
396
|
+
/**
|
|
397
|
+
* Set the active time index and reload the volume.
|
|
398
|
+
*
|
|
399
|
+
* If the requested frame is in the pre-fetch cache, the buffer is
|
|
400
|
+
* swapped instantly without a network fetch. Otherwise, the frame is
|
|
401
|
+
* loaded from the zarr store at the current resolution level and
|
|
402
|
+
* spatial region.
|
|
403
|
+
*
|
|
404
|
+
* After the frame is loaded, adjacent frames are pre-fetched in the
|
|
405
|
+
* background so subsequent scrubbing can serve frames from cache.
|
|
406
|
+
*
|
|
407
|
+
* @param index - Time index (0-based)
|
|
408
|
+
* @throws If `index` is out of range `[0, timeCount)`
|
|
409
|
+
*
|
|
410
|
+
* @example
|
|
411
|
+
* ```ts
|
|
412
|
+
* await image.setTimeIndex(5)
|
|
413
|
+
* image.addEventListener('timeChange', (e) => {
|
|
414
|
+
* console.log(`Frame ${e.detail.index}, cached=${e.detail.cached}`)
|
|
415
|
+
* })
|
|
416
|
+
* ```
|
|
417
|
+
*/
|
|
418
|
+
setTimeIndex(index: number): Promise<void>;
|
|
419
|
+
/**
|
|
420
|
+
* Clear the pre-fetched time frame cache.
|
|
421
|
+
*
|
|
422
|
+
* Called internally when the spatial region or resolution changes
|
|
423
|
+
* (clip planes, viewport, resolution level), since cached frames
|
|
424
|
+
* were fetched for the previous region and are no longer valid.
|
|
425
|
+
*/
|
|
426
|
+
private _invalidateTimeFrameCache;
|
|
427
|
+
/**
|
|
428
|
+
* Pre-fetch adjacent time frames in the background.
|
|
429
|
+
*
|
|
430
|
+
* Fetches frames `[index - N, index + N]` (clamped to valid range)
|
|
431
|
+
* at the current resolution level and spatial region. Already-cached
|
|
432
|
+
* and currently-in-flight indices are skipped.
|
|
433
|
+
*
|
|
434
|
+
* @param centerIndex - The time index to pre-fetch around
|
|
435
|
+
*/
|
|
436
|
+
private _prefetchAdjacentFrames;
|
|
323
437
|
/**
|
|
324
438
|
* Enable or disable viewport-aware resolution selection.
|
|
325
439
|
*
|
|
@@ -340,7 +454,9 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
340
454
|
*/
|
|
341
455
|
getViewportBounds(): VolumeBounds | null;
|
|
342
456
|
/**
|
|
343
|
-
* Hook viewport events (
|
|
457
|
+
* Hook viewport events (mouseUp, zoom3DChange, wheel) on a NV instance.
|
|
458
|
+
* All listeners share a single AbortController so they can be torn down
|
|
459
|
+
* together via {@link _unhookViewportEvents}.
|
|
344
460
|
*/
|
|
345
461
|
private _hookViewportEvents;
|
|
346
462
|
/**
|
|
@@ -382,7 +498,13 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
382
498
|
*/
|
|
383
499
|
getIsLoading(): boolean;
|
|
384
500
|
/**
|
|
385
|
-
* Wait for all
|
|
501
|
+
* Wait for all async work to settle: debounced timers (clip plane
|
|
502
|
+
* refetch, viewport update, slab reload), the main `populateVolume`
|
|
503
|
+
* pipeline, all slab loads, and in-flight coalescer fetches.
|
|
504
|
+
*
|
|
505
|
+
* The method polls in a loop because debounced timers may fire while
|
|
506
|
+
* we are waiting, triggering new loads. It only resolves once every
|
|
507
|
+
* source of async work is idle simultaneously.
|
|
386
508
|
*/
|
|
387
509
|
waitForIdle(): Promise<void>;
|
|
388
510
|
/**
|
|
@@ -437,9 +559,10 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
437
559
|
/**
|
|
438
560
|
* Attach a Niivue instance for slice-type-aware rendering.
|
|
439
561
|
*
|
|
440
|
-
* The image auto-detects the NV's current slice type and
|
|
441
|
-
* `
|
|
442
|
-
* crosshair/slice
|
|
562
|
+
* The image auto-detects the NV's current slice type and uses
|
|
563
|
+
* `addEventListener('sliceTypeChange', ...)` to track mode changes and
|
|
564
|
+
* `addEventListener('locationChange', ...)` to track crosshair/slice
|
|
565
|
+
* position changes via Niivue's browser-native EventTarget API.
|
|
443
566
|
*
|
|
444
567
|
* When the NV is in a 2D slice mode (Axial, Coronal, Sagittal), the image
|
|
445
568
|
* loads a slab (one chunk thick in the orthogonal direction) at the current
|
|
@@ -449,7 +572,9 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
449
572
|
*/
|
|
450
573
|
attachNiivue(nv: Niivue): void;
|
|
451
574
|
/**
|
|
452
|
-
* Detach a Niivue instance,
|
|
575
|
+
* Detach a Niivue instance, removing all event listeners registered by this
|
|
576
|
+
* image (viewport, zoom-override, slice-type, location, and clip-plane
|
|
577
|
+
* listeners are all torn down via their respective `AbortController`s).
|
|
453
578
|
*
|
|
454
579
|
* @param nv - The Niivue instance to detach
|
|
455
580
|
*/
|
|
@@ -475,11 +600,19 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
475
600
|
*/
|
|
476
601
|
private _isSlabSliceType;
|
|
477
602
|
/**
|
|
478
|
-
* Get the
|
|
479
|
-
*
|
|
480
|
-
*
|
|
481
|
-
* -
|
|
482
|
-
* -
|
|
603
|
+
* Get the NGFF array axis index that is orthogonal to a slice plane.
|
|
604
|
+
*
|
|
605
|
+
* NiiVue slice types refer to anatomical planes:
|
|
606
|
+
* - Axial: perpendicular to S/I (physicalRow 2)
|
|
607
|
+
* - Coronal: perpendicular to A/P (physicalRow 1)
|
|
608
|
+
* - Sagittal: perpendicular to R/L (physicalRow 0)
|
|
609
|
+
*
|
|
610
|
+
* When the dataset has permuted axes (e.g. NGFF y encodes S/I instead
|
|
611
|
+
* of A/P), the NGFF array axis that is orthogonal to a given anatomical
|
|
612
|
+
* plane differs from the default z/y/x mapping. This method uses the
|
|
613
|
+
* orientation metadata to find the correct NGFF axis.
|
|
614
|
+
*
|
|
615
|
+
* Returns index in [z, y, x] order (0=z, 1=y, 2=x).
|
|
483
616
|
*/
|
|
484
617
|
private _getOrthogonalAxis;
|
|
485
618
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OMEZarrNVImage.d.ts","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAa,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAM3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAc,MAAM,gBAAgB,CAAA;AAcpD,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,aAAa,CAAA;AAWpB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"OMEZarrNVImage.d.ts","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"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"}
|