@idetik/core 0.10.0 → 0.11.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.
@@ -2,35 +2,42 @@ import { Chunk, ChunkSource, SliceCoordinates } from "../data/chunk";
2
2
  import { Layer, RenderContext } from "../core/layer";
3
3
  import { IdetikContext } from "../idetik";
4
4
  import { ImageSourcePolicy } from "../core/image_source_policy";
5
- import { vec3 } from "gl-matrix";
6
5
  import { Camera } from "../objects/cameras/camera";
6
+ import { ChannelProps, ChannelsEnabled } from "../objects/textures/channel";
7
7
  export type VolumeLayerProps = {
8
8
  source: ChunkSource;
9
9
  sliceCoords: SliceCoordinates;
10
10
  policy: ImageSourcePolicy;
11
+ channelProps?: ChannelProps[];
11
12
  };
12
- export declare class VolumeLayer extends Layer {
13
+ export declare class VolumeLayer extends Layer implements ChannelsEnabled {
13
14
  readonly type = "VolumeLayer";
14
15
  private readonly source_;
15
16
  private readonly sliceCoords_;
16
17
  private readonly currentChunks_;
17
18
  private readonly pool_;
19
+ private readonly initialChannelProps_?;
20
+ private readonly channelChangeCallbacks_;
18
21
  private sourcePolicy_;
19
22
  private chunkStoreView_?;
23
+ private channelProps_?;
20
24
  private lastLoadedTime_;
21
25
  private interactiveStepSizeScale_;
22
26
  private debugShowWireframes_;
23
27
  debugShowDegenerateRays: boolean;
24
- color: vec3;
25
28
  relativeStepSize: number;
26
- maxIntensity: number;
27
29
  opacityMultiplier: number;
28
30
  earlyTerminationAlpha: number;
29
31
  get debugShowWireframes(): boolean;
30
32
  set debugShowWireframes(value: boolean);
31
33
  set sourcePolicy(newPolicy: ImageSourcePolicy);
34
+ setChannelProps(channelProps: ChannelProps[]): void;
35
+ get channelProps(): ChannelProps[] | undefined;
36
+ resetChannelProps(): void;
37
+ addChannelChangeCallback(callback: () => void): void;
38
+ removeChannelChangeCallback(callback: () => void): void;
32
39
  private createVolume;
33
- constructor({ source, sliceCoords, policy }: VolumeLayerProps);
40
+ constructor({ source, sliceCoords, policy, channelProps }: VolumeLayerProps);
34
41
  private getVolumeForChunk;
35
42
  onAttached(context: IdetikContext): Promise<void>;
36
43
  onDetached(_context: IdetikContext): void;
@@ -1 +1 @@
1
- {"version":3,"file":"volume_layer.d.ts","sourceRoot":"","sources":["../../../../src/layers/volume_layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAY,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAIF,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,IAAI,iBAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2C;IAC1E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAEhE,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEzC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,yBAAyB,CAAO;IAGxC,OAAO,CAAC,oBAAoB,CAAS;IAC9B,uBAAuB,UAAS;IAChC,KAAK,OAAkC;IACvC,gBAAgB,SAAO;IACvB,YAAY,SAAS;IACrB,iBAAiB,SAAO;IACxB,qBAAqB,SAAQ;IAEpC,IAAW,mBAAmB,IAIQ,OAAO,CAF5C;IAED,IAAW,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAM5C;IAED,IAAW,YAAY,CAAC,SAAS,EAAE,iBAAiB,EAUnD;IAED,OAAO,CAAC,YAAY;gBAMR,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB;IAQ7D,OAAO,CAAC,iBAAiB;IAeZ,UAAU,CAAC,OAAO,EAAE,aAAa;IAOvC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAQhD,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,sBAAsB;IAUvB,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa;IAuB9B,cAAc,CAAC,MAAM,EAAE,MAAM;IAwB7B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAU9C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,UAM3C"}
1
+ {"version":3,"file":"volume_layer.d.ts","sourceRoot":"","sources":["../../../../src/layers/volume_layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAIhE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAIF,qBAAa,WAAY,SAAQ,KAAM,YAAW,eAAe;IAC/D,SAAgB,IAAI,iBAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2C;IAC1E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAyB;IAEjE,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,aAAa,CAAC,CAAiB;IAEvC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,yBAAyB,CAAO;IAGxC,OAAO,CAAC,oBAAoB,CAAS;IAC9B,uBAAuB,UAAS;IAChC,gBAAgB,SAAO;IACvB,iBAAiB,SAAO;IACxB,qBAAqB,SAAQ;IAEpC,IAAW,mBAAmB,IAIQ,OAAO,CAF5C;IAED,IAAW,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAM5C;IAED,IAAW,YAAY,CAAC,SAAS,EAAE,iBAAiB,EAUnD;IAEM,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE;IAUnD,IAAW,YAAY,IAAI,YAAY,EAAE,GAAG,SAAS,CAEpD;IAEM,iBAAiB,IAAI,IAAI;IAMzB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpD,2BAA2B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAQ9D,OAAO,CAAC,YAAY;gBASR,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,gBAAgB;IAU3E,OAAO,CAAC,iBAAiB;IAkBZ,UAAU,CAAC,OAAO,EAAE,aAAa;IAOvC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAQhD,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,sBAAsB;IAUvB,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa;IAuB9B,cAAc,CAAC,MAAM,EAAE,MAAM;IAwB7B,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQ9C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,UAM3C"}
@@ -1,10 +1,14 @@
1
1
  import { RenderableObject } from "../../core/renderable_object";
2
2
  import type { Texture3D } from "../textures/texture_3d";
3
3
  import { vec3 } from "gl-matrix";
4
+ import { ChannelProps } from "../textures/channel";
4
5
  export declare class VolumeRenderable extends RenderableObject {
5
6
  voxelScale: vec3;
6
- constructor(texture: Texture3D);
7
+ private channels_;
8
+ constructor(texture: Texture3D, channels?: ChannelProps[]);
7
9
  get type(): string;
8
10
  getUniforms(): Record<string, unknown>;
11
+ setChannelProps(channels: ChannelProps[]): void;
12
+ setChannelProperty<K extends keyof ChannelProps>(channelIndex: number, property: K, value: Required<ChannelProps>[K]): void;
9
13
  }
10
14
  //# 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,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,qBAAa,gBAAiB,SAAQ,gBAAgB;IAC7C,UAAU,EAAE,IAAI,CAA4B;gBAEvC,OAAO,EAAE,SAAS;IAS9B,IAAW,IAAI,WAEd;IAEe,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAKvD"}
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,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAEL,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,gBAAiB,SAAQ,gBAAgB;IAC7C,UAAU,EAAE,IAAI,CAA4B;IAEnD,OAAO,CAAC,SAAS,CAAsB;gBAE3B,OAAO,EAAE,SAAS,EAAE,QAAQ,GAAE,YAAY,EAAO;IAW7D,IAAW,IAAI,WAEd;IAEe,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW/C,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE;IAIxC,kBAAkB,CAAC,CAAC,SAAS,MAAM,YAAY,EACpD,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CASnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idetik/core",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite",