@idetik/core 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.md +21 -0
- package/README.md +23 -0
- package/dist/assets/worker_kernel-BYKAkuPZ.js.map +1 -0
- package/dist/blosc-BOWv2fO7.js +720 -0
- package/dist/blosc-BOWv2fO7.js.map +1 -0
- package/dist/browser-D0q2hNGi.js +525 -0
- package/dist/browser-D0q2hNGi.js.map +1 -0
- package/dist/chunk-INHXZS53-DiyuLb3Z.js +15 -0
- package/dist/chunk-INHXZS53-DiyuLb3Z.js.map +1 -0
- package/dist/gzip-DchmmbTG.js +23 -0
- package/dist/gzip-DchmmbTG.js.map +1 -0
- package/dist/index.d.ts +1865 -0
- package/dist/index.js +13598 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.cjs +3938 -0
- package/dist/index.umd.cjs.map +1 -0
- package/dist/lz4-DUlZKApi.js +641 -0
- package/dist/lz4-DUlZKApi.js.map +1 -0
- package/dist/types/examples/ca_wave_dynamics/main.d.ts +2 -0
- package/dist/types/examples/ca_wave_dynamics/main.d.ts.map +1 -0
- package/dist/types/examples/chunk_streaming/chunk_info_overlay.d.ts +13 -0
- package/dist/types/examples/chunk_streaming/chunk_info_overlay.d.ts.map +1 -0
- package/dist/types/examples/chunk_streaming/main.d.ts +2 -0
- package/dist/types/examples/chunk_streaming/main.d.ts.map +1 -0
- package/dist/types/examples/image2d_from_omezarr4d_hcs/main.d.ts +2 -0
- package/dist/types/examples/image2d_from_omezarr4d_hcs/main.d.ts.map +1 -0
- package/dist/types/examples/image2d_from_omezarr5d_u16/main.d.ts +2 -0
- package/dist/types/examples/image2d_from_omezarr5d_u16/main.d.ts.map +1 -0
- package/dist/types/examples/image2d_from_omezarr5d_u16/scale_bar.d.ts +15 -0
- package/dist/types/examples/image2d_from_omezarr5d_u16/scale_bar.d.ts.map +1 -0
- package/dist/types/examples/image_labels_overlay_with_value_picking/main.d.ts +2 -0
- package/dist/types/examples/image_labels_overlay_with_value_picking/main.d.ts.map +1 -0
- package/dist/types/examples/image_mask_overlay/main.d.ts +2 -0
- package/dist/types/examples/image_mask_overlay/main.d.ts.map +1 -0
- package/dist/types/examples/image_series_from_omezarr5d_u8/main.d.ts +2 -0
- package/dist/types/examples/image_series_from_omezarr5d_u8/main.d.ts.map +1 -0
- package/dist/types/examples/image_series_labels_overlay/main.d.ts +2 -0
- package/dist/types/examples/image_series_labels_overlay/main.d.ts.map +1 -0
- package/dist/types/examples/layer_blending/main.d.ts +2 -0
- package/dist/types/examples/layer_blending/main.d.ts.map +1 -0
- package/dist/types/examples/lil_gui_utils.d.ts +18 -0
- package/dist/types/examples/lil_gui_utils.d.ts.map +1 -0
- package/dist/types/examples/multi_viewport/main.d.ts +2 -0
- package/dist/types/examples/multi_viewport/main.d.ts.map +1 -0
- package/dist/types/examples/navigation.d.ts +2 -0
- package/dist/types/examples/navigation.d.ts.map +1 -0
- package/dist/types/examples/ome_zarr_v05/main.d.ts +2 -0
- package/dist/types/examples/ome_zarr_v05/main.d.ts.map +1 -0
- package/dist/types/examples/points/main.d.ts +2 -0
- package/dist/types/examples/points/main.d.ts.map +1 -0
- package/dist/types/examples/projected_lines/main.d.ts +2 -0
- package/dist/types/examples/projected_lines/main.d.ts.map +1 -0
- package/dist/types/examples/s3_private_data/aws_auth.d.ts +17 -0
- package/dist/types/examples/s3_private_data/aws_auth.d.ts.map +1 -0
- package/dist/types/examples/s3_private_data/main.d.ts +2 -0
- package/dist/types/examples/s3_private_data/main.d.ts.map +1 -0
- package/dist/types/examples/tracks/main.d.ts +2 -0
- package/dist/types/examples/tracks/main.d.ts.map +1 -0
- package/dist/types/examples/volume_rendering/main.d.ts +2 -0
- package/dist/types/examples/volume_rendering/main.d.ts.map +1 -0
- package/dist/types/src/core/chunk_manager.d.ts +12 -0
- package/dist/types/src/core/chunk_manager.d.ts.map +1 -0
- package/dist/types/src/core/chunk_manager_source.d.ts +49 -0
- package/dist/types/src/core/chunk_manager_source.d.ts.map +1 -0
- package/dist/types/src/core/color.d.ts +27 -0
- package/dist/types/src/core/color.d.ts.map +1 -0
- package/dist/types/src/core/constants.d.ts +2 -0
- package/dist/types/src/core/constants.d.ts.map +1 -0
- package/dist/types/src/core/event_dispatcher.d.ts +26 -0
- package/dist/types/src/core/event_dispatcher.d.ts.map +1 -0
- package/dist/types/src/core/geometry.d.ts +31 -0
- package/dist/types/src/core/geometry.d.ts.map +1 -0
- package/dist/types/src/core/image_source_policy.d.ts +39 -0
- package/dist/types/src/core/image_source_policy.d.ts.map +1 -0
- package/dist/types/src/core/layer.d.ts +37 -0
- package/dist/types/src/core/layer.d.ts.map +1 -0
- package/dist/types/src/core/layer_manager.d.ts +21 -0
- package/dist/types/src/core/layer_manager.d.ts.map +1 -0
- package/dist/types/src/core/node.d.ts +5 -0
- package/dist/types/src/core/node.d.ts.map +1 -0
- package/dist/types/src/core/renderable_object.d.ts +33 -0
- package/dist/types/src/core/renderable_object.d.ts.map +1 -0
- package/dist/types/src/core/renderer.d.ts +25 -0
- package/dist/types/src/core/renderer.d.ts.map +1 -0
- package/dist/types/src/core/transforms.d.ts +22 -0
- package/dist/types/src/core/transforms.d.ts.map +1 -0
- package/dist/types/src/core/viewport.d.ts +38 -0
- package/dist/types/src/core/viewport.d.ts.map +1 -0
- package/dist/types/src/core/wireframe_geometry.d.ts +5 -0
- package/dist/types/src/core/wireframe_geometry.d.ts.map +1 -0
- package/dist/types/src/data/chunk.d.ts +86 -0
- package/dist/types/src/data/chunk.d.ts.map +1 -0
- package/dist/types/src/data/chunk_queue.d.ts +17 -0
- package/dist/types/src/data/chunk_queue.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/0.4/image.d.ts +203 -0
- package/dist/types/src/data/ome_zarr/0.4/image.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/0.4/plate.d.ts +174 -0
- package/dist/types/src/data/ome_zarr/0.4/plate.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/0.4/well.d.ts +51 -0
- package/dist/types/src/data/ome_zarr/0.4/well.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/0.5/image.d.ts +271 -0
- package/dist/types/src/data/ome_zarr/0.5/image.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/0.5/plate.d.ts +229 -0
- package/dist/types/src/data/ome_zarr/0.5/plate.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/0.5/well.d.ts +72 -0
- package/dist/types/src/data/ome_zarr/0.5/well.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/image_loader.d.ts +35 -0
- package/dist/types/src/data/ome_zarr/image_loader.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/image_source.d.ts +33 -0
- package/dist/types/src/data/ome_zarr/image_source.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/metadata_loaders.d.ts +20 -0
- package/dist/types/src/data/ome_zarr/metadata_loaders.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/worker_kernel.d.ts +25 -0
- package/dist/types/src/data/ome_zarr/worker_kernel.d.ts.map +1 -0
- package/dist/types/src/data/ome_zarr/worker_pool.d.ts +8 -0
- package/dist/types/src/data/ome_zarr/worker_pool.d.ts.map +1 -0
- package/dist/types/src/data/promise_scheduler.d.ts +17 -0
- package/dist/types/src/data/promise_scheduler.d.ts.map +1 -0
- package/dist/types/src/data/region.d.ts +19 -0
- package/dist/types/src/data/region.d.ts.map +1 -0
- package/dist/types/src/data/zarr/open.d.ts +27 -0
- package/dist/types/src/data/zarr/open.d.ts.map +1 -0
- package/dist/types/src/data/zarr/web_file_system_store.d.ts +28 -0
- package/dist/types/src/data/zarr/web_file_system_store.d.ts.map +1 -0
- package/dist/types/src/idetik.d.ts +89 -0
- package/dist/types/src/idetik.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +42 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/layers/axes_layer.d.ts +10 -0
- package/dist/types/src/layers/axes_layer.d.ts.map +1 -0
- package/dist/types/src/layers/chunked_image_layer.d.ts +66 -0
- package/dist/types/src/layers/chunked_image_layer.d.ts.map +1 -0
- package/dist/types/src/layers/image_layer.d.ts +44 -0
- package/dist/types/src/layers/image_layer.d.ts.map +1 -0
- package/dist/types/src/layers/image_series_layer.d.ts +41 -0
- package/dist/types/src/layers/image_series_layer.d.ts.map +1 -0
- package/dist/types/src/layers/image_series_loader.d.ts +45 -0
- package/dist/types/src/layers/image_series_loader.d.ts.map +1 -0
- package/dist/types/src/layers/label_image_layer.d.ts +38 -0
- package/dist/types/src/layers/label_image_layer.d.ts.map +1 -0
- package/dist/types/src/layers/label_image_series_layer.d.ts +36 -0
- package/dist/types/src/layers/label_image_series_layer.d.ts.map +1 -0
- package/dist/types/src/layers/point_picking.d.ts +11 -0
- package/dist/types/src/layers/point_picking.d.ts.map +1 -0
- package/dist/types/src/layers/projected_line_layer.d.ts +25 -0
- package/dist/types/src/layers/projected_line_layer.d.ts.map +1 -0
- package/dist/types/src/layers/tracks_layer.d.ts +31 -0
- package/dist/types/src/layers/tracks_layer.d.ts.map +1 -0
- package/dist/types/src/layers/volume_layer.d.ts +7 -0
- package/dist/types/src/layers/volume_layer.d.ts.map +1 -0
- package/dist/types/src/math/box2.d.ts +24 -0
- package/dist/types/src/math/box2.d.ts.map +1 -0
- package/dist/types/src/math/box3.d.ts +18 -0
- package/dist/types/src/math/box3.d.ts.map +1 -0
- package/dist/types/src/math/frustum.d.ts +9 -0
- package/dist/types/src/math/frustum.d.ts.map +1 -0
- package/dist/types/src/math/plane.d.ts +10 -0
- package/dist/types/src/math/plane.d.ts.map +1 -0
- package/dist/types/src/math/spherical.d.ts +9 -0
- package/dist/types/src/math/spherical.d.ts.map +1 -0
- package/dist/types/src/objects/cameras/camera.d.ts +23 -0
- package/dist/types/src/objects/cameras/camera.d.ts.map +1 -0
- package/dist/types/src/objects/cameras/controls.d.ts +17 -0
- package/dist/types/src/objects/cameras/controls.d.ts.map +1 -0
- package/dist/types/src/objects/cameras/orbit_controls.d.ts +26 -0
- package/dist/types/src/objects/cameras/orbit_controls.d.ts.map +1 -0
- package/dist/types/src/objects/cameras/orthographic_camera.d.ts +17 -0
- package/dist/types/src/objects/cameras/orthographic_camera.d.ts.map +1 -0
- package/dist/types/src/objects/cameras/perspective_camera.d.ts +21 -0
- package/dist/types/src/objects/cameras/perspective_camera.d.ts.map +1 -0
- package/dist/types/src/objects/geometry/box_geometry.d.ts +6 -0
- package/dist/types/src/objects/geometry/box_geometry.d.ts.map +1 -0
- package/dist/types/src/objects/geometry/plane_geometry.d.ts +5 -0
- package/dist/types/src/objects/geometry/plane_geometry.d.ts.map +1 -0
- package/dist/types/src/objects/geometry/projected_line_geometry.d.ts +8 -0
- package/dist/types/src/objects/geometry/projected_line_geometry.d.ts.map +1 -0
- package/dist/types/src/objects/renderable/image_renderable.d.ts +27 -0
- package/dist/types/src/objects/renderable/image_renderable.d.ts.map +1 -0
- package/dist/types/src/objects/renderable/label_color_map.d.ts +11 -0
- package/dist/types/src/objects/renderable/label_color_map.d.ts.map +1 -0
- package/dist/types/src/objects/renderable/label_image_renderable.d.ts +30 -0
- package/dist/types/src/objects/renderable/label_image_renderable.d.ts.map +1 -0
- package/dist/types/src/objects/renderable/points.d.ts +17 -0
- package/dist/types/src/objects/renderable/points.d.ts.map +1 -0
- package/dist/types/src/objects/renderable/projected_line.d.ts +34 -0
- package/dist/types/src/objects/renderable/projected_line.d.ts.map +1 -0
- package/dist/types/src/objects/renderable/volume_renderable.d.ts +7 -0
- package/dist/types/src/objects/renderable/volume_renderable.d.ts.map +1 -0
- package/dist/types/src/objects/textures/channel.d.ts +23 -0
- package/dist/types/src/objects/textures/channel.d.ts.map +1 -0
- package/dist/types/src/objects/textures/texture.d.ts +28 -0
- package/dist/types/src/objects/textures/texture.d.ts.map +1 -0
- package/dist/types/src/objects/textures/texture_2d.d.ts +16 -0
- package/dist/types/src/objects/textures/texture_2d.d.ts.map +1 -0
- package/dist/types/src/objects/textures/texture_2d_array.d.ts +18 -0
- package/dist/types/src/objects/textures/texture_2d_array.d.ts.map +1 -0
- package/dist/types/src/objects/textures/texture_3d.d.ts +18 -0
- package/dist/types/src/objects/textures/texture_3d.d.ts.map +1 -0
- package/dist/types/src/renderers/WebGLState.d.ts +24 -0
- package/dist/types/src/renderers/WebGLState.d.ts.map +1 -0
- package/dist/types/src/renderers/shaders/index.d.ts +10 -0
- package/dist/types/src/renderers/shaders/index.d.ts.map +1 -0
- package/dist/types/src/renderers/webgl_buffers.d.ts +13 -0
- package/dist/types/src/renderers/webgl_buffers.d.ts.map +1 -0
- package/dist/types/src/renderers/webgl_renderer.d.ts +26 -0
- package/dist/types/src/renderers/webgl_renderer.d.ts.map +1 -0
- package/dist/types/src/renderers/webgl_shader_program.d.ts +14 -0
- package/dist/types/src/renderers/webgl_shader_program.d.ts.map +1 -0
- package/dist/types/src/renderers/webgl_shader_programs.d.ts +9 -0
- package/dist/types/src/renderers/webgl_shader_programs.d.ts.map +1 -0
- package/dist/types/src/renderers/webgl_textures.d.ts +32 -0
- package/dist/types/src/renderers/webgl_textures.d.ts.map +1 -0
- package/dist/types/src/utilities/almost_equal.d.ts +2 -0
- package/dist/types/src/utilities/almost_equal.d.ts.map +1 -0
- package/dist/types/src/utilities/clamp.d.ts +2 -0
- package/dist/types/src/utilities/clamp.d.ts.map +1 -0
- package/dist/types/src/utilities/logger.d.ts +14 -0
- package/dist/types/src/utilities/logger.d.ts.map +1 -0
- package/dist/types/src/utilities/pixel_size_observer.d.ts +13 -0
- package/dist/types/src/utilities/pixel_size_observer.d.ts.map +1 -0
- package/dist/types/src/utilities/renderable_pool.d.ts +8 -0
- package/dist/types/src/utilities/renderable_pool.d.ts.map +1 -0
- package/dist/types/src/utilities/stats.d.ts +6 -0
- package/dist/types/src/utilities/stats.d.ts.map +1 -0
- package/dist/types/src/utilities/uuid_generator.d.ts +2 -0
- package/dist/types/src/utilities/uuid_generator.d.ts.map +1 -0
- package/dist/types/test/box2.test.d.ts +2 -0
- package/dist/types/test/box2.test.d.ts.map +1 -0
- package/dist/types/test/box3.test.d.ts +2 -0
- package/dist/types/test/box3.test.d.ts.map +1 -0
- package/dist/types/test/chunk_queue.test.d.ts +2 -0
- package/dist/types/test/chunk_queue.test.d.ts.map +1 -0
- package/dist/types/test/frustum.test.d.ts +2 -0
- package/dist/types/test/frustum.test.d.ts.map +1 -0
- package/dist/types/test/helpers.d.ts +19 -0
- package/dist/types/test/helpers.d.ts.map +1 -0
- package/dist/types/test/idetik.test.d.ts +2 -0
- package/dist/types/test/idetik.test.d.ts.map +1 -0
- package/dist/types/test/image_source_policy.test.d.ts +2 -0
- package/dist/types/test/image_source_policy.test.d.ts.map +1 -0
- package/dist/types/test/layer.test.d.ts +2 -0
- package/dist/types/test/layer.test.d.ts.map +1 -0
- package/dist/types/test/plane.test.d.ts +2 -0
- package/dist/types/test/plane.test.d.ts.map +1 -0
- package/dist/types/test/projected_line_layer.test.d.ts +2 -0
- package/dist/types/test/projected_line_layer.test.d.ts.map +1 -0
- package/dist/types/test/promise_scheduler.test.d.ts +2 -0
- package/dist/types/test/promise_scheduler.test.d.ts.map +1 -0
- package/dist/types/test/renderable_pool.test.d.ts +2 -0
- package/dist/types/test/renderable_pool.test.d.ts.map +1 -0
- package/dist/types/test/spherical.test.d.ts +2 -0
- package/dist/types/test/spherical.test.d.ts.map +1 -0
- package/dist/types/test/transform.test.d.ts +2 -0
- package/dist/types/test/transform.test.d.ts.map +1 -0
- package/dist/types/test/viewport.test.d.ts +2 -0
- package/dist/types/test/viewport.test.d.ts.map +1 -0
- package/dist/types/test/webgl_renderer.test.d.ts +2 -0
- package/dist/types/test/webgl_renderer.test.d.ts.map +1 -0
- package/dist/types/test/webgl_state.test.d.ts +2 -0
- package/dist/types/test/webgl_state.test.d.ts.map +1 -0
- package/dist/zlib-Din1wO0I.js +23 -0
- package/dist/zlib-Din1wO0I.js.map +1 -0
- package/dist/zstd-DnzmycJs.js +604 -0
- package/dist/zstd-DnzmycJs.js.map +1 -0
- package/package.json +51 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1865 @@
|
|
|
1
|
+
import * as gl_matrix from 'gl-matrix';
|
|
2
|
+
import { vec3, mat4, quat, vec4, vec2 } from 'gl-matrix';
|
|
3
|
+
import { Location } from '@zarrita/core';
|
|
4
|
+
import { Readable } from '@zarrita/storage';
|
|
5
|
+
import * as zarr from 'zarrita';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
|
|
8
|
+
type Point = {
|
|
9
|
+
type: "point";
|
|
10
|
+
value: number;
|
|
11
|
+
};
|
|
12
|
+
type Interval = {
|
|
13
|
+
type: "interval";
|
|
14
|
+
start: number;
|
|
15
|
+
stop: number;
|
|
16
|
+
};
|
|
17
|
+
type Full = {
|
|
18
|
+
type: "full";
|
|
19
|
+
};
|
|
20
|
+
type Index = Point | Interval | Full;
|
|
21
|
+
type DimensionalIndex = {
|
|
22
|
+
dimension: string;
|
|
23
|
+
index: Index;
|
|
24
|
+
};
|
|
25
|
+
type Region = Array<DimensionalIndex>;
|
|
26
|
+
|
|
27
|
+
declare abstract class Node {
|
|
28
|
+
readonly uuid: string;
|
|
29
|
+
abstract get type(): string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
type TextureFilter = "nearest" | "linear";
|
|
33
|
+
type TextureWrapMode = "repeat" | "clamp_to_edge";
|
|
34
|
+
type TextureDataFormat = "scalar" | "rgb" | "rgba";
|
|
35
|
+
type TextureDataType = "byte" | "short" | "int" | "unsigned_byte" | "unsigned_short" | "unsigned_int" | "float";
|
|
36
|
+
type TextureUnpackRowAlignment = 1 | 2 | 4 | 8;
|
|
37
|
+
type DataTextureTypedArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Float32Array;
|
|
38
|
+
declare abstract class Texture extends Node {
|
|
39
|
+
dataFormat: TextureDataFormat;
|
|
40
|
+
dataType: TextureDataType;
|
|
41
|
+
maxFilter: TextureFilter;
|
|
42
|
+
minFilter: TextureFilter;
|
|
43
|
+
mipmapLevels: number;
|
|
44
|
+
unpackAlignment: TextureUnpackRowAlignment;
|
|
45
|
+
wrapR: TextureWrapMode;
|
|
46
|
+
wrapS: TextureWrapMode;
|
|
47
|
+
wrapT: TextureWrapMode;
|
|
48
|
+
needsUpdate: boolean;
|
|
49
|
+
abstract get width(): number;
|
|
50
|
+
abstract get height(): number;
|
|
51
|
+
abstract get data(): TexImageSource | ArrayBufferView | null;
|
|
52
|
+
abstract set data(data: DataTextureTypedArray);
|
|
53
|
+
get type(): string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
declare class PromiseScheduler {
|
|
57
|
+
private readonly maxConcurrent_;
|
|
58
|
+
private readonly pending_;
|
|
59
|
+
private readonly abortController_;
|
|
60
|
+
private numRunning_;
|
|
61
|
+
constructor(maxConcurrent: number);
|
|
62
|
+
submit<T>(task: () => Promise<T>): Promise<T>;
|
|
63
|
+
private maybeRunNext;
|
|
64
|
+
get abortSignal(): AbortSignal;
|
|
65
|
+
shutdown(): void;
|
|
66
|
+
get numRunning(): number;
|
|
67
|
+
get numPending(): number;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
declare const chunkDataTypes: readonly [Int8ArrayConstructor, Int16ArrayConstructor, Int32ArrayConstructor, Uint8ArrayConstructor, Uint16ArrayConstructor, Uint32ArrayConstructor, Float32ArrayConstructor];
|
|
71
|
+
type ChunkDataConstructor = (typeof chunkDataTypes)[number];
|
|
72
|
+
type ChunkData = InstanceType<ChunkDataConstructor>;
|
|
73
|
+
type Chunk = {
|
|
74
|
+
data?: ChunkData;
|
|
75
|
+
state: "unloaded" | "queued" | "loading" | "loaded";
|
|
76
|
+
lod: number;
|
|
77
|
+
visible: boolean;
|
|
78
|
+
prefetch: boolean;
|
|
79
|
+
priority: number | null;
|
|
80
|
+
orderKey: number | null;
|
|
81
|
+
shape: {
|
|
82
|
+
x: number;
|
|
83
|
+
y: number;
|
|
84
|
+
z: number;
|
|
85
|
+
c: number;
|
|
86
|
+
};
|
|
87
|
+
rowAlignmentBytes: TextureUnpackRowAlignment;
|
|
88
|
+
chunkIndex: {
|
|
89
|
+
x: number;
|
|
90
|
+
y: number;
|
|
91
|
+
z: number;
|
|
92
|
+
c: number;
|
|
93
|
+
t: number;
|
|
94
|
+
};
|
|
95
|
+
scale: {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
z: number;
|
|
99
|
+
};
|
|
100
|
+
offset: {
|
|
101
|
+
x: number;
|
|
102
|
+
y: number;
|
|
103
|
+
z: number;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
type SourceDimensionMap = {
|
|
107
|
+
x: SourceDimension;
|
|
108
|
+
y: SourceDimension;
|
|
109
|
+
z?: SourceDimension;
|
|
110
|
+
c?: SourceDimension;
|
|
111
|
+
t?: SourceDimension;
|
|
112
|
+
numLods: number;
|
|
113
|
+
};
|
|
114
|
+
type SourceDimension = {
|
|
115
|
+
name: string;
|
|
116
|
+
index: number;
|
|
117
|
+
unit?: string;
|
|
118
|
+
lods: SourceDimensionLod[];
|
|
119
|
+
};
|
|
120
|
+
type SourceDimensionLod = {
|
|
121
|
+
size: number;
|
|
122
|
+
chunkSize: number;
|
|
123
|
+
scale: number;
|
|
124
|
+
translation: number;
|
|
125
|
+
};
|
|
126
|
+
type SliceCoordinates = {
|
|
127
|
+
z?: number;
|
|
128
|
+
c?: number;
|
|
129
|
+
t?: number;
|
|
130
|
+
};
|
|
131
|
+
type ChunkSource = {
|
|
132
|
+
open(): Promise<ChunkLoader>;
|
|
133
|
+
};
|
|
134
|
+
type LoaderAttributes = {
|
|
135
|
+
dimensionNames: string[];
|
|
136
|
+
dimensionUnits: (string | undefined)[];
|
|
137
|
+
chunks: readonly number[];
|
|
138
|
+
shape: readonly number[];
|
|
139
|
+
scale: readonly number[];
|
|
140
|
+
translation: readonly number[];
|
|
141
|
+
};
|
|
142
|
+
type ChunkLoader = {
|
|
143
|
+
loadRegion(input: Region, lod: number, scheduler?: PromiseScheduler): Promise<Chunk>;
|
|
144
|
+
getSourceDimensionMap(): SourceDimensionMap;
|
|
145
|
+
loadChunkData(chunk: Chunk, signal: AbortSignal): Promise<void>;
|
|
146
|
+
getAttributes(): ReadonlyArray<LoaderAttributes>;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
declare class Box3 {
|
|
150
|
+
min: vec3;
|
|
151
|
+
max: vec3;
|
|
152
|
+
/**
|
|
153
|
+
* Initializes as an empty box if no values are provided using the
|
|
154
|
+
* "empty-by-sentinel" pattern: min = +Infinity, max = -Infinity.
|
|
155
|
+
* This allows expansion functions to work without special-casing
|
|
156
|
+
* the first element, and avoids biasing toward (0,0,0).
|
|
157
|
+
*/
|
|
158
|
+
constructor(min?: vec3, max?: vec3);
|
|
159
|
+
clone(): Box3;
|
|
160
|
+
isEmpty(): boolean;
|
|
161
|
+
static intersects(a: Box3, b: Box3): boolean;
|
|
162
|
+
expandWithPoint(p: vec3): void;
|
|
163
|
+
applyTransform(matrix: mat4): void;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
type Primitive = "triangles" | "points" | "lines";
|
|
167
|
+
type GeometryAttributeType = "position" | "normal" | "uv" | "next_position" | "previous_position" | "direction" | "path_proportion" | "color" | "size" | "marker";
|
|
168
|
+
type GeometryAttribute = {
|
|
169
|
+
type: GeometryAttributeType;
|
|
170
|
+
itemSize: number;
|
|
171
|
+
offset: number;
|
|
172
|
+
};
|
|
173
|
+
declare class Geometry extends Node {
|
|
174
|
+
private boundingBox_;
|
|
175
|
+
protected primitive_: Primitive;
|
|
176
|
+
protected attributes_: GeometryAttribute[];
|
|
177
|
+
protected vertexData_: Float32Array;
|
|
178
|
+
protected indexData_: Uint32Array;
|
|
179
|
+
constructor(vertexData?: number[], indexData?: number[], primitive?: Primitive);
|
|
180
|
+
addAttribute(attr: GeometryAttribute): void;
|
|
181
|
+
get vertexCount(): number;
|
|
182
|
+
get stride(): number;
|
|
183
|
+
get strideBytes(): number;
|
|
184
|
+
get primitive(): Primitive;
|
|
185
|
+
get vertexData(): Float32Array<ArrayBufferLike>;
|
|
186
|
+
get indexData(): Uint32Array<ArrayBufferLike>;
|
|
187
|
+
get attributes(): GeometryAttribute[];
|
|
188
|
+
get boundingBox(): Box3;
|
|
189
|
+
get type(): string;
|
|
190
|
+
private getAttribute;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
declare class WireframeGeometry extends Geometry {
|
|
194
|
+
constructor(geometry: Geometry);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
declare class TrsTransform {
|
|
198
|
+
private dirty_;
|
|
199
|
+
private matrix_;
|
|
200
|
+
private rotation_;
|
|
201
|
+
private translation_;
|
|
202
|
+
private scale_;
|
|
203
|
+
addRotation(q: quat): void;
|
|
204
|
+
setRotation(q: quat): void;
|
|
205
|
+
get rotation(): gl_matrix.vec4;
|
|
206
|
+
addTranslation(vec: vec3): void;
|
|
207
|
+
setTranslation(vec: vec3): void;
|
|
208
|
+
get translation(): vec3;
|
|
209
|
+
addScale(vec: vec3): void;
|
|
210
|
+
setScale(vec: vec3): void;
|
|
211
|
+
targetTo(target: vec3): void;
|
|
212
|
+
get scale(): vec3;
|
|
213
|
+
get matrix(): mat4;
|
|
214
|
+
get inverse(): mat4;
|
|
215
|
+
private computeMatrix;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
type Shader = "floatScalarImage" | "floatScalarImageArray" | "floatVolume" | "intScalarImage" | "intScalarImageArray" | "intVolume" | "labelImage" | "points" | "projectedLine" | "uintScalarImage" | "uintScalarImageArray" | "uintVolume" | "wireframe";
|
|
219
|
+
|
|
220
|
+
type ColorLike = Color | vec3 | vec4;
|
|
221
|
+
declare class Color {
|
|
222
|
+
static readonly RED: Color;
|
|
223
|
+
static readonly GREEN: Color;
|
|
224
|
+
static readonly BLUE: Color;
|
|
225
|
+
static readonly YELLOW: Color;
|
|
226
|
+
static readonly MAGENTA: Color;
|
|
227
|
+
static readonly CYAN: Color;
|
|
228
|
+
static readonly BLACK: Color;
|
|
229
|
+
static readonly WHITE: Color;
|
|
230
|
+
static readonly TRANSPARENT: Color;
|
|
231
|
+
private readonly rgba_;
|
|
232
|
+
constructor(r: number, g: number, b: number, a?: number);
|
|
233
|
+
get rgb(): [number, number, number];
|
|
234
|
+
get rgba(): readonly [number, number, number, number];
|
|
235
|
+
get r(): number;
|
|
236
|
+
get g(): number;
|
|
237
|
+
get b(): number;
|
|
238
|
+
get a(): number;
|
|
239
|
+
get rgbHex(): string;
|
|
240
|
+
get packed(): number;
|
|
241
|
+
static from(colorLike: ColorLike): Color;
|
|
242
|
+
static fromRgbHex(hex: string): Color;
|
|
243
|
+
private toHexComponent;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
declare abstract class RenderableObject extends Node {
|
|
247
|
+
wireframeEnabled: boolean;
|
|
248
|
+
wireframeColor: Color;
|
|
249
|
+
private readonly textures_;
|
|
250
|
+
private staleTextures_;
|
|
251
|
+
private readonly transform_;
|
|
252
|
+
private geometry_;
|
|
253
|
+
private wireframeGeometry_;
|
|
254
|
+
private programName_;
|
|
255
|
+
setTexture(index: number, texture: Texture): void;
|
|
256
|
+
popStaleTextures(): Texture[];
|
|
257
|
+
get geometry(): Geometry;
|
|
258
|
+
get wireframeGeometry(): WireframeGeometry;
|
|
259
|
+
get textures(): Texture[];
|
|
260
|
+
get transform(): TrsTransform;
|
|
261
|
+
set geometry(geometry: Geometry);
|
|
262
|
+
get programName(): Shader;
|
|
263
|
+
get boundingBox(): Box3;
|
|
264
|
+
protected set programName(programName: Shader);
|
|
265
|
+
/**
|
|
266
|
+
* Get uniforms for shader program. Override in derived classes that need custom uniforms.
|
|
267
|
+
* @returns Object containing uniform name-value pairs
|
|
268
|
+
*/
|
|
269
|
+
getUniforms(): Record<string, unknown>;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
declare class Frustum {
|
|
273
|
+
private readonly planes_;
|
|
274
|
+
constructor(m: mat4);
|
|
275
|
+
setWithViewProjection(m: mat4): void;
|
|
276
|
+
intersectsWithBox3(box: Box3): boolean;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
type CameraType = "OrthographicCamera" | "PerspectiveCamera";
|
|
280
|
+
declare abstract class Camera extends RenderableObject {
|
|
281
|
+
protected projectionMatrix_: mat4;
|
|
282
|
+
protected near_: number;
|
|
283
|
+
protected far_: number;
|
|
284
|
+
protected abstract updateProjectionMatrix(): void;
|
|
285
|
+
abstract get type(): CameraType;
|
|
286
|
+
update(): void;
|
|
287
|
+
get projectionMatrix(): mat4;
|
|
288
|
+
get viewMatrix(): mat4;
|
|
289
|
+
get right(): vec3;
|
|
290
|
+
get up(): vec3;
|
|
291
|
+
get frustum(): Frustum;
|
|
292
|
+
abstract setAspectRatio(aspectRatio: number): void;
|
|
293
|
+
abstract zoom(factor: number): void;
|
|
294
|
+
pan(vec: vec3): void;
|
|
295
|
+
get position(): vec3;
|
|
296
|
+
clipToWorld(position: vec3): vec3;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
declare class Box2 {
|
|
300
|
+
min: vec2;
|
|
301
|
+
max: vec2;
|
|
302
|
+
/**
|
|
303
|
+
* Initializes as an empty box if no values are provided using the
|
|
304
|
+
* "empty-by-sentinel" pattern: min = +Infinity, max = -Infinity.
|
|
305
|
+
* This allows expansion functions to work without special-casing
|
|
306
|
+
* the first element, and avoids biasing toward (0,0).
|
|
307
|
+
*/
|
|
308
|
+
constructor(min?: vec2, max?: vec2);
|
|
309
|
+
clone(): Box2;
|
|
310
|
+
isEmpty(): boolean;
|
|
311
|
+
static intersects(a: Box2, b: Box2): boolean;
|
|
312
|
+
static equals(a: Box2, b: Box2): boolean;
|
|
313
|
+
floor(): Box2;
|
|
314
|
+
toRect(): {
|
|
315
|
+
x: number;
|
|
316
|
+
y: number;
|
|
317
|
+
width: number;
|
|
318
|
+
height: number;
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
declare class OrthographicCamera extends Camera {
|
|
323
|
+
private width_;
|
|
324
|
+
private height_;
|
|
325
|
+
private viewportAspectRatio_;
|
|
326
|
+
private viewportSize_;
|
|
327
|
+
constructor(left: number, right: number, top: number, bottom: number, near?: number, far?: number);
|
|
328
|
+
get viewportSize(): [number, number];
|
|
329
|
+
setAspectRatio(aspectRatio: number): void;
|
|
330
|
+
setFrame(left: number, right: number, bottom: number, top: number): void;
|
|
331
|
+
get type(): CameraType;
|
|
332
|
+
zoom(factor: number): void;
|
|
333
|
+
getWorldViewRect(): Box2;
|
|
334
|
+
protected updateProjectionMatrix(): void;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
declare const ALL_CATEGORIES: readonly ["fallbackVisible", "prefetchTime", "visibleCurrent", "fallbackBackground", "prefetchSpace"];
|
|
338
|
+
type PriorityCategory = (typeof ALL_CATEGORIES)[number];
|
|
339
|
+
type ImageSourcePolicyConfig = {
|
|
340
|
+
profile?: string;
|
|
341
|
+
prefetch: {
|
|
342
|
+
x: number;
|
|
343
|
+
y: number;
|
|
344
|
+
z?: number;
|
|
345
|
+
t?: number;
|
|
346
|
+
};
|
|
347
|
+
priorityOrder: PriorityCategory[];
|
|
348
|
+
lod?: {
|
|
349
|
+
min?: number;
|
|
350
|
+
max?: number;
|
|
351
|
+
bias?: number;
|
|
352
|
+
};
|
|
353
|
+
};
|
|
354
|
+
type ImageSourcePolicy = Readonly<{
|
|
355
|
+
profile: string;
|
|
356
|
+
prefetch: {
|
|
357
|
+
x: number;
|
|
358
|
+
y: number;
|
|
359
|
+
z: number;
|
|
360
|
+
t: number;
|
|
361
|
+
};
|
|
362
|
+
priorityOrder: readonly PriorityCategory[];
|
|
363
|
+
priorityMap: Readonly<Record<PriorityCategory, number>>;
|
|
364
|
+
lod: {
|
|
365
|
+
min: number;
|
|
366
|
+
max: number;
|
|
367
|
+
bias: number;
|
|
368
|
+
};
|
|
369
|
+
}>;
|
|
370
|
+
declare function createImageSourcePolicy(config: ImageSourcePolicyConfig): ImageSourcePolicy;
|
|
371
|
+
declare function createExplorationPolicy(overrides?: Partial<ImageSourcePolicyConfig>): ImageSourcePolicy;
|
|
372
|
+
declare function createPlaybackPolicy(overrides?: Partial<ImageSourcePolicyConfig>): ImageSourcePolicy;
|
|
373
|
+
declare function createNoPrefetchPolicy(overrides?: Partial<ImageSourcePolicyConfig>): ImageSourcePolicy;
|
|
374
|
+
|
|
375
|
+
declare class ChunkManagerSource {
|
|
376
|
+
private readonly chunks_;
|
|
377
|
+
private readonly loader_;
|
|
378
|
+
private readonly lowestResLOD_;
|
|
379
|
+
private readonly sliceCoords_;
|
|
380
|
+
private readonly dimensions_;
|
|
381
|
+
private readonly tIndicesWithQueuedChunks_;
|
|
382
|
+
private readonly sourceMaxSquareDistance2D_;
|
|
383
|
+
private policy_;
|
|
384
|
+
private policyChanged_;
|
|
385
|
+
private currentLOD_;
|
|
386
|
+
private lastViewBounds2D_;
|
|
387
|
+
private lastZBounds_?;
|
|
388
|
+
private lastTCoord_?;
|
|
389
|
+
constructor(loader: ChunkLoader, sliceCoords: SliceCoordinates, policy: ImageSourcePolicy);
|
|
390
|
+
getChunks(): Chunk[];
|
|
391
|
+
getChunksAtCurrentTime(): Chunk[];
|
|
392
|
+
private getCurrentTimeIndex;
|
|
393
|
+
allVisibleLowestLODLoaded(): boolean;
|
|
394
|
+
updateAndCollectChunkChanges(lodFactor: number, viewBounds2D: Box2): Chunk[];
|
|
395
|
+
get lodCount(): number;
|
|
396
|
+
get dimensions(): SourceDimensionMap;
|
|
397
|
+
get currentLOD(): number;
|
|
398
|
+
setImageSourcePolicy(newPolicy: ImageSourcePolicy, key: symbol): void;
|
|
399
|
+
loadChunkData(chunk: Chunk, signal: AbortSignal): Promise<void>;
|
|
400
|
+
private setLOD;
|
|
401
|
+
private updateAndCollectChunkChangesForCurrentLod;
|
|
402
|
+
private disposeStaleTimeChunks;
|
|
403
|
+
private updateChunksAtTimeIndex;
|
|
404
|
+
private markTimeChunksForPrefetch;
|
|
405
|
+
private isChunkChannelInSlice;
|
|
406
|
+
private shouldDispose;
|
|
407
|
+
private disposeChunk;
|
|
408
|
+
private computePriority;
|
|
409
|
+
private validateXYScaleRatios;
|
|
410
|
+
private getAndValidateTimeDimension;
|
|
411
|
+
private getAndValidateChannelDimension;
|
|
412
|
+
private isChunkWithinBounds;
|
|
413
|
+
private getZBounds;
|
|
414
|
+
private viewBounds2DChanged;
|
|
415
|
+
private zBoundsChanged;
|
|
416
|
+
private getPaddedBounds;
|
|
417
|
+
private squareDistance2D;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
declare class ChunkManager {
|
|
421
|
+
private readonly sources_;
|
|
422
|
+
private readonly pendingSources_;
|
|
423
|
+
private readonly queue_;
|
|
424
|
+
addSource(source: ChunkSource, sliceCoords: SliceCoordinates, policy: ImageSourcePolicy): Promise<ChunkManagerSource>;
|
|
425
|
+
update(camera: OrthographicCamera, bufferWidth: number): void;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
declare const eventTypes: readonly ["pointerdown", "pointermove", "pointerup", "pointercancel", "wheel"];
|
|
429
|
+
type EventType = (typeof eventTypes)[number];
|
|
430
|
+
declare class EventContext {
|
|
431
|
+
private propagationStopped_;
|
|
432
|
+
readonly type: EventType;
|
|
433
|
+
readonly event?: Event;
|
|
434
|
+
worldPos?: vec3;
|
|
435
|
+
clipPos?: vec3;
|
|
436
|
+
constructor(type: EventType, event?: Event);
|
|
437
|
+
get propagationStopped(): boolean;
|
|
438
|
+
stopPropagation(): void;
|
|
439
|
+
}
|
|
440
|
+
type Listener = (event: EventContext) => void;
|
|
441
|
+
declare class EventDispatcher {
|
|
442
|
+
private readonly listeners_;
|
|
443
|
+
private readonly element_;
|
|
444
|
+
private isConnected_;
|
|
445
|
+
constructor(element: HTMLElement);
|
|
446
|
+
addEventListener(listener: Listener): void;
|
|
447
|
+
connect(): void;
|
|
448
|
+
disconnect(): void;
|
|
449
|
+
private readonly handleEvent;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
type LayerState = "initialized" | "loading" | "ready";
|
|
453
|
+
type blendMode = "normal" | "additive" | "subtractive" | "multiply";
|
|
454
|
+
type StateChangeCallback = (newState: LayerState, prevState?: LayerState) => void;
|
|
455
|
+
interface LayerOptions {
|
|
456
|
+
transparent?: boolean;
|
|
457
|
+
opacity?: number;
|
|
458
|
+
blendMode?: blendMode;
|
|
459
|
+
}
|
|
460
|
+
declare abstract class Layer {
|
|
461
|
+
abstract readonly type: string;
|
|
462
|
+
private objects_;
|
|
463
|
+
private state_;
|
|
464
|
+
private readonly callbacks_;
|
|
465
|
+
transparent: boolean;
|
|
466
|
+
private opacity_;
|
|
467
|
+
blendMode: blendMode;
|
|
468
|
+
constructor({ transparent, opacity, blendMode, }?: LayerOptions);
|
|
469
|
+
get opacity(): number;
|
|
470
|
+
set opacity(value: number);
|
|
471
|
+
abstract update(): void;
|
|
472
|
+
onEvent(_: EventContext): void;
|
|
473
|
+
onAttached(_context: IdetikContext): Promise<void>;
|
|
474
|
+
onDetached(): void;
|
|
475
|
+
get objects(): RenderableObject[];
|
|
476
|
+
get state(): LayerState;
|
|
477
|
+
addStateChangeCallback(callback: StateChangeCallback): void;
|
|
478
|
+
removeStateChangeCallback(callback: StateChangeCallback): void;
|
|
479
|
+
protected setState(newState: LayerState): void;
|
|
480
|
+
protected addObject(object: RenderableObject): void;
|
|
481
|
+
protected removeObject(object: RenderableObject): void;
|
|
482
|
+
protected clearObjects(): void;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
declare class LayerManager {
|
|
486
|
+
private layers_;
|
|
487
|
+
private callbacks_;
|
|
488
|
+
private readonly context_;
|
|
489
|
+
constructor(context: IdetikContext);
|
|
490
|
+
partitionLayers(): {
|
|
491
|
+
opaque: Layer[];
|
|
492
|
+
transparent: Layer[];
|
|
493
|
+
};
|
|
494
|
+
add(layer: Layer): void;
|
|
495
|
+
remove(layer: Layer): void;
|
|
496
|
+
removeByIndex(index: number): void;
|
|
497
|
+
removeAll(): void;
|
|
498
|
+
get layers(): readonly Layer[];
|
|
499
|
+
private notifyLayersChanged;
|
|
500
|
+
addLayersChangeCallback(callback: () => void): () => void;
|
|
501
|
+
removeLayersChangeCallback(callback: () => void): void;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
interface CameraControls {
|
|
505
|
+
onEvent(event: EventContext): void;
|
|
506
|
+
}
|
|
507
|
+
declare class PanZoomControls implements CameraControls {
|
|
508
|
+
private readonly camera_;
|
|
509
|
+
private dragActive_;
|
|
510
|
+
private dragStart_;
|
|
511
|
+
constructor(camera: OrthographicCamera);
|
|
512
|
+
onEvent(event: EventContext): void;
|
|
513
|
+
private onWheel;
|
|
514
|
+
private onPointerDown;
|
|
515
|
+
private onPointerMove;
|
|
516
|
+
private onPointerEnd;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
interface ViewportConfig {
|
|
520
|
+
id?: string;
|
|
521
|
+
element?: HTMLElement;
|
|
522
|
+
camera: Camera;
|
|
523
|
+
layers?: Layer[];
|
|
524
|
+
cameraControls?: CameraControls;
|
|
525
|
+
}
|
|
526
|
+
interface ViewportProps extends ViewportConfig {
|
|
527
|
+
id: string;
|
|
528
|
+
element: HTMLElement;
|
|
529
|
+
layerManager: LayerManager;
|
|
530
|
+
}
|
|
531
|
+
declare class Viewport {
|
|
532
|
+
readonly id: string;
|
|
533
|
+
readonly element: HTMLElement;
|
|
534
|
+
readonly camera: Camera;
|
|
535
|
+
readonly layerManager: LayerManager;
|
|
536
|
+
readonly events: EventDispatcher;
|
|
537
|
+
cameraControls?: CameraControls;
|
|
538
|
+
constructor(props: ViewportProps);
|
|
539
|
+
updateSize(): void;
|
|
540
|
+
getBoxRelativeTo(canvas: HTMLCanvasElement): Box2;
|
|
541
|
+
clientToClip(position: vec2, depth?: number): vec3;
|
|
542
|
+
clientToWorld(position: vec2, depth?: number): vec3;
|
|
543
|
+
private getBox;
|
|
544
|
+
private updateAspectRatio;
|
|
545
|
+
}
|
|
546
|
+
declare function parseViewportConfigs(viewportConfigs: ViewportConfig[], canvas: HTMLCanvasElement, context: IdetikContext): Viewport[];
|
|
547
|
+
|
|
548
|
+
type Overlay = {
|
|
549
|
+
update(idetik: Idetik, timestamp?: DOMHighResTimeStamp): void;
|
|
550
|
+
};
|
|
551
|
+
type IdetikParams = {
|
|
552
|
+
canvas: HTMLCanvasElement;
|
|
553
|
+
viewports: [ViewportConfig, ...ViewportConfig[]];
|
|
554
|
+
overlays?: Overlay[];
|
|
555
|
+
showStats?: boolean;
|
|
556
|
+
};
|
|
557
|
+
type IdetikContext = {
|
|
558
|
+
chunkManager: ChunkManager;
|
|
559
|
+
};
|
|
560
|
+
declare class Idetik {
|
|
561
|
+
private lastAnimationId_?;
|
|
562
|
+
private readonly chunkManager_;
|
|
563
|
+
private readonly context_;
|
|
564
|
+
private readonly renderer_;
|
|
565
|
+
private readonly viewports_;
|
|
566
|
+
readonly canvas: HTMLCanvasElement;
|
|
567
|
+
readonly overlays: Overlay[];
|
|
568
|
+
private readonly stats_?;
|
|
569
|
+
private readonly sizeObserver_;
|
|
570
|
+
/**
|
|
571
|
+
* Creates a new Idetik visualization runtime instance.
|
|
572
|
+
*
|
|
573
|
+
* @param params - Configuration parameters for the Idetik instance
|
|
574
|
+
* @param params.canvas - HTMLCanvasElement to render to
|
|
575
|
+
* @param params.viewports - Array of viewport configurations. (At least one required.)
|
|
576
|
+
* Each viewport renders with its own camera, layers, and controls.
|
|
577
|
+
* The `element` property is optional and defaults to the canvas if not provided.
|
|
578
|
+
* Elements must be unique across viewports.
|
|
579
|
+
* The `id` property is optional but useful for referencing specific viewports later.
|
|
580
|
+
* @param params.overlays - Optional array of overlay objects that update each frame (e.g., for HUD elements)
|
|
581
|
+
* @param params.showStats - Optional flag to display performance statistics
|
|
582
|
+
*
|
|
583
|
+
* @example
|
|
584
|
+
* // Single viewport (element defaults to canvas)
|
|
585
|
+
* const camera = new OrthographicCamera(0, 1024, 0, 1024);
|
|
586
|
+
* const idetik = new Idetik({
|
|
587
|
+
* canvas: document.querySelector('canvas')!,
|
|
588
|
+
* viewports: [{
|
|
589
|
+
* camera: camera,
|
|
590
|
+
* layers: [imageLayer],
|
|
591
|
+
* cameraControls: new PanZoomControls(camera)
|
|
592
|
+
* }]
|
|
593
|
+
* });
|
|
594
|
+
*
|
|
595
|
+
* @example
|
|
596
|
+
* // Multiple viewports - one defaults to canvas, others use separate elements
|
|
597
|
+
* const idetik = new Idetik({
|
|
598
|
+
* canvas: document.querySelector('canvas')!,
|
|
599
|
+
* viewports: [
|
|
600
|
+
* {
|
|
601
|
+
* id: 'main',
|
|
602
|
+
* // element omitted - defaults to canvas
|
|
603
|
+
* camera: camera1,
|
|
604
|
+
* layers: [layer1]
|
|
605
|
+
* },
|
|
606
|
+
* {
|
|
607
|
+
* id: 'minimap',
|
|
608
|
+
* element: document.querySelector('#minimap')!,
|
|
609
|
+
* camera: camera2,
|
|
610
|
+
* layers: [layer2]
|
|
611
|
+
* }
|
|
612
|
+
* ]
|
|
613
|
+
* });
|
|
614
|
+
*
|
|
615
|
+
* @throws {Error} If viewports array is empty or not provided
|
|
616
|
+
* @throws {Error} If viewports have duplicate IDs or shared elements
|
|
617
|
+
*/
|
|
618
|
+
constructor(params: IdetikParams);
|
|
619
|
+
get renderedObjects(): number;
|
|
620
|
+
get width(): number;
|
|
621
|
+
get height(): number;
|
|
622
|
+
get textureInfo(): {
|
|
623
|
+
textures: number;
|
|
624
|
+
totalBytes: number;
|
|
625
|
+
};
|
|
626
|
+
get viewports(): readonly Viewport[];
|
|
627
|
+
getViewport(id: string): Viewport | undefined;
|
|
628
|
+
start(): this;
|
|
629
|
+
private animate;
|
|
630
|
+
stop(): void;
|
|
631
|
+
private updateSize;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
declare abstract class Renderer {
|
|
635
|
+
private readonly canvas_;
|
|
636
|
+
private width_;
|
|
637
|
+
private height_;
|
|
638
|
+
private backgroundColor_;
|
|
639
|
+
protected renderedObjects_: number;
|
|
640
|
+
protected abstract resize(width: number, height: number): void;
|
|
641
|
+
protected abstract renderObject(layer: Layer, objectIndex: number, camera: Camera): void;
|
|
642
|
+
protected abstract clear(): void;
|
|
643
|
+
constructor(canvas: HTMLCanvasElement);
|
|
644
|
+
abstract render(viewport: Viewport): void;
|
|
645
|
+
updateSize(): void;
|
|
646
|
+
private updateRendererSize;
|
|
647
|
+
protected get canvas(): HTMLCanvasElement;
|
|
648
|
+
get width(): number;
|
|
649
|
+
get height(): number;
|
|
650
|
+
get backgroundColor(): Color;
|
|
651
|
+
get renderedObjects(): number;
|
|
652
|
+
set backgroundColor(color: ColorLike);
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
declare class WebGLRenderer extends Renderer {
|
|
656
|
+
private readonly gl_;
|
|
657
|
+
private readonly programs_;
|
|
658
|
+
private readonly bindings_;
|
|
659
|
+
private readonly textures_;
|
|
660
|
+
private readonly state_;
|
|
661
|
+
private renderedObjectsPerFrame_;
|
|
662
|
+
constructor(canvas: HTMLCanvasElement);
|
|
663
|
+
render(viewport: Viewport): void;
|
|
664
|
+
get textureInfo(): {
|
|
665
|
+
textures: number;
|
|
666
|
+
totalBytes: number;
|
|
667
|
+
};
|
|
668
|
+
private renderLayer;
|
|
669
|
+
protected renderObject(layer: Layer, objectIndex: number, camera: Camera): void;
|
|
670
|
+
private drawGeometry;
|
|
671
|
+
private glGetPrimitive;
|
|
672
|
+
protected resize(width: number, height: number): void;
|
|
673
|
+
protected clear(): void;
|
|
674
|
+
private get gl();
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
type PerspectiveCameraOptions = {
|
|
678
|
+
fov?: number;
|
|
679
|
+
aspectRatio?: number;
|
|
680
|
+
near?: number;
|
|
681
|
+
far?: number;
|
|
682
|
+
position?: vec3;
|
|
683
|
+
};
|
|
684
|
+
declare class PerspectiveCamera extends Camera {
|
|
685
|
+
private fov_;
|
|
686
|
+
private aspectRatio_;
|
|
687
|
+
constructor(options?: PerspectiveCameraOptions);
|
|
688
|
+
setAspectRatio(aspectRatio: number): void;
|
|
689
|
+
get type(): CameraType;
|
|
690
|
+
get fov(): number;
|
|
691
|
+
zoom(factor: number): void;
|
|
692
|
+
protected updateProjectionMatrix(): void;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
declare class AxesLayer extends Layer {
|
|
696
|
+
readonly type = "AxesLayer";
|
|
697
|
+
constructor(params: {
|
|
698
|
+
length: number;
|
|
699
|
+
width: number;
|
|
700
|
+
});
|
|
701
|
+
update(): void;
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
type LineParameters = {
|
|
705
|
+
path: vec3[];
|
|
706
|
+
color: vec3;
|
|
707
|
+
width: number;
|
|
708
|
+
};
|
|
709
|
+
declare class ProjectedLineLayer extends Layer {
|
|
710
|
+
readonly type = "ProjectedLineLayer";
|
|
711
|
+
private paths_;
|
|
712
|
+
constructor(lines?: LineParameters[]);
|
|
713
|
+
private addLine;
|
|
714
|
+
update(): void;
|
|
715
|
+
get extent(): BoundingBox3D$1;
|
|
716
|
+
}
|
|
717
|
+
type BoundingBox3D$1 = {
|
|
718
|
+
xMin: number;
|
|
719
|
+
xMax: number;
|
|
720
|
+
yMin: number;
|
|
721
|
+
yMax: number;
|
|
722
|
+
zMin: number;
|
|
723
|
+
zMax: number;
|
|
724
|
+
};
|
|
725
|
+
|
|
726
|
+
type TrackParameters = {
|
|
727
|
+
path: vec3[];
|
|
728
|
+
interpolation?: {
|
|
729
|
+
pointsPerSegment: number;
|
|
730
|
+
tangentFactor?: number;
|
|
731
|
+
};
|
|
732
|
+
time?: number[];
|
|
733
|
+
color: vec3;
|
|
734
|
+
width: number;
|
|
735
|
+
};
|
|
736
|
+
declare class TracksLayer extends Layer {
|
|
737
|
+
readonly type = "TracksLayer";
|
|
738
|
+
private tracks_;
|
|
739
|
+
constructor(tracks?: TrackParameters[]);
|
|
740
|
+
private addLine;
|
|
741
|
+
setTimeIndex(index: number): void;
|
|
742
|
+
update(): void;
|
|
743
|
+
get extent(): BoundingBox3D;
|
|
744
|
+
}
|
|
745
|
+
type BoundingBox3D = {
|
|
746
|
+
xMin: number;
|
|
747
|
+
xMax: number;
|
|
748
|
+
yMin: number;
|
|
749
|
+
yMax: number;
|
|
750
|
+
zMin: number;
|
|
751
|
+
zMax: number;
|
|
752
|
+
};
|
|
753
|
+
|
|
754
|
+
type ChannelProps = {
|
|
755
|
+
visible?: boolean;
|
|
756
|
+
color?: ColorLike;
|
|
757
|
+
contrastLimits?: [number, number];
|
|
758
|
+
};
|
|
759
|
+
/** Layer that exposes channel controls. */
|
|
760
|
+
interface ChannelsEnabled {
|
|
761
|
+
channelProps: ChannelProps[] | undefined;
|
|
762
|
+
setChannelProps(channelProps: ChannelProps[]): void;
|
|
763
|
+
resetChannelProps(): void;
|
|
764
|
+
addChannelChangeCallback(callback: () => void): void;
|
|
765
|
+
removeChannelChangeCallback(callback: () => void): void;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
interface PointPickingResult {
|
|
769
|
+
world: vec3;
|
|
770
|
+
value: number;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
type ChunkedImageLayerProps = LayerOptions & {
|
|
774
|
+
source: ChunkSource;
|
|
775
|
+
sliceCoords: SliceCoordinates;
|
|
776
|
+
policy: ImageSourcePolicy;
|
|
777
|
+
channelProps?: ChannelProps[];
|
|
778
|
+
onPickValue?: (info: PointPickingResult) => void;
|
|
779
|
+
};
|
|
780
|
+
declare class ChunkedImageLayer extends Layer implements ChannelsEnabled {
|
|
781
|
+
readonly type = "ChunkedImageLayer";
|
|
782
|
+
private readonly source_;
|
|
783
|
+
private readonly sliceCoords_;
|
|
784
|
+
private readonly onPickValue_?;
|
|
785
|
+
private readonly visibleChunks_;
|
|
786
|
+
private readonly pool_;
|
|
787
|
+
private readonly initialChannelProps_?;
|
|
788
|
+
private readonly channelChangeCallbacks_;
|
|
789
|
+
private policy_;
|
|
790
|
+
private channelProps_?;
|
|
791
|
+
private chunkManagerSource_?;
|
|
792
|
+
private pointerDownPos_;
|
|
793
|
+
private zPrevPointWorld_?;
|
|
794
|
+
private debugMode_;
|
|
795
|
+
private static readonly STALE_PRESENTATION_MS_;
|
|
796
|
+
private lastPresentationTimeStamp_?;
|
|
797
|
+
private lastPresentationTimeCoord_?;
|
|
798
|
+
private readonly wireframeColors_;
|
|
799
|
+
constructor({ source, sliceCoords, policy, channelProps, onPickValue, ...layerOptions }: ChunkedImageLayerProps);
|
|
800
|
+
onAttached(context: IdetikContext): Promise<void>;
|
|
801
|
+
onDetached(): void;
|
|
802
|
+
update(): void;
|
|
803
|
+
private updateChunks;
|
|
804
|
+
get lastPresentationTimeCoord(): number | undefined;
|
|
805
|
+
private isPresentationStale;
|
|
806
|
+
private resliceIfZChanged;
|
|
807
|
+
onEvent(event: EventContext): void;
|
|
808
|
+
get chunkManagerSource(): ChunkManagerSource | undefined;
|
|
809
|
+
get source(): ChunkSource;
|
|
810
|
+
get imageSourcePolicy(): Readonly<ImageSourcePolicy>;
|
|
811
|
+
set imageSourcePolicy(newPolicy: ImageSourcePolicy);
|
|
812
|
+
private slicePlane;
|
|
813
|
+
private getImageForChunk;
|
|
814
|
+
private createImage;
|
|
815
|
+
private getDataForImage;
|
|
816
|
+
private updateImageChunk;
|
|
817
|
+
getValueAtWorld(world: vec3): number | null;
|
|
818
|
+
private getValueFromChunk;
|
|
819
|
+
get debugMode(): boolean;
|
|
820
|
+
set debugMode(debug: boolean);
|
|
821
|
+
get channelProps(): ChannelProps[] | undefined;
|
|
822
|
+
setChannelProps(channelProps: ChannelProps[]): void;
|
|
823
|
+
resetChannelProps(): void;
|
|
824
|
+
addChannelChangeCallback(callback: () => void): void;
|
|
825
|
+
removeChannelChangeCallback(callback: () => void): void;
|
|
826
|
+
private releaseAndRemoveChunks;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
declare class VolumeLayer extends Layer {
|
|
830
|
+
readonly type = "VolumeLayer";
|
|
831
|
+
constructor();
|
|
832
|
+
update(): void;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
type ImageLayerProps = LayerOptions & {
|
|
836
|
+
source: ChunkSource;
|
|
837
|
+
region: Region;
|
|
838
|
+
channelProps?: ChannelProps[];
|
|
839
|
+
onPickValue?: (info: PointPickingResult) => void;
|
|
840
|
+
lod?: number;
|
|
841
|
+
};
|
|
842
|
+
declare class ImageLayer extends Layer implements ChannelsEnabled {
|
|
843
|
+
readonly type = "ImageLayer";
|
|
844
|
+
private readonly source_;
|
|
845
|
+
private readonly region_;
|
|
846
|
+
private readonly lod_?;
|
|
847
|
+
private readonly onPickValue_?;
|
|
848
|
+
private readonly initialChannelProps_?;
|
|
849
|
+
private readonly channelChangeCallbacks_;
|
|
850
|
+
private channelProps_?;
|
|
851
|
+
private image_?;
|
|
852
|
+
private chunk_?;
|
|
853
|
+
private extent_?;
|
|
854
|
+
private pointerDownPos_;
|
|
855
|
+
constructor({ source, region, channelProps, onPickValue, lod, ...layerOptions }: ImageLayerProps);
|
|
856
|
+
update(): void;
|
|
857
|
+
onEvent(event: EventContext): void;
|
|
858
|
+
get channelProps(): ChannelProps[] | undefined;
|
|
859
|
+
setChannelProps(channelProps: ChannelProps[]): void;
|
|
860
|
+
resetChannelProps(): void;
|
|
861
|
+
addChannelChangeCallback(callback: () => void): void;
|
|
862
|
+
removeChannelChangeCallback(callback: () => void): void;
|
|
863
|
+
private load;
|
|
864
|
+
get extent(): {
|
|
865
|
+
x: number;
|
|
866
|
+
y: number;
|
|
867
|
+
} | undefined;
|
|
868
|
+
private createImage;
|
|
869
|
+
getValueAtWorld(world: vec3): number | null;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
type LabelColorMapProps = {
|
|
873
|
+
lookupTable?: ReadonlyMap<number, ColorLike>;
|
|
874
|
+
cycle?: ColorLike[];
|
|
875
|
+
};
|
|
876
|
+
declare class LabelColorMap {
|
|
877
|
+
readonly lookupTable: ReadonlyMap<number, Color>;
|
|
878
|
+
readonly cycle: ReadonlyArray<Color>;
|
|
879
|
+
constructor(props?: LabelColorMapProps);
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
type LabelImageLayerProps = LayerOptions & {
|
|
883
|
+
source: ChunkSource;
|
|
884
|
+
region: Region;
|
|
885
|
+
colorMap?: LabelColorMapProps;
|
|
886
|
+
onPickValue?: (info: PointPickingResult) => void;
|
|
887
|
+
lod?: number;
|
|
888
|
+
outlineSelected?: boolean;
|
|
889
|
+
};
|
|
890
|
+
declare class LabelImageLayer extends Layer {
|
|
891
|
+
readonly type = "LabelImageLayer";
|
|
892
|
+
private readonly source_;
|
|
893
|
+
private readonly region_;
|
|
894
|
+
private readonly lod_?;
|
|
895
|
+
private colorMap_;
|
|
896
|
+
private readonly onPickValue_?;
|
|
897
|
+
private readonly outlineSelected_;
|
|
898
|
+
private image_?;
|
|
899
|
+
private imageChunk_?;
|
|
900
|
+
private pointerDownPos_;
|
|
901
|
+
private selectedValue_;
|
|
902
|
+
constructor({ source, region, colorMap, onPickValue, lod, outlineSelected, ...layerOptions }: LabelImageLayerProps);
|
|
903
|
+
update(): void;
|
|
904
|
+
get colorMap(): LabelColorMap;
|
|
905
|
+
setColorMap(colorMap: LabelColorMapProps): void;
|
|
906
|
+
setSelectedValue(value: number | null): void;
|
|
907
|
+
onEvent(event: EventContext): void;
|
|
908
|
+
private load;
|
|
909
|
+
private createImage;
|
|
910
|
+
getValueAtWorld(world: vec3): number | null;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
type SetIndexResult = {
|
|
914
|
+
success: boolean;
|
|
915
|
+
reason?: "duplicate" | "canceled";
|
|
916
|
+
chunk?: Chunk;
|
|
917
|
+
};
|
|
918
|
+
|
|
919
|
+
type ImageSeriesLayerProps = LayerOptions & {
|
|
920
|
+
source: ChunkSource;
|
|
921
|
+
region: Region;
|
|
922
|
+
seriesDimensionName: string;
|
|
923
|
+
channelProps?: ChannelProps[];
|
|
924
|
+
lod?: number;
|
|
925
|
+
};
|
|
926
|
+
declare class ImageSeriesLayer extends Layer implements ChannelsEnabled {
|
|
927
|
+
readonly type = "ImageSeriesLayer";
|
|
928
|
+
private readonly seriesLoader_;
|
|
929
|
+
private readonly initialChannelProps_?;
|
|
930
|
+
private readonly channelChangeCallbacks_;
|
|
931
|
+
private channelProps_?;
|
|
932
|
+
private texture_;
|
|
933
|
+
private image_?;
|
|
934
|
+
private extent_?;
|
|
935
|
+
constructor({ source, region, seriesDimensionName, channelProps, lod, ...layerOptions }: ImageSeriesLayerProps);
|
|
936
|
+
update(): void;
|
|
937
|
+
get channelProps(): ChannelProps[] | undefined;
|
|
938
|
+
setChannelProps(channelProps: ChannelProps[]): void;
|
|
939
|
+
resetChannelProps(): void;
|
|
940
|
+
addChannelChangeCallback(callback: () => void): void;
|
|
941
|
+
removeChannelChangeCallback(callback: () => void): void;
|
|
942
|
+
setPosition(position: number): Promise<SetIndexResult>;
|
|
943
|
+
setIndex(index: number): Promise<SetIndexResult>;
|
|
944
|
+
close(): void;
|
|
945
|
+
preloadSeries(): Promise<undefined>;
|
|
946
|
+
get extent(): {
|
|
947
|
+
x: number;
|
|
948
|
+
y: number;
|
|
949
|
+
} | undefined;
|
|
950
|
+
private processIndexResult;
|
|
951
|
+
private setData;
|
|
952
|
+
private createImage;
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
/**The zarr.json attributes key*/
|
|
956
|
+
declare const Image$1: z.ZodObject<{
|
|
957
|
+
/**The versioned OME-Zarr Metadata namespace*/
|
|
958
|
+
ome: z.ZodObject<{
|
|
959
|
+
/**The multiscale datasets for this image*/
|
|
960
|
+
multiscales: z.ZodArray<z.ZodObject<{
|
|
961
|
+
name: z.ZodOptional<z.ZodString>;
|
|
962
|
+
datasets: z.ZodArray<z.ZodObject<{
|
|
963
|
+
path: z.ZodString;
|
|
964
|
+
coordinateTransformations: z.ZodArray<z.ZodEffects<z.ZodAny, any, any>, "many">;
|
|
965
|
+
}, "strip", z.ZodTypeAny, {
|
|
966
|
+
path: string;
|
|
967
|
+
coordinateTransformations: any[];
|
|
968
|
+
}, {
|
|
969
|
+
path: string;
|
|
970
|
+
coordinateTransformations: any[];
|
|
971
|
+
}>, "many">;
|
|
972
|
+
axes: z.ZodArray<z.ZodEffects<z.ZodAny, any, any>, "many">;
|
|
973
|
+
coordinateTransformations: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodAny, any, any>, "many">>;
|
|
974
|
+
}, "strip", z.ZodTypeAny, {
|
|
975
|
+
datasets: {
|
|
976
|
+
path: string;
|
|
977
|
+
coordinateTransformations: any[];
|
|
978
|
+
}[];
|
|
979
|
+
axes: any[];
|
|
980
|
+
name?: string | undefined;
|
|
981
|
+
coordinateTransformations?: any[] | undefined;
|
|
982
|
+
}, {
|
|
983
|
+
datasets: {
|
|
984
|
+
path: string;
|
|
985
|
+
coordinateTransformations: any[];
|
|
986
|
+
}[];
|
|
987
|
+
axes: any[];
|
|
988
|
+
name?: string | undefined;
|
|
989
|
+
coordinateTransformations?: any[] | undefined;
|
|
990
|
+
}>, "many">;
|
|
991
|
+
omero: z.ZodOptional<z.ZodObject<{
|
|
992
|
+
channels: z.ZodArray<z.ZodObject<{
|
|
993
|
+
window: z.ZodOptional<z.ZodObject<{
|
|
994
|
+
end: z.ZodNumber;
|
|
995
|
+
max: z.ZodNumber;
|
|
996
|
+
min: z.ZodNumber;
|
|
997
|
+
start: z.ZodNumber;
|
|
998
|
+
}, "strip", z.ZodTypeAny, {
|
|
999
|
+
min: number;
|
|
1000
|
+
max: number;
|
|
1001
|
+
end: number;
|
|
1002
|
+
start: number;
|
|
1003
|
+
}, {
|
|
1004
|
+
min: number;
|
|
1005
|
+
max: number;
|
|
1006
|
+
end: number;
|
|
1007
|
+
start: number;
|
|
1008
|
+
}>>;
|
|
1009
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1010
|
+
family: z.ZodOptional<z.ZodString>;
|
|
1011
|
+
color: z.ZodOptional<z.ZodString>;
|
|
1012
|
+
active: z.ZodOptional<z.ZodBoolean>;
|
|
1013
|
+
}, "strip", z.ZodTypeAny, {
|
|
1014
|
+
color?: string | undefined;
|
|
1015
|
+
window?: {
|
|
1016
|
+
min: number;
|
|
1017
|
+
max: number;
|
|
1018
|
+
end: number;
|
|
1019
|
+
start: number;
|
|
1020
|
+
} | undefined;
|
|
1021
|
+
label?: string | undefined;
|
|
1022
|
+
family?: string | undefined;
|
|
1023
|
+
active?: boolean | undefined;
|
|
1024
|
+
}, {
|
|
1025
|
+
color?: string | undefined;
|
|
1026
|
+
window?: {
|
|
1027
|
+
min: number;
|
|
1028
|
+
max: number;
|
|
1029
|
+
end: number;
|
|
1030
|
+
start: number;
|
|
1031
|
+
} | undefined;
|
|
1032
|
+
label?: string | undefined;
|
|
1033
|
+
family?: string | undefined;
|
|
1034
|
+
active?: boolean | undefined;
|
|
1035
|
+
}>, "many">;
|
|
1036
|
+
rdefs: z.ZodOptional<z.ZodObject<{
|
|
1037
|
+
defaultT: z.ZodOptional<z.ZodNumber>;
|
|
1038
|
+
defaultZ: z.ZodOptional<z.ZodNumber>;
|
|
1039
|
+
color: z.ZodOptional<z.ZodEnum<["color", "greyscale"]>>;
|
|
1040
|
+
projection: z.ZodOptional<z.ZodString>;
|
|
1041
|
+
}, "strip", z.ZodTypeAny, {
|
|
1042
|
+
color?: "color" | "greyscale" | undefined;
|
|
1043
|
+
defaultT?: number | undefined;
|
|
1044
|
+
defaultZ?: number | undefined;
|
|
1045
|
+
projection?: string | undefined;
|
|
1046
|
+
}, {
|
|
1047
|
+
color?: "color" | "greyscale" | undefined;
|
|
1048
|
+
defaultT?: number | undefined;
|
|
1049
|
+
defaultZ?: number | undefined;
|
|
1050
|
+
projection?: string | undefined;
|
|
1051
|
+
}>>;
|
|
1052
|
+
}, "strip", z.ZodTypeAny, {
|
|
1053
|
+
channels: {
|
|
1054
|
+
color?: string | undefined;
|
|
1055
|
+
window?: {
|
|
1056
|
+
min: number;
|
|
1057
|
+
max: number;
|
|
1058
|
+
end: number;
|
|
1059
|
+
start: number;
|
|
1060
|
+
} | undefined;
|
|
1061
|
+
label?: string | undefined;
|
|
1062
|
+
family?: string | undefined;
|
|
1063
|
+
active?: boolean | undefined;
|
|
1064
|
+
}[];
|
|
1065
|
+
rdefs?: {
|
|
1066
|
+
color?: "color" | "greyscale" | undefined;
|
|
1067
|
+
defaultT?: number | undefined;
|
|
1068
|
+
defaultZ?: number | undefined;
|
|
1069
|
+
projection?: string | undefined;
|
|
1070
|
+
} | undefined;
|
|
1071
|
+
}, {
|
|
1072
|
+
channels: {
|
|
1073
|
+
color?: string | undefined;
|
|
1074
|
+
window?: {
|
|
1075
|
+
min: number;
|
|
1076
|
+
max: number;
|
|
1077
|
+
end: number;
|
|
1078
|
+
start: number;
|
|
1079
|
+
} | undefined;
|
|
1080
|
+
label?: string | undefined;
|
|
1081
|
+
family?: string | undefined;
|
|
1082
|
+
active?: boolean | undefined;
|
|
1083
|
+
}[];
|
|
1084
|
+
rdefs?: {
|
|
1085
|
+
color?: "color" | "greyscale" | undefined;
|
|
1086
|
+
defaultT?: number | undefined;
|
|
1087
|
+
defaultZ?: number | undefined;
|
|
1088
|
+
projection?: string | undefined;
|
|
1089
|
+
} | undefined;
|
|
1090
|
+
}>>;
|
|
1091
|
+
/**The version of the OME-Zarr Metadata*/
|
|
1092
|
+
version: z.ZodLiteral<"0.5">;
|
|
1093
|
+
}, "strip", z.ZodTypeAny, {
|
|
1094
|
+
multiscales: {
|
|
1095
|
+
datasets: {
|
|
1096
|
+
path: string;
|
|
1097
|
+
coordinateTransformations: any[];
|
|
1098
|
+
}[];
|
|
1099
|
+
axes: any[];
|
|
1100
|
+
name?: string | undefined;
|
|
1101
|
+
coordinateTransformations?: any[] | undefined;
|
|
1102
|
+
}[];
|
|
1103
|
+
version: "0.5";
|
|
1104
|
+
omero?: {
|
|
1105
|
+
channels: {
|
|
1106
|
+
color?: string | undefined;
|
|
1107
|
+
window?: {
|
|
1108
|
+
min: number;
|
|
1109
|
+
max: number;
|
|
1110
|
+
end: number;
|
|
1111
|
+
start: number;
|
|
1112
|
+
} | undefined;
|
|
1113
|
+
label?: string | undefined;
|
|
1114
|
+
family?: string | undefined;
|
|
1115
|
+
active?: boolean | undefined;
|
|
1116
|
+
}[];
|
|
1117
|
+
rdefs?: {
|
|
1118
|
+
color?: "color" | "greyscale" | undefined;
|
|
1119
|
+
defaultT?: number | undefined;
|
|
1120
|
+
defaultZ?: number | undefined;
|
|
1121
|
+
projection?: string | undefined;
|
|
1122
|
+
} | undefined;
|
|
1123
|
+
} | undefined;
|
|
1124
|
+
}, {
|
|
1125
|
+
multiscales: {
|
|
1126
|
+
datasets: {
|
|
1127
|
+
path: string;
|
|
1128
|
+
coordinateTransformations: any[];
|
|
1129
|
+
}[];
|
|
1130
|
+
axes: any[];
|
|
1131
|
+
name?: string | undefined;
|
|
1132
|
+
coordinateTransformations?: any[] | undefined;
|
|
1133
|
+
}[];
|
|
1134
|
+
version: "0.5";
|
|
1135
|
+
omero?: {
|
|
1136
|
+
channels: {
|
|
1137
|
+
color?: string | undefined;
|
|
1138
|
+
window?: {
|
|
1139
|
+
min: number;
|
|
1140
|
+
max: number;
|
|
1141
|
+
end: number;
|
|
1142
|
+
start: number;
|
|
1143
|
+
} | undefined;
|
|
1144
|
+
label?: string | undefined;
|
|
1145
|
+
family?: string | undefined;
|
|
1146
|
+
active?: boolean | undefined;
|
|
1147
|
+
}[];
|
|
1148
|
+
rdefs?: {
|
|
1149
|
+
color?: "color" | "greyscale" | undefined;
|
|
1150
|
+
defaultT?: number | undefined;
|
|
1151
|
+
defaultZ?: number | undefined;
|
|
1152
|
+
projection?: string | undefined;
|
|
1153
|
+
} | undefined;
|
|
1154
|
+
} | undefined;
|
|
1155
|
+
}>;
|
|
1156
|
+
}, "strip", z.ZodTypeAny, {
|
|
1157
|
+
ome: {
|
|
1158
|
+
multiscales: {
|
|
1159
|
+
datasets: {
|
|
1160
|
+
path: string;
|
|
1161
|
+
coordinateTransformations: any[];
|
|
1162
|
+
}[];
|
|
1163
|
+
axes: any[];
|
|
1164
|
+
name?: string | undefined;
|
|
1165
|
+
coordinateTransformations?: any[] | undefined;
|
|
1166
|
+
}[];
|
|
1167
|
+
version: "0.5";
|
|
1168
|
+
omero?: {
|
|
1169
|
+
channels: {
|
|
1170
|
+
color?: string | undefined;
|
|
1171
|
+
window?: {
|
|
1172
|
+
min: number;
|
|
1173
|
+
max: number;
|
|
1174
|
+
end: number;
|
|
1175
|
+
start: number;
|
|
1176
|
+
} | undefined;
|
|
1177
|
+
label?: string | undefined;
|
|
1178
|
+
family?: string | undefined;
|
|
1179
|
+
active?: boolean | undefined;
|
|
1180
|
+
}[];
|
|
1181
|
+
rdefs?: {
|
|
1182
|
+
color?: "color" | "greyscale" | undefined;
|
|
1183
|
+
defaultT?: number | undefined;
|
|
1184
|
+
defaultZ?: number | undefined;
|
|
1185
|
+
projection?: string | undefined;
|
|
1186
|
+
} | undefined;
|
|
1187
|
+
} | undefined;
|
|
1188
|
+
};
|
|
1189
|
+
}, {
|
|
1190
|
+
ome: {
|
|
1191
|
+
multiscales: {
|
|
1192
|
+
datasets: {
|
|
1193
|
+
path: string;
|
|
1194
|
+
coordinateTransformations: any[];
|
|
1195
|
+
}[];
|
|
1196
|
+
axes: any[];
|
|
1197
|
+
name?: string | undefined;
|
|
1198
|
+
coordinateTransformations?: any[] | undefined;
|
|
1199
|
+
}[];
|
|
1200
|
+
version: "0.5";
|
|
1201
|
+
omero?: {
|
|
1202
|
+
channels: {
|
|
1203
|
+
color?: string | undefined;
|
|
1204
|
+
window?: {
|
|
1205
|
+
min: number;
|
|
1206
|
+
max: number;
|
|
1207
|
+
end: number;
|
|
1208
|
+
start: number;
|
|
1209
|
+
} | undefined;
|
|
1210
|
+
label?: string | undefined;
|
|
1211
|
+
family?: string | undefined;
|
|
1212
|
+
active?: boolean | undefined;
|
|
1213
|
+
}[];
|
|
1214
|
+
rdefs?: {
|
|
1215
|
+
color?: "color" | "greyscale" | undefined;
|
|
1216
|
+
defaultT?: number | undefined;
|
|
1217
|
+
defaultZ?: number | undefined;
|
|
1218
|
+
projection?: string | undefined;
|
|
1219
|
+
} | undefined;
|
|
1220
|
+
} | undefined;
|
|
1221
|
+
};
|
|
1222
|
+
}>;
|
|
1223
|
+
type Image$1 = z.infer<typeof Image$1>;
|
|
1224
|
+
|
|
1225
|
+
type Version$1 = "v2" | "v3";
|
|
1226
|
+
type ZarrArrayParams = {
|
|
1227
|
+
arrayPath: string;
|
|
1228
|
+
zarrVersion: Version$1 | undefined;
|
|
1229
|
+
} & ({
|
|
1230
|
+
type: "fetch";
|
|
1231
|
+
url: string;
|
|
1232
|
+
fetchOptions?: {
|
|
1233
|
+
overrides?: RequestInit;
|
|
1234
|
+
useSuffixRequest?: boolean;
|
|
1235
|
+
};
|
|
1236
|
+
} | {
|
|
1237
|
+
type: "filesystem";
|
|
1238
|
+
directoryHandle: FileSystemDirectoryHandle;
|
|
1239
|
+
path: string;
|
|
1240
|
+
});
|
|
1241
|
+
|
|
1242
|
+
type OmeZarrImageLoaderProps = {
|
|
1243
|
+
metadata: Image$1["ome"]["multiscales"][number];
|
|
1244
|
+
arrays: zarr.Array<zarr.DataType, Readable>[];
|
|
1245
|
+
arrayParams: ZarrArrayParams[];
|
|
1246
|
+
};
|
|
1247
|
+
declare class OmeZarrImageLoader {
|
|
1248
|
+
private readonly metadata_;
|
|
1249
|
+
private readonly arrays_;
|
|
1250
|
+
private readonly arrayParams_;
|
|
1251
|
+
private readonly loaderAttributes_;
|
|
1252
|
+
private readonly dimensions_;
|
|
1253
|
+
constructor(props: OmeZarrImageLoaderProps);
|
|
1254
|
+
getSourceDimensionMap(): SourceDimensionMap;
|
|
1255
|
+
loadChunkData(chunk: Chunk, signal: AbortSignal): Promise<void>;
|
|
1256
|
+
private trimChunkPadding;
|
|
1257
|
+
loadRegion(region: Region, lod: number, scheduler?: PromiseScheduler): Promise<Chunk>;
|
|
1258
|
+
getAttributes(): ReadonlyArray<LoaderAttributes>;
|
|
1259
|
+
private regionToIndices;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
/**The zarr.json attributes key*/
|
|
1263
|
+
declare const Plate: z.ZodObject<{
|
|
1264
|
+
/**The versioned OME-Zarr Metadata namespace*/
|
|
1265
|
+
ome: z.ZodObject<{
|
|
1266
|
+
plate: z.ZodObject<{
|
|
1267
|
+
/**The acquisitions for this plate*/
|
|
1268
|
+
acquisitions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1269
|
+
/**A unique identifier within the context of the plate*/
|
|
1270
|
+
id: z.ZodNumber;
|
|
1271
|
+
/**The maximum number of fields of view for the acquisition*/
|
|
1272
|
+
maximumfieldcount: z.ZodOptional<z.ZodNumber>;
|
|
1273
|
+
/**The name of the acquisition*/
|
|
1274
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1275
|
+
/**The description of the acquisition*/
|
|
1276
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1277
|
+
/**The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch*/
|
|
1278
|
+
starttime: z.ZodOptional<z.ZodNumber>;
|
|
1279
|
+
/**The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch*/
|
|
1280
|
+
endtime: z.ZodOptional<z.ZodNumber>;
|
|
1281
|
+
}, "strip", z.ZodTypeAny, {
|
|
1282
|
+
id: number;
|
|
1283
|
+
name?: string | undefined;
|
|
1284
|
+
maximumfieldcount?: number | undefined;
|
|
1285
|
+
description?: string | undefined;
|
|
1286
|
+
starttime?: number | undefined;
|
|
1287
|
+
endtime?: number | undefined;
|
|
1288
|
+
}, {
|
|
1289
|
+
id: number;
|
|
1290
|
+
name?: string | undefined;
|
|
1291
|
+
maximumfieldcount?: number | undefined;
|
|
1292
|
+
description?: string | undefined;
|
|
1293
|
+
starttime?: number | undefined;
|
|
1294
|
+
endtime?: number | undefined;
|
|
1295
|
+
}>, "many">>;
|
|
1296
|
+
/**The maximum number of fields per view across all wells*/
|
|
1297
|
+
field_count: z.ZodOptional<z.ZodNumber>;
|
|
1298
|
+
/**The name of the plate*/
|
|
1299
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1300
|
+
/**The columns of the plate*/
|
|
1301
|
+
columns: z.ZodArray<z.ZodObject<{
|
|
1302
|
+
/**The column name*/
|
|
1303
|
+
name: z.ZodString;
|
|
1304
|
+
}, "strip", z.ZodTypeAny, {
|
|
1305
|
+
name: string;
|
|
1306
|
+
}, {
|
|
1307
|
+
name: string;
|
|
1308
|
+
}>, "many">;
|
|
1309
|
+
/**The rows of the plate*/
|
|
1310
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
1311
|
+
/**The row name*/
|
|
1312
|
+
name: z.ZodString;
|
|
1313
|
+
}, "strip", z.ZodTypeAny, {
|
|
1314
|
+
name: string;
|
|
1315
|
+
}, {
|
|
1316
|
+
name: string;
|
|
1317
|
+
}>, "many">;
|
|
1318
|
+
/**The wells of the plate*/
|
|
1319
|
+
wells: z.ZodArray<z.ZodObject<{
|
|
1320
|
+
/**The path to the well subgroup*/
|
|
1321
|
+
path: z.ZodString;
|
|
1322
|
+
/**The index of the well in the rows list*/
|
|
1323
|
+
rowIndex: z.ZodNumber;
|
|
1324
|
+
/**The index of the well in the columns list*/
|
|
1325
|
+
columnIndex: z.ZodNumber;
|
|
1326
|
+
}, "strip", z.ZodTypeAny, {
|
|
1327
|
+
path: string;
|
|
1328
|
+
rowIndex: number;
|
|
1329
|
+
columnIndex: number;
|
|
1330
|
+
}, {
|
|
1331
|
+
path: string;
|
|
1332
|
+
rowIndex: number;
|
|
1333
|
+
columnIndex: number;
|
|
1334
|
+
}>, "many">;
|
|
1335
|
+
}, "strip", z.ZodTypeAny, {
|
|
1336
|
+
columns: {
|
|
1337
|
+
name: string;
|
|
1338
|
+
}[];
|
|
1339
|
+
rows: {
|
|
1340
|
+
name: string;
|
|
1341
|
+
}[];
|
|
1342
|
+
wells: {
|
|
1343
|
+
path: string;
|
|
1344
|
+
rowIndex: number;
|
|
1345
|
+
columnIndex: number;
|
|
1346
|
+
}[];
|
|
1347
|
+
name?: string | undefined;
|
|
1348
|
+
acquisitions?: {
|
|
1349
|
+
id: number;
|
|
1350
|
+
name?: string | undefined;
|
|
1351
|
+
maximumfieldcount?: number | undefined;
|
|
1352
|
+
description?: string | undefined;
|
|
1353
|
+
starttime?: number | undefined;
|
|
1354
|
+
endtime?: number | undefined;
|
|
1355
|
+
}[] | undefined;
|
|
1356
|
+
field_count?: number | undefined;
|
|
1357
|
+
}, {
|
|
1358
|
+
columns: {
|
|
1359
|
+
name: string;
|
|
1360
|
+
}[];
|
|
1361
|
+
rows: {
|
|
1362
|
+
name: string;
|
|
1363
|
+
}[];
|
|
1364
|
+
wells: {
|
|
1365
|
+
path: string;
|
|
1366
|
+
rowIndex: number;
|
|
1367
|
+
columnIndex: number;
|
|
1368
|
+
}[];
|
|
1369
|
+
name?: string | undefined;
|
|
1370
|
+
acquisitions?: {
|
|
1371
|
+
id: number;
|
|
1372
|
+
name?: string | undefined;
|
|
1373
|
+
maximumfieldcount?: number | undefined;
|
|
1374
|
+
description?: string | undefined;
|
|
1375
|
+
starttime?: number | undefined;
|
|
1376
|
+
endtime?: number | undefined;
|
|
1377
|
+
}[] | undefined;
|
|
1378
|
+
field_count?: number | undefined;
|
|
1379
|
+
}>;
|
|
1380
|
+
/**The version of the OME-Zarr Metadata*/
|
|
1381
|
+
version: z.ZodLiteral<"0.5">;
|
|
1382
|
+
}, "strip", z.ZodTypeAny, {
|
|
1383
|
+
version: "0.5";
|
|
1384
|
+
plate: {
|
|
1385
|
+
columns: {
|
|
1386
|
+
name: string;
|
|
1387
|
+
}[];
|
|
1388
|
+
rows: {
|
|
1389
|
+
name: string;
|
|
1390
|
+
}[];
|
|
1391
|
+
wells: {
|
|
1392
|
+
path: string;
|
|
1393
|
+
rowIndex: number;
|
|
1394
|
+
columnIndex: number;
|
|
1395
|
+
}[];
|
|
1396
|
+
name?: string | undefined;
|
|
1397
|
+
acquisitions?: {
|
|
1398
|
+
id: number;
|
|
1399
|
+
name?: string | undefined;
|
|
1400
|
+
maximumfieldcount?: number | undefined;
|
|
1401
|
+
description?: string | undefined;
|
|
1402
|
+
starttime?: number | undefined;
|
|
1403
|
+
endtime?: number | undefined;
|
|
1404
|
+
}[] | undefined;
|
|
1405
|
+
field_count?: number | undefined;
|
|
1406
|
+
};
|
|
1407
|
+
}, {
|
|
1408
|
+
version: "0.5";
|
|
1409
|
+
plate: {
|
|
1410
|
+
columns: {
|
|
1411
|
+
name: string;
|
|
1412
|
+
}[];
|
|
1413
|
+
rows: {
|
|
1414
|
+
name: string;
|
|
1415
|
+
}[];
|
|
1416
|
+
wells: {
|
|
1417
|
+
path: string;
|
|
1418
|
+
rowIndex: number;
|
|
1419
|
+
columnIndex: number;
|
|
1420
|
+
}[];
|
|
1421
|
+
name?: string | undefined;
|
|
1422
|
+
acquisitions?: {
|
|
1423
|
+
id: number;
|
|
1424
|
+
name?: string | undefined;
|
|
1425
|
+
maximumfieldcount?: number | undefined;
|
|
1426
|
+
description?: string | undefined;
|
|
1427
|
+
starttime?: number | undefined;
|
|
1428
|
+
endtime?: number | undefined;
|
|
1429
|
+
}[] | undefined;
|
|
1430
|
+
field_count?: number | undefined;
|
|
1431
|
+
};
|
|
1432
|
+
}>;
|
|
1433
|
+
}, "strip", z.ZodTypeAny, {
|
|
1434
|
+
ome: {
|
|
1435
|
+
version: "0.5";
|
|
1436
|
+
plate: {
|
|
1437
|
+
columns: {
|
|
1438
|
+
name: string;
|
|
1439
|
+
}[];
|
|
1440
|
+
rows: {
|
|
1441
|
+
name: string;
|
|
1442
|
+
}[];
|
|
1443
|
+
wells: {
|
|
1444
|
+
path: string;
|
|
1445
|
+
rowIndex: number;
|
|
1446
|
+
columnIndex: number;
|
|
1447
|
+
}[];
|
|
1448
|
+
name?: string | undefined;
|
|
1449
|
+
acquisitions?: {
|
|
1450
|
+
id: number;
|
|
1451
|
+
name?: string | undefined;
|
|
1452
|
+
maximumfieldcount?: number | undefined;
|
|
1453
|
+
description?: string | undefined;
|
|
1454
|
+
starttime?: number | undefined;
|
|
1455
|
+
endtime?: number | undefined;
|
|
1456
|
+
}[] | undefined;
|
|
1457
|
+
field_count?: number | undefined;
|
|
1458
|
+
};
|
|
1459
|
+
};
|
|
1460
|
+
}, {
|
|
1461
|
+
ome: {
|
|
1462
|
+
version: "0.5";
|
|
1463
|
+
plate: {
|
|
1464
|
+
columns: {
|
|
1465
|
+
name: string;
|
|
1466
|
+
}[];
|
|
1467
|
+
rows: {
|
|
1468
|
+
name: string;
|
|
1469
|
+
}[];
|
|
1470
|
+
wells: {
|
|
1471
|
+
path: string;
|
|
1472
|
+
rowIndex: number;
|
|
1473
|
+
columnIndex: number;
|
|
1474
|
+
}[];
|
|
1475
|
+
name?: string | undefined;
|
|
1476
|
+
acquisitions?: {
|
|
1477
|
+
id: number;
|
|
1478
|
+
name?: string | undefined;
|
|
1479
|
+
maximumfieldcount?: number | undefined;
|
|
1480
|
+
description?: string | undefined;
|
|
1481
|
+
starttime?: number | undefined;
|
|
1482
|
+
endtime?: number | undefined;
|
|
1483
|
+
}[] | undefined;
|
|
1484
|
+
field_count?: number | undefined;
|
|
1485
|
+
};
|
|
1486
|
+
};
|
|
1487
|
+
}>;
|
|
1488
|
+
type Plate = z.infer<typeof Plate>;
|
|
1489
|
+
|
|
1490
|
+
/**JSON from OME-Zarr zarr.json*/
|
|
1491
|
+
declare const Well: z.ZodObject<{
|
|
1492
|
+
/**The versioned OME-Zarr Metadata namespace*/
|
|
1493
|
+
ome: z.ZodObject<{
|
|
1494
|
+
well: z.ZodObject<{
|
|
1495
|
+
/**The fields of view for this well*/
|
|
1496
|
+
images: z.ZodArray<z.ZodObject<{
|
|
1497
|
+
/**A unique identifier within the context of the plate*/
|
|
1498
|
+
acquisition: z.ZodOptional<z.ZodNumber>;
|
|
1499
|
+
/**The path for this field of view subgroup*/
|
|
1500
|
+
path: z.ZodString;
|
|
1501
|
+
}, "strip", z.ZodTypeAny, {
|
|
1502
|
+
path: string;
|
|
1503
|
+
acquisition?: number | undefined;
|
|
1504
|
+
}, {
|
|
1505
|
+
path: string;
|
|
1506
|
+
acquisition?: number | undefined;
|
|
1507
|
+
}>, "many">;
|
|
1508
|
+
}, "strip", z.ZodTypeAny, {
|
|
1509
|
+
images: {
|
|
1510
|
+
path: string;
|
|
1511
|
+
acquisition?: number | undefined;
|
|
1512
|
+
}[];
|
|
1513
|
+
}, {
|
|
1514
|
+
images: {
|
|
1515
|
+
path: string;
|
|
1516
|
+
acquisition?: number | undefined;
|
|
1517
|
+
}[];
|
|
1518
|
+
}>;
|
|
1519
|
+
/**The version of the OME-Zarr Metadata*/
|
|
1520
|
+
version: z.ZodLiteral<"0.5">;
|
|
1521
|
+
}, "strip", z.ZodTypeAny, {
|
|
1522
|
+
version: "0.5";
|
|
1523
|
+
well: {
|
|
1524
|
+
images: {
|
|
1525
|
+
path: string;
|
|
1526
|
+
acquisition?: number | undefined;
|
|
1527
|
+
}[];
|
|
1528
|
+
};
|
|
1529
|
+
}, {
|
|
1530
|
+
version: "0.5";
|
|
1531
|
+
well: {
|
|
1532
|
+
images: {
|
|
1533
|
+
path: string;
|
|
1534
|
+
acquisition?: number | undefined;
|
|
1535
|
+
}[];
|
|
1536
|
+
};
|
|
1537
|
+
}>;
|
|
1538
|
+
}, "strip", z.ZodTypeAny, {
|
|
1539
|
+
ome: {
|
|
1540
|
+
version: "0.5";
|
|
1541
|
+
well: {
|
|
1542
|
+
images: {
|
|
1543
|
+
path: string;
|
|
1544
|
+
acquisition?: number | undefined;
|
|
1545
|
+
}[];
|
|
1546
|
+
};
|
|
1547
|
+
};
|
|
1548
|
+
}, {
|
|
1549
|
+
ome: {
|
|
1550
|
+
version: "0.5";
|
|
1551
|
+
well: {
|
|
1552
|
+
images: {
|
|
1553
|
+
path: string;
|
|
1554
|
+
acquisition?: number | undefined;
|
|
1555
|
+
}[];
|
|
1556
|
+
};
|
|
1557
|
+
};
|
|
1558
|
+
}>;
|
|
1559
|
+
type Well = z.infer<typeof Well>;
|
|
1560
|
+
|
|
1561
|
+
declare const versions: readonly ["0.4", "0.5"];
|
|
1562
|
+
type Version = (typeof versions)[number];
|
|
1563
|
+
type AdaptedOme<T> = T & {
|
|
1564
|
+
originalVersion: Version;
|
|
1565
|
+
};
|
|
1566
|
+
declare function loadOmeZarrPlate(url: string, version?: Version): Promise<AdaptedOme<Plate["ome"]>>;
|
|
1567
|
+
declare function loadOmeZarrWell(url: string, path: string, version?: Version): Promise<AdaptedOme<Well["ome"]>>;
|
|
1568
|
+
type OmeroMetadata = NonNullable<Image$1["ome"]["omero"]>;
|
|
1569
|
+
type OmeroChannel = OmeroMetadata["channels"][number];
|
|
1570
|
+
declare function loadOmeroChannels(source: OmeZarrImageSource): Promise<OmeroChannel[]>;
|
|
1571
|
+
declare function loadOmeroDefaults(source: OmeZarrImageSource): Promise<OmeroMetadata["rdefs"]>;
|
|
1572
|
+
|
|
1573
|
+
/** Options for customizing fetch requests, such as adding authentication headers for private S3 data */
|
|
1574
|
+
type FetchOptions = {
|
|
1575
|
+
/** RequestInit overrides to customize fetch behavior (e.g., custom headers for S3 authentication) */
|
|
1576
|
+
overrides?: RequestInit;
|
|
1577
|
+
/** Whether to use suffix requests for range queries */
|
|
1578
|
+
useSuffixRequest?: boolean;
|
|
1579
|
+
};
|
|
1580
|
+
/** Opens an OME-Zarr multiscale image Zarr group from either a URL or local directory. */
|
|
1581
|
+
declare class OmeZarrImageSource {
|
|
1582
|
+
readonly location: Location<Readable>;
|
|
1583
|
+
readonly version?: Version;
|
|
1584
|
+
readonly fetchOptions?: FetchOptions;
|
|
1585
|
+
/**
|
|
1586
|
+
* @param url URL of Zarr root
|
|
1587
|
+
* @param version OME-Zarr version
|
|
1588
|
+
* @param fetchOptions Optional fetch configuration (e.g., authentication headers for private S3 data)
|
|
1589
|
+
*/
|
|
1590
|
+
constructor(url: string, version?: Version, fetchOptions?: FetchOptions);
|
|
1591
|
+
/**
|
|
1592
|
+
* @param directory return value of `window.showDirectoryPicker()` which gives the browser
|
|
1593
|
+
* permission to access a directory (only works in Chrome/Edge)
|
|
1594
|
+
* @param version OME-Zarr version
|
|
1595
|
+
* @param path path to image, beginning with "/". This argument allows the application to only
|
|
1596
|
+
* ask the user once for permission to the root directory
|
|
1597
|
+
*/
|
|
1598
|
+
constructor(directory: FileSystemDirectoryHandle, version?: Version, path?: `/${string}`);
|
|
1599
|
+
open(): Promise<OmeZarrImageLoader>;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
declare class Plane {
|
|
1603
|
+
normal: vec3;
|
|
1604
|
+
signedDistance: number;
|
|
1605
|
+
constructor(normal?: vec3, distance?: number);
|
|
1606
|
+
set(normal: vec3, distance: number): void;
|
|
1607
|
+
signedDistanceToPoint(point: vec3): number;
|
|
1608
|
+
normalize(): void;
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
declare class Spherical {
|
|
1612
|
+
radius: number;
|
|
1613
|
+
phi: number;
|
|
1614
|
+
theta: number;
|
|
1615
|
+
constructor(radius: number, phi: number, theta: number);
|
|
1616
|
+
toVec3(): vec3;
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
/**JSON from OME-NGFF .zattrs*/
|
|
1620
|
+
declare const Image: z.ZodObject<{
|
|
1621
|
+
/**The multiscale datasets for this image*/
|
|
1622
|
+
multiscales: z.ZodArray<z.ZodObject<{
|
|
1623
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1624
|
+
datasets: z.ZodArray<z.ZodObject<{
|
|
1625
|
+
path: z.ZodString;
|
|
1626
|
+
coordinateTransformations: z.ZodArray<z.ZodEffects<z.ZodAny, any, any>, "many">;
|
|
1627
|
+
}, "strip", z.ZodTypeAny, {
|
|
1628
|
+
path: string;
|
|
1629
|
+
coordinateTransformations: any[];
|
|
1630
|
+
}, {
|
|
1631
|
+
path: string;
|
|
1632
|
+
coordinateTransformations: any[];
|
|
1633
|
+
}>, "many">;
|
|
1634
|
+
version: z.ZodOptional<z.ZodLiteral<"0.4">>;
|
|
1635
|
+
axes: z.ZodArray<z.ZodEffects<z.ZodAny, any, any>, "many">;
|
|
1636
|
+
coordinateTransformations: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodAny, any, any>, "many">>;
|
|
1637
|
+
}, "strip", z.ZodTypeAny, {
|
|
1638
|
+
datasets: {
|
|
1639
|
+
path: string;
|
|
1640
|
+
coordinateTransformations: any[];
|
|
1641
|
+
}[];
|
|
1642
|
+
axes: any[];
|
|
1643
|
+
name?: string | undefined;
|
|
1644
|
+
coordinateTransformations?: any[] | undefined;
|
|
1645
|
+
version?: "0.4" | undefined;
|
|
1646
|
+
}, {
|
|
1647
|
+
datasets: {
|
|
1648
|
+
path: string;
|
|
1649
|
+
coordinateTransformations: any[];
|
|
1650
|
+
}[];
|
|
1651
|
+
axes: any[];
|
|
1652
|
+
name?: string | undefined;
|
|
1653
|
+
coordinateTransformations?: any[] | undefined;
|
|
1654
|
+
version?: "0.4" | undefined;
|
|
1655
|
+
}>, "many">;
|
|
1656
|
+
omero: z.ZodOptional<z.ZodObject<{
|
|
1657
|
+
channels: z.ZodArray<z.ZodObject<{
|
|
1658
|
+
window: z.ZodObject<{
|
|
1659
|
+
end: z.ZodNumber;
|
|
1660
|
+
max: z.ZodNumber;
|
|
1661
|
+
min: z.ZodNumber;
|
|
1662
|
+
start: z.ZodNumber;
|
|
1663
|
+
}, "strip", z.ZodTypeAny, {
|
|
1664
|
+
min: number;
|
|
1665
|
+
max: number;
|
|
1666
|
+
end: number;
|
|
1667
|
+
start: number;
|
|
1668
|
+
}, {
|
|
1669
|
+
min: number;
|
|
1670
|
+
max: number;
|
|
1671
|
+
end: number;
|
|
1672
|
+
start: number;
|
|
1673
|
+
}>;
|
|
1674
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1675
|
+
family: z.ZodOptional<z.ZodString>;
|
|
1676
|
+
color: z.ZodString;
|
|
1677
|
+
active: z.ZodOptional<z.ZodBoolean>;
|
|
1678
|
+
}, "strip", z.ZodTypeAny, {
|
|
1679
|
+
color: string;
|
|
1680
|
+
window: {
|
|
1681
|
+
min: number;
|
|
1682
|
+
max: number;
|
|
1683
|
+
end: number;
|
|
1684
|
+
start: number;
|
|
1685
|
+
};
|
|
1686
|
+
label?: string | undefined;
|
|
1687
|
+
family?: string | undefined;
|
|
1688
|
+
active?: boolean | undefined;
|
|
1689
|
+
}, {
|
|
1690
|
+
color: string;
|
|
1691
|
+
window: {
|
|
1692
|
+
min: number;
|
|
1693
|
+
max: number;
|
|
1694
|
+
end: number;
|
|
1695
|
+
start: number;
|
|
1696
|
+
};
|
|
1697
|
+
label?: string | undefined;
|
|
1698
|
+
family?: string | undefined;
|
|
1699
|
+
active?: boolean | undefined;
|
|
1700
|
+
}>, "many">;
|
|
1701
|
+
rdefs: z.ZodOptional<z.ZodObject<{
|
|
1702
|
+
defaultT: z.ZodOptional<z.ZodNumber>;
|
|
1703
|
+
defaultZ: z.ZodOptional<z.ZodNumber>;
|
|
1704
|
+
color: z.ZodOptional<z.ZodEnum<["color", "greyscale"]>>;
|
|
1705
|
+
projection: z.ZodOptional<z.ZodString>;
|
|
1706
|
+
}, "strip", z.ZodTypeAny, {
|
|
1707
|
+
color?: "color" | "greyscale" | undefined;
|
|
1708
|
+
defaultT?: number | undefined;
|
|
1709
|
+
defaultZ?: number | undefined;
|
|
1710
|
+
projection?: string | undefined;
|
|
1711
|
+
}, {
|
|
1712
|
+
color?: "color" | "greyscale" | undefined;
|
|
1713
|
+
defaultT?: number | undefined;
|
|
1714
|
+
defaultZ?: number | undefined;
|
|
1715
|
+
projection?: string | undefined;
|
|
1716
|
+
}>>;
|
|
1717
|
+
}, "strip", z.ZodTypeAny, {
|
|
1718
|
+
channels: {
|
|
1719
|
+
color: string;
|
|
1720
|
+
window: {
|
|
1721
|
+
min: number;
|
|
1722
|
+
max: number;
|
|
1723
|
+
end: number;
|
|
1724
|
+
start: number;
|
|
1725
|
+
};
|
|
1726
|
+
label?: string | undefined;
|
|
1727
|
+
family?: string | undefined;
|
|
1728
|
+
active?: boolean | undefined;
|
|
1729
|
+
}[];
|
|
1730
|
+
rdefs?: {
|
|
1731
|
+
color?: "color" | "greyscale" | undefined;
|
|
1732
|
+
defaultT?: number | undefined;
|
|
1733
|
+
defaultZ?: number | undefined;
|
|
1734
|
+
projection?: string | undefined;
|
|
1735
|
+
} | undefined;
|
|
1736
|
+
}, {
|
|
1737
|
+
channels: {
|
|
1738
|
+
color: string;
|
|
1739
|
+
window: {
|
|
1740
|
+
min: number;
|
|
1741
|
+
max: number;
|
|
1742
|
+
end: number;
|
|
1743
|
+
start: number;
|
|
1744
|
+
};
|
|
1745
|
+
label?: string | undefined;
|
|
1746
|
+
family?: string | undefined;
|
|
1747
|
+
active?: boolean | undefined;
|
|
1748
|
+
}[];
|
|
1749
|
+
rdefs?: {
|
|
1750
|
+
color?: "color" | "greyscale" | undefined;
|
|
1751
|
+
defaultT?: number | undefined;
|
|
1752
|
+
defaultZ?: number | undefined;
|
|
1753
|
+
projection?: string | undefined;
|
|
1754
|
+
} | undefined;
|
|
1755
|
+
}>>;
|
|
1756
|
+
}, "strip", z.ZodTypeAny, {
|
|
1757
|
+
multiscales: {
|
|
1758
|
+
datasets: {
|
|
1759
|
+
path: string;
|
|
1760
|
+
coordinateTransformations: any[];
|
|
1761
|
+
}[];
|
|
1762
|
+
axes: any[];
|
|
1763
|
+
name?: string | undefined;
|
|
1764
|
+
coordinateTransformations?: any[] | undefined;
|
|
1765
|
+
version?: "0.4" | undefined;
|
|
1766
|
+
}[];
|
|
1767
|
+
omero?: {
|
|
1768
|
+
channels: {
|
|
1769
|
+
color: string;
|
|
1770
|
+
window: {
|
|
1771
|
+
min: number;
|
|
1772
|
+
max: number;
|
|
1773
|
+
end: number;
|
|
1774
|
+
start: number;
|
|
1775
|
+
};
|
|
1776
|
+
label?: string | undefined;
|
|
1777
|
+
family?: string | undefined;
|
|
1778
|
+
active?: boolean | undefined;
|
|
1779
|
+
}[];
|
|
1780
|
+
rdefs?: {
|
|
1781
|
+
color?: "color" | "greyscale" | undefined;
|
|
1782
|
+
defaultT?: number | undefined;
|
|
1783
|
+
defaultZ?: number | undefined;
|
|
1784
|
+
projection?: string | undefined;
|
|
1785
|
+
} | undefined;
|
|
1786
|
+
} | undefined;
|
|
1787
|
+
}, {
|
|
1788
|
+
multiscales: {
|
|
1789
|
+
datasets: {
|
|
1790
|
+
path: string;
|
|
1791
|
+
coordinateTransformations: any[];
|
|
1792
|
+
}[];
|
|
1793
|
+
axes: any[];
|
|
1794
|
+
name?: string | undefined;
|
|
1795
|
+
coordinateTransformations?: any[] | undefined;
|
|
1796
|
+
version?: "0.4" | undefined;
|
|
1797
|
+
}[];
|
|
1798
|
+
omero?: {
|
|
1799
|
+
channels: {
|
|
1800
|
+
color: string;
|
|
1801
|
+
window: {
|
|
1802
|
+
min: number;
|
|
1803
|
+
max: number;
|
|
1804
|
+
end: number;
|
|
1805
|
+
start: number;
|
|
1806
|
+
};
|
|
1807
|
+
label?: string | undefined;
|
|
1808
|
+
family?: string | undefined;
|
|
1809
|
+
active?: boolean | undefined;
|
|
1810
|
+
}[];
|
|
1811
|
+
rdefs?: {
|
|
1812
|
+
color?: "color" | "greyscale" | undefined;
|
|
1813
|
+
defaultT?: number | undefined;
|
|
1814
|
+
defaultZ?: number | undefined;
|
|
1815
|
+
projection?: string | undefined;
|
|
1816
|
+
} | undefined;
|
|
1817
|
+
} | undefined;
|
|
1818
|
+
}>;
|
|
1819
|
+
type Image = z.infer<typeof Image>;
|
|
1820
|
+
|
|
1821
|
+
declare class Texture2DArray extends Texture {
|
|
1822
|
+
private data_;
|
|
1823
|
+
private readonly width_;
|
|
1824
|
+
private readonly height_;
|
|
1825
|
+
private readonly depth_;
|
|
1826
|
+
constructor(data: DataTextureTypedArray, width: number, height: number);
|
|
1827
|
+
get type(): string;
|
|
1828
|
+
set data(data: DataTextureTypedArray);
|
|
1829
|
+
get data(): DataTextureTypedArray;
|
|
1830
|
+
get width(): number;
|
|
1831
|
+
get height(): number;
|
|
1832
|
+
get depth(): number;
|
|
1833
|
+
updateWithChunk(chunk: Chunk, data?: ChunkData): void;
|
|
1834
|
+
static createWithChunk(chunk: Chunk, data?: ChunkData): Texture2DArray;
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
type PointProperties = {
|
|
1838
|
+
position: vec3;
|
|
1839
|
+
color: Color;
|
|
1840
|
+
size: number;
|
|
1841
|
+
markerIndex: number;
|
|
1842
|
+
};
|
|
1843
|
+
declare class Points extends RenderableObject {
|
|
1844
|
+
private atlas_;
|
|
1845
|
+
constructor(points: PointProperties[], markerAtlas: Texture2DArray);
|
|
1846
|
+
get type(): string;
|
|
1847
|
+
}
|
|
1848
|
+
|
|
1849
|
+
declare class Texture3D extends Texture {
|
|
1850
|
+
private data_;
|
|
1851
|
+
private readonly width_;
|
|
1852
|
+
private readonly height_;
|
|
1853
|
+
private readonly depth_;
|
|
1854
|
+
constructor(data: DataTextureTypedArray, width: number, height: number, depth: number);
|
|
1855
|
+
set data(data: DataTextureTypedArray);
|
|
1856
|
+
get type(): string;
|
|
1857
|
+
get data(): DataTextureTypedArray;
|
|
1858
|
+
get width(): number;
|
|
1859
|
+
get height(): number;
|
|
1860
|
+
get depth(): number;
|
|
1861
|
+
updateWithChunk(chunk: Chunk): void;
|
|
1862
|
+
static createWithChunk(chunk: Chunk): Texture3D;
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1865
|
+
export { AxesLayer, Box2, Box3, type CameraControls, type ChannelProps, type ChannelsEnabled, type Chunk, type ChunkLoader, ChunkedImageLayer, Color, type ColorLike, EventContext, type FetchOptions, Frustum, Idetik, ImageLayer, ImageSeriesLayer, type ImageSourcePolicy, type ImageSourcePolicyConfig, LabelImageLayer, Layer, LayerManager, type LayerState, Image as OmeZarrImage, OmeZarrImageSource, type OmeroChannel, type OmeroMetadata, OrthographicCamera, PanZoomControls, PerspectiveCamera, Plane, type PointPickingResult, Points, type PriorityCategory, ProjectedLineLayer, type Region, type SliceCoordinates, Spherical, Texture2DArray, Texture3D, TracksLayer, Viewport, type ViewportConfig, VolumeLayer, WebGLRenderer, createExplorationPolicy, createImageSourcePolicy, createNoPrefetchPolicy, createPlaybackPolicy, loadOmeZarrPlate, loadOmeZarrWell, loadOmeroChannels, loadOmeroDefaults, parseViewportConfigs };
|