@idetik/core 0.40.0 → 0.40.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/assets/worker_kernel-CBlE4MBI.js.map +1 -1
  2. package/dist/index.d.ts +1717 -381
  3. package/dist/index.js +981 -193
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.umd.cjs +32 -32
  6. package/dist/index.umd.cjs.map +1 -1
  7. package/dist/types/src/core/channel.d.ts +7 -1
  8. package/dist/types/src/core/channel.d.ts.map +1 -1
  9. package/dist/types/src/core/image_source_policy.d.ts +4 -4
  10. package/dist/types/src/core/image_source_policy.d.ts.map +1 -1
  11. package/dist/types/src/core/layer.d.ts +136 -21
  12. package/dist/types/src/core/layer.d.ts.map +1 -1
  13. package/dist/types/src/core/renderable_object.d.ts +108 -3
  14. package/dist/types/src/core/renderable_object.d.ts.map +1 -1
  15. package/dist/types/src/core/viewport.d.ts +82 -2
  16. package/dist/types/src/core/viewport.d.ts.map +1 -1
  17. package/dist/types/src/data/chunk.d.ts +37 -2
  18. package/dist/types/src/data/chunk.d.ts.map +1 -1
  19. package/dist/types/src/data/chunk_manager.d.ts +5 -0
  20. package/dist/types/src/data/chunk_manager.d.ts.map +1 -1
  21. package/dist/types/src/data/ome_zarr/image_source.d.ts +56 -13
  22. package/dist/types/src/data/ome_zarr/image_source.d.ts.map +1 -1
  23. package/dist/types/src/data/ome_zarr/metadata_loaders.d.ts +4 -4
  24. package/dist/types/src/data/ome_zarr/metadata_loaders.d.ts.map +1 -1
  25. package/dist/types/src/idetik.d.ts +129 -59
  26. package/dist/types/src/idetik.d.ts.map +1 -1
  27. package/dist/types/src/index.d.ts +29 -8
  28. package/dist/types/src/index.d.ts.map +1 -1
  29. package/dist/types/src/layers/axes_layer.d.ts +30 -5
  30. package/dist/types/src/layers/axes_layer.d.ts.map +1 -1
  31. package/dist/types/src/layers/image_layer.d.ts +106 -12
  32. package/dist/types/src/layers/image_layer.d.ts.map +1 -1
  33. package/dist/types/src/layers/label_layer.d.ts +106 -5
  34. package/dist/types/src/layers/label_layer.d.ts.map +1 -1
  35. package/dist/types/src/layers/point_picking.d.ts +7 -2
  36. package/dist/types/src/layers/point_picking.d.ts.map +1 -1
  37. package/dist/types/src/layers/volume_layer.d.ts +87 -5
  38. package/dist/types/src/layers/volume_layer.d.ts.map +1 -1
  39. package/dist/types/src/math/axes.d.ts +3 -0
  40. package/dist/types/src/math/axes.d.ts.map +1 -1
  41. package/dist/types/src/math/box2.d.ts +34 -4
  42. package/dist/types/src/math/box2.d.ts.map +1 -1
  43. package/dist/types/src/math/box3.d.ts +38 -4
  44. package/dist/types/src/math/box3.d.ts.map +1 -1
  45. package/dist/types/src/math/color.d.ts +49 -2
  46. package/dist/types/src/math/color.d.ts.map +1 -1
  47. package/dist/types/src/math/frustum.d.ts +28 -0
  48. package/dist/types/src/math/frustum.d.ts.map +1 -1
  49. package/dist/types/src/math/transforms.d.ts +57 -0
  50. package/dist/types/src/math/transforms.d.ts.map +1 -1
  51. package/dist/types/src/objects/cameras/camera.d.ts +55 -0
  52. package/dist/types/src/objects/cameras/camera.d.ts.map +1 -1
  53. package/dist/types/src/objects/cameras/controls.d.ts +88 -1
  54. package/dist/types/src/objects/cameras/controls.d.ts.map +1 -1
  55. package/dist/types/src/objects/cameras/orbit_controls.d.ts +56 -1
  56. package/dist/types/src/objects/cameras/orbit_controls.d.ts.map +1 -1
  57. package/dist/types/src/objects/cameras/orthographic_camera.d.ts +90 -13
  58. package/dist/types/src/objects/cameras/orthographic_camera.d.ts.map +1 -1
  59. package/dist/types/src/objects/cameras/perspective_camera.d.ts +65 -3
  60. package/dist/types/src/objects/cameras/perspective_camera.d.ts.map +1 -1
  61. package/dist/types/src/objects/renderable/image_renderable.d.ts +48 -3
  62. package/dist/types/src/objects/renderable/image_renderable.d.ts.map +1 -1
  63. package/dist/types/src/objects/renderable/label_image_renderable.d.ts +66 -4
  64. package/dist/types/src/objects/renderable/label_image_renderable.d.ts.map +1 -1
  65. package/dist/types/src/objects/renderable/points_renderable.d.ts +47 -2
  66. package/dist/types/src/objects/renderable/points_renderable.d.ts.map +1 -1
  67. package/dist/types/src/objects/renderable/projected_line_renderable.d.ts +27 -3
  68. package/dist/types/src/objects/renderable/projected_line_renderable.d.ts.map +1 -1
  69. package/dist/types/src/objects/renderable/volume_renderable.d.ts +63 -3
  70. package/dist/types/src/objects/renderable/volume_renderable.d.ts.map +1 -1
  71. package/package.json +1 -1
@@ -2,29 +2,89 @@ import { RenderableObject } from "../../core/renderable_object";
2
2
  import { ChannelProps } from "../../core/channel";
3
3
  import { vec3 } from "gl-matrix";
4
4
  import type { Chunk } from "../../data/chunk";
5
- type VolumeRenderableProps = {
5
+ /**
6
+ * Initialization properties for constructing a volume renderable.
7
+ */
8
+ export type VolumeRenderableProps = {
9
+ /** Channel appearance settings. Defaults to `[]`. */
6
10
  channelProps?: ChannelProps[];
7
11
  };
8
- /** @group Renderable Objects */
12
+ /**
13
+ * A ray-marched box that draws multi-channel volumetric data.
14
+ *
15
+ * The renderable draws a unit box and ray marches through 3D chunk
16
+ * textures in the fragment shader. Up to 4 channels blend in a single
17
+ * pass and all loaded channels must share one texture data type. Front
18
+ * faces are culled and depth testing is off by default.
19
+ * {@link VolumeLayer} constructs and pools one instance per spatial chunk
20
+ * group, streams chunk textures in with {@link updateVolumeWithChunk},
21
+ * and sizes the box through the transform.
22
+ *
23
+ * @group Renderables
24
+ */
9
25
  export declare class VolumeRenderable extends RenderableObject {
26
+ /**
27
+ * World size of a voxel along each axis. Layers set it from the chunk
28
+ * scale so ray march steps account for anisotropic voxels. Defaults to
29
+ * `[1, 1, 1]`.
30
+ */
10
31
  voxelScale: vec3;
11
32
  private channels_;
12
33
  private loadedChannels_;
13
34
  private readonly channelToTextureIndex_;
35
+ /**
36
+ * Creates an empty volume renderable.
37
+ *
38
+ * @param props - Initialization properties.
39
+ */
14
40
  constructor({ channelProps }?: VolumeRenderableProps);
41
+ /** Identifies the renderable type as `VolumeRenderable`. */
15
42
  get type(): string;
43
+ /**
44
+ * Loads or refreshes the texture for the chunk's channel. The channel
45
+ * index comes from the chunk and the texture's data type selects the
46
+ * volume shader, so every channel must share one data type. Chunks
47
+ * without a texture are ignored.
48
+ *
49
+ * @param chunk - The chunk holding the channel texture.
50
+ */
16
51
  updateVolumeWithChunk(chunk: Chunk): void;
17
52
  private addChannelTexture;
18
53
  private updateChannelTexture;
54
+ /**
55
+ * Marks all channels as not loaded so they stop rendering until the
56
+ * next chunk update. The textures themselves are kept.
57
+ */
19
58
  clearLoadedChannels(): void;
59
+ /**
60
+ * Clears all textures and channel state so the renderable can be
61
+ * pooled and reused for another chunk.
62
+ */
20
63
  reset(): void;
64
+ /**
65
+ * Returns per-channel sampler, color, contrast, opacity, and
66
+ * visibility uniforms for up to 4 loaded channels plus the voxel
67
+ * scale.
68
+ */
21
69
  getUniforms(): Record<string, number[] | number>;
22
70
  /**
23
71
  * Get an available texture for a channel. If desiredChannelIndex is provided, it will try to return the texture for that channel index. If that texture is not available, or no desiredChannelIndex is passed, return the first available channel texture. This is used to determine which texture to use when updating channel properties, since channel properties can be updated even if the channel's texture hasn't been loaded yet. If no textures are available, it returns null, which signals that default contrast limits should be used when validating the channel properties.
24
72
  */
25
73
  private getAvailableChannelTexture;
74
+ /**
75
+ * Replaces the appearance settings for all channels.
76
+ *
77
+ * @param channels - The new channel settings.
78
+ */
26
79
  setChannelProps(channels: ChannelProps[]): void;
80
+ /**
81
+ * Updates one property of the channel at the given index and
82
+ * revalidates it against the channel's texture when available.
83
+ *
84
+ * @param channelIndex - The channel to update.
85
+ * @param property - The property name to set.
86
+ * @param value - The new value.
87
+ */
27
88
  setChannelProperty<K extends keyof ChannelProps>(channelIndex: number, property: K, value: Required<ChannelProps>[K]): void;
28
89
  }
29
- export {};
30
90
  //# sourceMappingURL=volume_renderable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"volume_renderable.d.ts","sourceRoot":"","sources":["../../../../../src/objects/renderable/volume_renderable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAEL,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,KAAK,qBAAqB,GAAG;IAC3B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAEF,gCAAgC;AAChC,qBAAa,gBAAiB,SAAQ,gBAAgB;IAC7C,UAAU,EAAE,IAAI,CAA4B;IAEnD,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,eAAe,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAkC;gBAE7D,EAAE,YAAiB,EAAE,GAAE,qBAA0B;IAS7D,IAAW,IAAI,WAEd;IAEM,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAehD,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,oBAAoB;IAIrB,mBAAmB;IAInB,KAAK;IAMI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IA8DhE;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAc3B,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE;IAOxC,kBAAkB,CAAC,CAAC,SAAS,MAAM,YAAY,EACpD,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAYnC"}
1
+ {"version":3,"file":"volume_renderable.d.ts","sourceRoot":"","sources":["../../../../../src/objects/renderable/volume_renderable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAEL,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,qDAAqD;IACrD,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD;;;;OAIG;IACI,UAAU,EAAE,IAAI,CAA4B;IAEnD,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,eAAe,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAkC;IAEzE;;;;OAIG;gBACS,EAAE,YAAiB,EAAE,GAAE,qBAA0B;IAS7D,4DAA4D;IAC5D,IAAW,IAAI,WAEd;IAED;;;;;;;OAOG;IACI,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAehD,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,oBAAoB;IAI5B;;;OAGG;IACI,mBAAmB;IAI1B;;;OAGG;IACI,KAAK;IAMZ;;;;OAIG;IACa,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IA8DhE;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAclC;;;;OAIG;IACI,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE;IAO/C;;;;;;;OAOG;IACI,kBAAkB,CAAC,CAAC,SAAS,MAAM,YAAY,EACpD,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAYnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idetik/core",
3
- "version": "0.40.0",
3
+ "version": "0.40.2",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "repository": {