@fideus-labs/fidnii 0.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/LICENSE.txt +9 -0
- package/README.md +180 -0
- package/dist/BufferManager.d.ts +86 -0
- package/dist/BufferManager.d.ts.map +1 -0
- package/dist/BufferManager.js +146 -0
- package/dist/BufferManager.js.map +1 -0
- package/dist/ClipPlanes.d.ts +180 -0
- package/dist/ClipPlanes.d.ts.map +1 -0
- package/dist/ClipPlanes.js +513 -0
- package/dist/ClipPlanes.js.map +1 -0
- package/dist/OMEZarrNVImage.d.ts +545 -0
- package/dist/OMEZarrNVImage.d.ts.map +1 -0
- package/dist/OMEZarrNVImage.js +1799 -0
- package/dist/OMEZarrNVImage.js.map +1 -0
- package/dist/RegionCoalescer.d.ts +75 -0
- package/dist/RegionCoalescer.d.ts.map +1 -0
- package/dist/RegionCoalescer.js +151 -0
- package/dist/RegionCoalescer.js.map +1 -0
- package/dist/ResolutionSelector.d.ts +88 -0
- package/dist/ResolutionSelector.d.ts.map +1 -0
- package/dist/ResolutionSelector.js +224 -0
- package/dist/ResolutionSelector.js.map +1 -0
- package/dist/ViewportBounds.d.ts +50 -0
- package/dist/ViewportBounds.d.ts.map +1 -0
- package/dist/ViewportBounds.js +325 -0
- package/dist/ViewportBounds.js.map +1 -0
- package/dist/events.d.ts +122 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +12 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +273 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +126 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/affine.d.ts +72 -0
- package/dist/utils/affine.d.ts.map +1 -0
- package/dist/utils/affine.js +173 -0
- package/dist/utils/affine.js.map +1 -0
- package/dist/utils/coordinates.d.ts +80 -0
- package/dist/utils/coordinates.d.ts.map +1 -0
- package/dist/utils/coordinates.js +207 -0
- package/dist/utils/coordinates.js.map +1 -0
- package/package.json +61 -0
- package/src/BufferManager.ts +176 -0
- package/src/ClipPlanes.ts +640 -0
- package/src/OMEZarrNVImage.ts +2286 -0
- package/src/RegionCoalescer.ts +217 -0
- package/src/ResolutionSelector.ts +325 -0
- package/src/ViewportBounds.ts +369 -0
- package/src/events.ts +146 -0
- package/src/index.ts +153 -0
- package/src/types.ts +429 -0
- package/src/utils/affine.ts +218 -0
- package/src/utils/coordinates.ts +271 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OMEZarrNVImage.js","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { NgffImage } from "@fideus-labs/ngff-zarr";
|
|
2
|
+
import type { ChunkCache, PixelRegion, RegionFetchResult } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* RegionCoalescer handles fetching sub-regions from OME-Zarr images with:
|
|
5
|
+
*
|
|
6
|
+
* 1. Request deduplication - Multiple async triggers (zoom, crop changes, etc.)
|
|
7
|
+
* requesting the same region receive the same promise
|
|
8
|
+
* 2. Parallel fetching - Uses fizarrita's worker-pool-accelerated zarrGet
|
|
9
|
+
* for concurrent, worker-offloaded chunk fetches
|
|
10
|
+
* 3. Requester tracking - Tracks who is waiting for each request
|
|
11
|
+
* 4. Chunk caching - Optional decoded-chunk cache to avoid redundant
|
|
12
|
+
* decompression on repeated or overlapping reads
|
|
13
|
+
*
|
|
14
|
+
* This design supports future scenarios where multiple UI events may trigger
|
|
15
|
+
* overlapping region requests simultaneously.
|
|
16
|
+
*/
|
|
17
|
+
export declare class RegionCoalescer {
|
|
18
|
+
private readonly pending;
|
|
19
|
+
/** Optional decoded-chunk cache forwarded to fizarrita's getWorker. */
|
|
20
|
+
private readonly _cache;
|
|
21
|
+
/**
|
|
22
|
+
* @param cache - Optional decoded-chunk cache. When provided, `zarrGet`
|
|
23
|
+
* caches decoded chunks to avoid redundant decompression on repeated
|
|
24
|
+
* or overlapping reads.
|
|
25
|
+
*/
|
|
26
|
+
constructor(cache?: ChunkCache);
|
|
27
|
+
/**
|
|
28
|
+
* Generate a unique key for a request based on image path, level index, and region.
|
|
29
|
+
*/
|
|
30
|
+
private makeKey;
|
|
31
|
+
/**
|
|
32
|
+
* Request a region, coalescing with any in-flight request for the same data.
|
|
33
|
+
*
|
|
34
|
+
* @param ngffImage - The NgffImage to fetch from
|
|
35
|
+
* @param levelIndex - The resolution level index
|
|
36
|
+
* @param region - The pixel region to fetch
|
|
37
|
+
* @param requesterId - ID of the requester (e.g., 'zoom', 'crop-change', 'progressive-load')
|
|
38
|
+
* @returns The fetched region data
|
|
39
|
+
*/
|
|
40
|
+
fetchRegion(ngffImage: NgffImage, levelIndex: number, region: PixelRegion, requesterId?: string): Promise<RegionFetchResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Fetch multiple regions in parallel, with deduplication.
|
|
43
|
+
* Useful for fetching multiple chunks for a single view update.
|
|
44
|
+
*
|
|
45
|
+
* @param ngffImage - The NgffImage to fetch from
|
|
46
|
+
* @param levelIndex - The resolution level index
|
|
47
|
+
* @param regions - Array of pixel regions to fetch
|
|
48
|
+
* @param requesterId - ID of the requester
|
|
49
|
+
* @returns Array of fetched region data
|
|
50
|
+
*/
|
|
51
|
+
fetchRegions(ngffImage: NgffImage, levelIndex: number, regions: PixelRegion[], requesterId?: string): Promise<RegionFetchResult[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Check if there's a pending request for the given parameters.
|
|
54
|
+
*/
|
|
55
|
+
hasPending(ngffImage: NgffImage, levelIndex: number, region: PixelRegion): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Get the set of requesters waiting for a pending request.
|
|
58
|
+
* Returns undefined if no pending request exists.
|
|
59
|
+
*/
|
|
60
|
+
getPendingRequesters(ngffImage: NgffImage, levelIndex: number, region: PixelRegion): Set<string> | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Wait for all pending fetches to complete.
|
|
63
|
+
*/
|
|
64
|
+
onIdle(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Get the number of pending requests (unique region requests).
|
|
67
|
+
*/
|
|
68
|
+
get pendingCount(): number;
|
|
69
|
+
/**
|
|
70
|
+
* Clear all pending requests.
|
|
71
|
+
* Note: Does not resolve or reject pending promises.
|
|
72
|
+
*/
|
|
73
|
+
clear(): void;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=RegionCoalescer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegionCoalescer.d.ts","sourceRoot":"","sources":["../src/RegionCoalescer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAgBpB;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAElE,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAEhD;;;;OAIG;gBACS,KAAK,CAAC,EAAE,UAAU;IAI9B;;OAEG;IACH,OAAO,CAAC,OAAO;IAUf;;;;;;;;OAQG;IACG,WAAW,CACf,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,MAAkB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IA4D7B;;;;;;;;;OASG;IACG,YAAY,CAChB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,GAAE,MAAkB,GAC9B,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAQ/B;;OAEG;IACH,UAAU,CACR,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,GAClB,OAAO;IAKV;;;OAGG;IACH,oBAAoB,CAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,GAClB,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS;IAK1B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ7B;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;OAGG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
import * as zarr from "zarrita";
|
|
4
|
+
import { zarrGet } from "@fideus-labs/ngff-zarr/browser";
|
|
5
|
+
/**
|
|
6
|
+
* RegionCoalescer handles fetching sub-regions from OME-Zarr images with:
|
|
7
|
+
*
|
|
8
|
+
* 1. Request deduplication - Multiple async triggers (zoom, crop changes, etc.)
|
|
9
|
+
* requesting the same region receive the same promise
|
|
10
|
+
* 2. Parallel fetching - Uses fizarrita's worker-pool-accelerated zarrGet
|
|
11
|
+
* for concurrent, worker-offloaded chunk fetches
|
|
12
|
+
* 3. Requester tracking - Tracks who is waiting for each request
|
|
13
|
+
* 4. Chunk caching - Optional decoded-chunk cache to avoid redundant
|
|
14
|
+
* decompression on repeated or overlapping reads
|
|
15
|
+
*
|
|
16
|
+
* This design supports future scenarios where multiple UI events may trigger
|
|
17
|
+
* overlapping region requests simultaneously.
|
|
18
|
+
*/
|
|
19
|
+
export class RegionCoalescer {
|
|
20
|
+
pending = new Map();
|
|
21
|
+
/** Optional decoded-chunk cache forwarded to fizarrita's getWorker. */
|
|
22
|
+
_cache;
|
|
23
|
+
/**
|
|
24
|
+
* @param cache - Optional decoded-chunk cache. When provided, `zarrGet`
|
|
25
|
+
* caches decoded chunks to avoid redundant decompression on repeated
|
|
26
|
+
* or overlapping reads.
|
|
27
|
+
*/
|
|
28
|
+
constructor(cache) {
|
|
29
|
+
this._cache = cache;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate a unique key for a request based on image path, level index, and region.
|
|
33
|
+
*/
|
|
34
|
+
makeKey(imagePath, levelIndex, region) {
|
|
35
|
+
const start = region.start.join(",");
|
|
36
|
+
const end = region.end.join(",");
|
|
37
|
+
return `${imagePath}:${levelIndex}:${start}:${end}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Request a region, coalescing with any in-flight request for the same data.
|
|
41
|
+
*
|
|
42
|
+
* @param ngffImage - The NgffImage to fetch from
|
|
43
|
+
* @param levelIndex - The resolution level index
|
|
44
|
+
* @param region - The pixel region to fetch
|
|
45
|
+
* @param requesterId - ID of the requester (e.g., 'zoom', 'crop-change', 'progressive-load')
|
|
46
|
+
* @returns The fetched region data
|
|
47
|
+
*/
|
|
48
|
+
async fetchRegion(ngffImage, levelIndex, region, requesterId = "default") {
|
|
49
|
+
const key = this.makeKey(ngffImage.data.path, levelIndex, region);
|
|
50
|
+
// Check if there's already a pending request for this data
|
|
51
|
+
const existing = this.pending.get(key);
|
|
52
|
+
if (existing) {
|
|
53
|
+
// Add this requester to the waiters and return the existing promise
|
|
54
|
+
existing.requesters.add(requesterId);
|
|
55
|
+
return existing.promise;
|
|
56
|
+
}
|
|
57
|
+
// Create a new pending request
|
|
58
|
+
let resolvePromise;
|
|
59
|
+
let rejectPromise;
|
|
60
|
+
const promise = new Promise((resolve, reject) => {
|
|
61
|
+
resolvePromise = resolve;
|
|
62
|
+
rejectPromise = reject;
|
|
63
|
+
});
|
|
64
|
+
const pendingRequest = {
|
|
65
|
+
promise,
|
|
66
|
+
resolve: resolvePromise,
|
|
67
|
+
reject: rejectPromise,
|
|
68
|
+
requesters: new Set([requesterId]),
|
|
69
|
+
};
|
|
70
|
+
this.pending.set(key, pendingRequest);
|
|
71
|
+
// Fetch using fizarrita's worker-accelerated zarrGet
|
|
72
|
+
try {
|
|
73
|
+
const selection = [
|
|
74
|
+
zarr.slice(region.start[0], region.end[0]),
|
|
75
|
+
zarr.slice(region.start[1], region.end[1]),
|
|
76
|
+
zarr.slice(region.start[2], region.end[2]),
|
|
77
|
+
];
|
|
78
|
+
// Pass the chunk cache to fizarrita's getWorker via zarrGet.
|
|
79
|
+
// The `cache` option is available in @fideus-labs/fizarrita >=1.2.0.
|
|
80
|
+
const zarrOpts = this._cache
|
|
81
|
+
? { cache: this._cache }
|
|
82
|
+
: undefined;
|
|
83
|
+
const result = await zarrGet(ngffImage.data, selection, zarrOpts);
|
|
84
|
+
const fetchResult = {
|
|
85
|
+
data: result.data,
|
|
86
|
+
shape: result.shape,
|
|
87
|
+
stride: result.stride,
|
|
88
|
+
};
|
|
89
|
+
pendingRequest.resolve(fetchResult);
|
|
90
|
+
return fetchResult;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
94
|
+
pendingRequest.reject(err);
|
|
95
|
+
throw err;
|
|
96
|
+
}
|
|
97
|
+
finally {
|
|
98
|
+
this.pending.delete(key);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Fetch multiple regions in parallel, with deduplication.
|
|
103
|
+
* Useful for fetching multiple chunks for a single view update.
|
|
104
|
+
*
|
|
105
|
+
* @param ngffImage - The NgffImage to fetch from
|
|
106
|
+
* @param levelIndex - The resolution level index
|
|
107
|
+
* @param regions - Array of pixel regions to fetch
|
|
108
|
+
* @param requesterId - ID of the requester
|
|
109
|
+
* @returns Array of fetched region data
|
|
110
|
+
*/
|
|
111
|
+
async fetchRegions(ngffImage, levelIndex, regions, requesterId = "default") {
|
|
112
|
+
return Promise.all(regions.map((region) => this.fetchRegion(ngffImage, levelIndex, region, requesterId)));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Check if there's a pending request for the given parameters.
|
|
116
|
+
*/
|
|
117
|
+
hasPending(ngffImage, levelIndex, region) {
|
|
118
|
+
const key = this.makeKey(ngffImage.data.path, levelIndex, region);
|
|
119
|
+
return this.pending.has(key);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get the set of requesters waiting for a pending request.
|
|
123
|
+
* Returns undefined if no pending request exists.
|
|
124
|
+
*/
|
|
125
|
+
getPendingRequesters(ngffImage, levelIndex, region) {
|
|
126
|
+
const key = this.makeKey(ngffImage.data.path, levelIndex, region);
|
|
127
|
+
return this.pending.get(key)?.requesters;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Wait for all pending fetches to complete.
|
|
131
|
+
*/
|
|
132
|
+
async onIdle() {
|
|
133
|
+
// Wait for all in-flight requests to settle
|
|
134
|
+
const promises = Array.from(this.pending.values()).map((p) => p.promise.catch(() => { }));
|
|
135
|
+
await Promise.all(promises);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get the number of pending requests (unique region requests).
|
|
139
|
+
*/
|
|
140
|
+
get pendingCount() {
|
|
141
|
+
return this.pending.size;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Clear all pending requests.
|
|
145
|
+
* Note: Does not resolve or reject pending promises.
|
|
146
|
+
*/
|
|
147
|
+
clear() {
|
|
148
|
+
this.pending.clear();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=RegionCoalescer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegionCoalescer.js","sourceRoot":"","sources":["../src/RegionCoalescer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { Multiscales, NgffImage } from "@fideus-labs/ngff-zarr";
|
|
2
|
+
import type { ClipPlanes, PixelRegion, ResolutionSelection, VolumeBounds } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Orthogonal axis index in [z, y, x] order.
|
|
5
|
+
* 0 = Z (axial view), 1 = Y (coronal view), 2 = X (sagittal view)
|
|
6
|
+
*/
|
|
7
|
+
export type OrthogonalAxis = 0 | 1 | 2;
|
|
8
|
+
/**
|
|
9
|
+
* Select the appropriate resolution level based on pixel budget and clip planes.
|
|
10
|
+
*
|
|
11
|
+
* The selection process:
|
|
12
|
+
* 1. Starts from the highest resolution (level 0)
|
|
13
|
+
* 2. Finds the highest resolution that fits within maxPixels
|
|
14
|
+
* 3. Considers the clipped region size, not full volume
|
|
15
|
+
*
|
|
16
|
+
* @param multiscales - The OME-Zarr multiscales data
|
|
17
|
+
* @param maxPixels - Maximum number of pixels to use
|
|
18
|
+
* @param clipPlanes - Current clip planes in world space
|
|
19
|
+
* @param volumeBounds - Full volume bounds in world space
|
|
20
|
+
* @param viewportBounds - Optional viewport bounds (for viewport-aware mode)
|
|
21
|
+
* @returns The selected resolution level and buffer dimensions
|
|
22
|
+
*/
|
|
23
|
+
export declare function selectResolution(multiscales: Multiscales, maxPixels: number, clipPlanes: ClipPlanes, volumeBounds: VolumeBounds, viewportBounds?: VolumeBounds): ResolutionSelection;
|
|
24
|
+
/**
|
|
25
|
+
* Get the chunk shape for a volume.
|
|
26
|
+
*
|
|
27
|
+
* @param ngffImage - The NgffImage to get chunk shape from
|
|
28
|
+
* @returns Chunk shape as [z, y, x]
|
|
29
|
+
*/
|
|
30
|
+
export declare function getChunkShape(ngffImage: NgffImage): [number, number, number];
|
|
31
|
+
/**
|
|
32
|
+
* Get the shape of a volume as [z, y, x].
|
|
33
|
+
*
|
|
34
|
+
* @param ngffImage - The NgffImage
|
|
35
|
+
* @returns Shape as [z, y, x]
|
|
36
|
+
*/
|
|
37
|
+
export declare function getVolumeShape(ngffImage: NgffImage): [number, number, number];
|
|
38
|
+
/**
|
|
39
|
+
* Align a pixel region to chunk boundaries.
|
|
40
|
+
* Expands the region to include complete chunks.
|
|
41
|
+
*
|
|
42
|
+
* @param region - The pixel region to align
|
|
43
|
+
* @param ngffImage - The NgffImage (for chunk shape)
|
|
44
|
+
* @returns Aligned region
|
|
45
|
+
*/
|
|
46
|
+
export declare function alignRegionToChunks(region: PixelRegion, ngffImage: NgffImage): PixelRegion;
|
|
47
|
+
/**
|
|
48
|
+
* Calculate the middle resolution level index.
|
|
49
|
+
*
|
|
50
|
+
* @param multiscales - The OME-Zarr multiscales data
|
|
51
|
+
* @returns Middle resolution level index
|
|
52
|
+
*/
|
|
53
|
+
export declare function getMiddleResolutionIndex(multiscales: Multiscales): number;
|
|
54
|
+
/**
|
|
55
|
+
* Calculate upsample factor from one resolution level to another.
|
|
56
|
+
*
|
|
57
|
+
* @param multiscales - The OME-Zarr multiscales data
|
|
58
|
+
* @param fromLevel - Source resolution level
|
|
59
|
+
* @param toLevel - Target resolution level (should be higher resolution, i.e., lower index)
|
|
60
|
+
* @returns Upsample factor for each dimension [z, y, x]
|
|
61
|
+
*/
|
|
62
|
+
export declare function calculateUpsampleFactor(multiscales: Multiscales, fromLevel: number, toLevel: number): [number, number, number];
|
|
63
|
+
/**
|
|
64
|
+
* Get dimensions for the full volume at a given resolution level.
|
|
65
|
+
*/
|
|
66
|
+
export declare function getFullVolumeDimensions(multiscales: Multiscales, levelIndex: number): [number, number, number];
|
|
67
|
+
/**
|
|
68
|
+
* Select the appropriate resolution level for a 2D slice view.
|
|
69
|
+
*
|
|
70
|
+
* Unlike `selectResolution` which counts all 3D pixels (z*y*x), this function
|
|
71
|
+
* counts only the 2D in-plane pixels (e.g., x*y for axial), ignoring the
|
|
72
|
+
* orthogonal axis. This allows much higher resolution for 2D slice views.
|
|
73
|
+
*
|
|
74
|
+
* The slab dimensions returned include one chunk of thickness in the
|
|
75
|
+
* orthogonal direction (needed for zarr fetching efficiency). The pixel
|
|
76
|
+
* budget accounts for the full 3D slab volume (in-plane area multiplied
|
|
77
|
+
* by the chunk thickness along the orthogonal axis).
|
|
78
|
+
*
|
|
79
|
+
* @param multiscales - The OME-Zarr multiscales data
|
|
80
|
+
* @param maxPixels - Maximum number of voxels for the slab (in-plane area × chunk depth)
|
|
81
|
+
* @param clipPlanes - Current clip planes in world space
|
|
82
|
+
* @param volumeBounds - Full volume bounds in world space
|
|
83
|
+
* @param orthogonalAxis - The axis perpendicular to the slice plane (0=Z, 1=Y, 2=X)
|
|
84
|
+
* @param viewportBounds - Optional viewport bounds (for viewport-aware mode)
|
|
85
|
+
* @returns The selected resolution level and slab dimensions
|
|
86
|
+
*/
|
|
87
|
+
export declare function select2DResolution(multiscales: Multiscales, maxPixels: number, clipPlanes: ClipPlanes, volumeBounds: VolumeBounds, orthogonalAxis: OrthogonalAxis, viewportBounds?: VolumeBounds): ResolutionSelection;
|
|
88
|
+
//# sourceMappingURL=ResolutionSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolutionSelector.d.ts","sourceRoot":"","sources":["../src/ResolutionSelector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,cAAc,CAAC,EAAE,YAAY,GAC5B,mBAAmB,CAoDrB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAgB5E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAgB7E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,SAAS,GACnB,WAAW,CA+Bb;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAEzE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAY1B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GACjB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAE1B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,YAAY,GAC5B,mBAAmB,CAkErB"}
|