@idetik/core 0.1.1 → 0.2.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_info_overlay.d.ts","sourceRoot":"","sources":["../../../../examples/chunk_streaming/chunk_info_overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAGzE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAEpC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,uBAAuB;IAKrD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,mBAAmB,GAAG,IAAI;CA4EtE"}
1
+ {"version":3,"file":"chunk_info_overlay.d.ts","sourceRoot":"","sources":["../../../../examples/chunk_streaming/chunk_info_overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAGzE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAEpC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,uBAAuB;IAKrD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,mBAAmB,GAAG,IAAI;CAiFtE"}
@@ -1,12 +1,17 @@
1
- import { ChunkSource, SliceCoordinates } from "../data/chunk";
2
- import { OrthographicCamera } from "../objects/cameras/orthographic_camera";
3
- import { ChunkManagerSource } from "./chunk_manager_source";
1
+ import { ChunkSource } from "../data/chunk";
2
+ import { ChunkStoreView } from "./chunk_store_view";
4
3
  import { ImageSourcePolicy } from "./image_source_policy";
5
4
  export declare class ChunkManager {
6
- private readonly sources_;
7
- private readonly pendingSources_;
5
+ private readonly stores_;
6
+ private readonly pendingStores_;
7
+ private readonly views_;
8
8
  private readonly queue_;
9
- addSource(source: ChunkSource, sliceCoords: SliceCoordinates, policy: ImageSourcePolicy): Promise<ChunkManagerSource>;
10
- update(camera: OrthographicCamera, bufferWidth: number): void;
9
+ addView(source: ChunkSource, policy: ImageSourcePolicy): Promise<ChunkStoreView>;
10
+ removeView(view: ChunkStoreView): void;
11
+ private addSource;
12
+ private getSourceForStore;
13
+ update(): void;
14
+ private updateAndCollectChunkChanges;
15
+ private aggregateChunkViewStates;
11
16
  }
12
17
  //# sourceMappingURL=chunk_manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_manager.d.ts","sourceRoot":"","sources":["../../../../src/core/chunk_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8C;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IACJ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE9B,SAAS,CACpB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,iBAAiB;IAyBpB,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM;CAiC9D"}
1
+ {"version":3,"file":"chunk_manager.d.ts","sourceRoot":"","sources":["../../../../src/core/chunk_manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,WAAW,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+C;IAC9E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE9B,OAAO,CAClB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,cAAc,CAAC;IAOnB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;YA6B/B,SAAS;IAoBvB,OAAO,CAAC,iBAAiB;IASlB,MAAM;IAkBb,OAAO,CAAC,4BAA4B;IAiBpC,OAAO,CAAC,wBAAwB;CAgEjC"}
@@ -0,0 +1,18 @@
1
+ import { Chunk, SourceDimensionMap, ChunkLoader, SliceCoordinates } from "../data/chunk";
2
+ export declare class ChunkStore {
3
+ private readonly chunks_;
4
+ private readonly loader_;
5
+ private readonly lowestResLOD_;
6
+ private readonly dimensions_;
7
+ constructor(loader: ChunkLoader);
8
+ getChunksAtTime(timeIndex: number): Chunk[];
9
+ getTimeIndex(sliceCoords: SliceCoordinates): number;
10
+ get lodCount(): number;
11
+ get dimensions(): SourceDimensionMap;
12
+ getLowestResLOD(): number;
13
+ loadChunkData(chunk: Chunk, signal: AbortSignal): Promise<void>;
14
+ private validateXYScaleRatios;
15
+ private getAndValidateTimeDimension;
16
+ private getAndValidateChannelDimension;
17
+ }
18
+ //# sourceMappingURL=chunk_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk_store.d.ts","sourceRoot":"","sources":["../../../../src/core/chunk_store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAEjB,MAAM,eAAe,CAAC;AAGvB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,MAAM,EAAE,WAAW;IAsExB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE;IAI3C,YAAY,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM;IAM1D,IAAW,QAAQ,WAElB;IAED,IAAW,UAAU,uBAEpB;IAEM,eAAe,IAAI,MAAM;IAIzB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW;IAItD,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,8BAA8B;CA+BvC"}
@@ -0,0 +1,38 @@
1
+ import { Chunk, SliceCoordinates, ChunkViewState } from "../data/chunk";
2
+ import { ChunkStore } from "./chunk_store";
3
+ import { Viewport } from "./viewport";
4
+ import { ImageSourcePolicy } from "./image_source_policy";
5
+ export declare const INTERNAL_POLICY_KEY: unique symbol;
6
+ export declare class ChunkStoreView {
7
+ private readonly store_;
8
+ private policy_;
9
+ private policyChanged_;
10
+ private currentLOD_;
11
+ private lastViewBounds2D_;
12
+ private lastZBounds_?;
13
+ private lastTCoord_?;
14
+ private sourceMaxSquareDistance2D_;
15
+ private readonly chunkViewStates_;
16
+ constructor(store: ChunkStore, policy: ImageSourcePolicy);
17
+ get store(): ChunkStore;
18
+ get chunkViewStates(): ReadonlyMap<Chunk, ChunkViewState>;
19
+ getChunksToRender(sliceCoords: SliceCoordinates): Chunk[];
20
+ updateChunkStates(sliceCoords: SliceCoordinates, viewport: Viewport): void;
21
+ allVisibleLowestLODLoaded(sliceCoords: SliceCoordinates): boolean;
22
+ get currentLOD(): number;
23
+ maybeForgetChunk(chunk: Chunk): void;
24
+ setImageSourcePolicy(newPolicy: ImageSourcePolicy, key: symbol): void;
25
+ private setLOD;
26
+ private updateChunkViewStates;
27
+ private isChunkChannelInSlice;
28
+ private updateChunksAtTimeIndex;
29
+ private markTimeChunksForPrefetch;
30
+ private computePriority;
31
+ private isChunkWithinBounds;
32
+ private getZBounds;
33
+ private viewBounds2DChanged;
34
+ private zBoundsChanged;
35
+ private getPaddedBounds;
36
+ private squareDistance2D;
37
+ }
38
+ //# sourceMappingURL=chunk_store_view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk_store_view.d.ts","sourceRoot":"","sources":["../../../../src/core/chunk_store_view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAa1D,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AAEjE,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,WAAW,CAAC,CAAS;IAE7B,OAAO,CAAC,0BAA0B,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;gBAE9D,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB;IAkBxD,IAAW,KAAK,IAAI,UAAU,CAE7B;IAED,IAAW,eAAe,IAAI,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAE/D;IAEM,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,GAAG,KAAK,EAAE;IA0BzD,iBAAiB,CACtB,WAAW,EAAE,gBAAgB,EAC7B,QAAQ,EAAE,QAAQ,GACjB,IAAI;IAoCA,yBAAyB,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO;IAYxE,IAAW,UAAU,IAAI,MAAM,CAE9B;IAEM,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAWpC,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM;IAiBrE,OAAO,CAAC,MAAM;IA4Bd,OAAO,CAAC,qBAAqB;IA6C7B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,uBAAuB;IA6C/B,OAAO,CAAC,yBAAyB;IAoCjC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,gBAAgB;CASzB"}
@@ -1,6 +1,7 @@
1
1
  import { IdetikContext } from "../idetik";
2
2
  import { RenderableObject } from "./renderable_object";
3
3
  import { EventContext } from "./event_dispatcher";
4
+ import { Viewport } from "./viewport";
4
5
  export type LayerState = "initialized" | "loading" | "ready";
5
6
  export type blendMode = "normal" | "additive" | "subtractive" | "multiply";
6
7
  type StateChangeCallback = (newState: LayerState, prevState?: LayerState) => void;
@@ -9,6 +10,9 @@ export interface LayerOptions {
9
10
  opacity?: number;
10
11
  blendMode?: blendMode;
11
12
  }
13
+ export type RenderContext = {
14
+ viewport: Viewport;
15
+ };
12
16
  export declare abstract class Layer {
13
17
  abstract readonly type: string;
14
18
  private objects_;
@@ -20,10 +24,10 @@ export declare abstract class Layer {
20
24
  constructor({ transparent, opacity, blendMode, }?: LayerOptions);
21
25
  get opacity(): number;
22
26
  set opacity(value: number);
23
- abstract update(): void;
27
+ abstract update(context?: RenderContext): void;
24
28
  onEvent(_: EventContext): void;
25
29
  onAttached(_context: IdetikContext): Promise<void>;
26
- onDetached(): void;
30
+ onDetached(_context: IdetikContext): void;
27
31
  get objects(): RenderableObject[];
28
32
  get state(): LayerState;
29
33
  addStateChangeCallback(callback: StateChangeCallback): void;
@@ -1 +1 @@
1
- {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../../../src/core/layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAE3E,KAAK,mBAAmB,GAAG,CACzB,QAAQ,EAAE,UAAU,EACpB,SAAS,CAAC,EAAE,UAAU,KACnB,IAAI,CAAC;AAEV,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,8BAAsB,KAAK;IACzB,kBAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAEjD,WAAW,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAS;IAClB,SAAS,EAAE,SAAS,CAAC;gBAEhB,EACV,WAAmB,EACnB,OAAa,EACb,SAAoB,GACrB,GAAE,YAAiB;IAYpB,IAAW,OAAO,IAIQ,MAAM,CAF/B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAQ/B;aAEe,MAAM,IAAI,IAAI;IAEvB,OAAO,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAMxB,UAAU,CAAC,QAAQ,EAAE,aAAa;IAExC,UAAU,IAAI,IAAI;IAEzB,IAAW,OAAO,uBAEjB;IAED,IAAW,KAAK,eAEf;IAEM,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB;IAIpD,yBAAyB,CAAC,QAAQ,EAAE,mBAAmB;IAQ9D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU;IAMvC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB;IAI5C,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB;IAO/C,SAAS,CAAC,YAAY;CAGvB"}
1
+ {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../../../src/core/layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAE3E,KAAK,mBAAmB,GAAG,CACzB,QAAQ,EAAE,UAAU,EACpB,SAAS,CAAC,EAAE,UAAU,KACnB,IAAI,CAAC;AAEV,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,8BAAsB,KAAK;IACzB,kBAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAEjD,WAAW,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAS;IAClB,SAAS,EAAE,SAAS,CAAC;gBAEhB,EACV,WAAmB,EACnB,OAAa,EACb,SAAoB,GACrB,GAAE,YAAiB;IAYpB,IAAW,OAAO,IAIQ,MAAM,CAF/B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAQ/B;aAEe,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAE9C,OAAO,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAMxB,UAAU,CAAC,QAAQ,EAAE,aAAa;IAExC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAEhD,IAAW,OAAO,uBAEjB;IAED,IAAW,KAAK,eAEf;IAEM,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB;IAIpD,yBAAyB,CAAC,QAAQ,EAAE,mBAAmB;IAQ9D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU;IAMvC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB;IAI5C,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB;IAO/C,SAAS,CAAC,YAAY;CAGvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"layer_manager.d.ts","sourceRoot":"","sources":["../../../../src/core/layer_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAAyB;IAE3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,OAAO,EAAE,aAAa;IAI3B,eAAe,IAAI;QACxB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,WAAW,EAAE,KAAK,EAAE,CAAC;KACtB;IAeM,GAAG,CAAC,KAAK,EAAE,KAAK;IAQhB,MAAM,CAAC,KAAK,EAAE,KAAK;IAQnB,aAAa,CAAC,KAAK,EAAE,MAAM;IAS3B,SAAS;IAQhB,IAAW,MAAM,IAAI,SAAS,KAAK,EAAE,CAEpC;IAED,OAAO,CAAC,mBAAmB;IAMpB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAOzD,0BAA0B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;CAO9D"}
1
+ {"version":3,"file":"layer_manager.d.ts","sourceRoot":"","sources":["../../../../src/core/layer_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAAyB;IAE3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,OAAO,EAAE,aAAa;IAI3B,eAAe,IAAI;QACxB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,WAAW,EAAE,KAAK,EAAE,CAAC;KACtB;IAeM,GAAG,CAAC,KAAK,EAAE,KAAK;IAMhB,MAAM,CAAC,KAAK,EAAE,KAAK;IAQnB,aAAa,CAAC,KAAK,EAAE,MAAM;IAS3B,SAAS;IAQhB,IAAW,MAAM,IAAI,SAAS,KAAK,EAAE,CAEpC;IAED,OAAO,CAAC,mBAAmB;IAMpB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAOzD,0BAA0B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;CAO9D"}
@@ -5,14 +5,16 @@ declare const chunkDataTypes: readonly [Int8ArrayConstructor, Int16ArrayConstruc
5
5
  export type ChunkDataConstructor = (typeof chunkDataTypes)[number];
6
6
  export type ChunkData = InstanceType<ChunkDataConstructor>;
7
7
  export declare function isChunkData(value: unknown): value is ChunkData;
8
- export type Chunk = {
9
- data?: ChunkData;
10
- state: "unloaded" | "queued" | "loading" | "loaded";
11
- lod: number;
8
+ export type ChunkViewState = {
12
9
  visible: boolean;
13
10
  prefetch: boolean;
14
11
  priority: number | null;
15
12
  orderKey: number | null;
13
+ };
14
+ export type Chunk = {
15
+ data?: ChunkData;
16
+ state: "unloaded" | "queued" | "loading" | "loaded";
17
+ lod: number;
16
18
  shape: {
17
19
  x: number;
18
20
  y: number;
@@ -37,7 +39,7 @@ export type Chunk = {
37
39
  y: number;
38
40
  z: number;
39
41
  };
40
- };
42
+ } & ChunkViewState;
41
43
  export type SourceDimensionMap = {
42
44
  x: SourceDimension;
43
45
  y: SourceDimension;
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../../../src/data/chunk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../../../src/data/chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,QAAA,MAAM,cAAc,+KAQV,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAE3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAU9D;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,iBAAiB,EAAE,yBAAyB,CAAC;IAC7C,UAAU,EAAE;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,KAAK,EAAE;QACL,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,MAAM,EAAE;QACN,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH,GAAG,cAAc,CAAC;AAInB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,EAAE,eAAe,CAAC;IACnB,CAAC,CAAC,EAAE,eAAe,CAAC;IACpB,CAAC,CAAC,EAAE,eAAe,CAAC;IACpB,CAAC,CAAC,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B,CAAC;AAMF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IACvC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,CACR,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;IAElB,qBAAqB,IAAI,kBAAkB,CAAC;IAE5C,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE,aAAa,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,kBAAkB,EACvB,KAAK,EAAE,MAAM,GACZ,MAAM,CAGR"}
@@ -1 +1 @@
1
- {"version":3,"file":"idetik.d.ts","sourceRoot":"","sources":["../../../src/idetik.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAEL,QAAQ,EACR,cAAc,EACf,MAAM,iBAAiB,CAAC;AAGzB,KAAK,OAAO,GAAG;IACb,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,CAAC,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,qBAAa,MAAM;IACjB,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAC1C,SAAgB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;gBACS,MAAM,EAAE,YAAY;IAgChC,IAAW,eAAe,WAEzB;IAED,IAAW,KAAK,WAEf;IAED,IAAW,MAAM,WAEhB;IAED,IAAW,WAAW;;;MAErB;IAED,IAAW,SAAS,IAAI,SAAS,QAAQ,EAAE,CAE1C;IAEM,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7C,KAAK;IAcZ,OAAO,CAAC,OAAO;IA4BR,IAAI;IAcX,OAAO,CAAC,UAAU;CAMnB"}
1
+ {"version":3,"file":"idetik.d.ts","sourceRoot":"","sources":["../../../src/idetik.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAEL,QAAQ,EACR,cAAc,EACf,MAAM,iBAAiB,CAAC;AAGzB,KAAK,OAAO,GAAG;IACb,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,CAAC,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,qBAAa,MAAM;IACjB,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAC1C,SAAgB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;gBACS,MAAM,EAAE,YAAY;IAgChC,IAAW,eAAe,WAEzB;IAED,IAAW,KAAK,WAEf;IAED,IAAW,MAAM,WAEhB;IAED,IAAW,WAAW;;;MAErB;IAED,IAAW,SAAS,IAAI,SAAS,QAAQ,EAAE,CAE1C;IAEM,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7C,KAAK;IAcZ,OAAO,CAAC,OAAO;IAwBR,IAAI;IAcX,OAAO,CAAC,UAAU;CAMnB"}
@@ -1,7 +1,7 @@
1
- import { Layer, LayerOptions } from "../core/layer";
2
- import { IdetikContext } from "../idetik";
1
+ import { Layer, LayerOptions, RenderContext } from "../core/layer";
2
+ import type { IdetikContext } from "../idetik";
3
3
  import { Chunk, ChunkSource, SliceCoordinates } from "../data/chunk";
4
- import { ChunkManagerSource } from "../core/chunk_manager_source";
4
+ import { ChunkStoreView } from "../core/chunk_store_view";
5
5
  import { ImageSourcePolicy } from "../core/image_source_policy";
6
6
  import { ChannelProps, ChannelsEnabled } from "../objects/textures/channel";
7
7
  import { EventContext } from "../core/event_dispatcher";
@@ -25,7 +25,7 @@ export declare class ChunkedImageLayer extends Layer implements ChannelsEnabled
25
25
  private readonly channelChangeCallbacks_;
26
26
  private policy_;
27
27
  private channelProps_?;
28
- private chunkManagerSource_?;
28
+ private chunkStoreView_?;
29
29
  private pointerDownPos_;
30
30
  private zPrevPointWorld_?;
31
31
  private debugMode_;
@@ -35,14 +35,15 @@ export declare class ChunkedImageLayer extends Layer implements ChannelsEnabled
35
35
  private readonly wireframeColors_;
36
36
  constructor({ source, sliceCoords, policy, channelProps, onPickValue, ...layerOptions }: ChunkedImageLayerProps);
37
37
  onAttached(context: IdetikContext): Promise<void>;
38
- onDetached(): void;
39
- update(): void;
38
+ onDetached(context: IdetikContext): void;
39
+ update(context?: RenderContext): void;
40
40
  private updateChunks;
41
41
  get lastPresentationTimeCoord(): number | undefined;
42
42
  private isPresentationStale;
43
43
  private resliceIfZChanged;
44
44
  onEvent(event: EventContext): void;
45
- get chunkManagerSource(): ChunkManagerSource | undefined;
45
+ get chunkStoreView(): ChunkStoreView | undefined;
46
+ get sliceCoords(): SliceCoordinates;
46
47
  get source(): ChunkSource;
47
48
  get imageSourcePolicy(): Readonly<ImageSourcePolicy>;
48
49
  set imageSourcePolicy(newPolicy: ImageSourcePolicy);
@@ -1 +1 @@
1
- {"version":3,"file":"chunked_image_layer.d.ts","sourceRoot":"","sources":["../../../../src/layers/chunked_image_layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chunked_image_layer.d.ts","sourceRoot":"","sources":["../../../../src/layers/chunked_image_layer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgl_renderer.d.ts","sourceRoot":"","sources":["../../../../src/renderers/webgl_renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAKtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAiBnD,qBAAa,aAAc,SAAQ,QAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,wBAAwB,CAAK;gBAEzB,MAAM,EAAE,iBAAiB;IAsB9B,MAAM,CAAC,QAAQ,EAAE,QAAQ;IA8ChC,IAAW,WAAW;;;MAErB;IAED,OAAO,CAAC,WAAW;IAWnB,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA4BxE,OAAO,CAAC,YAAY;IAkDpB,OAAO,CAAC,cAAc;IAetB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQ9C,SAAS,CAAC,KAAK;IAOf,OAAO,KAAK,EAAE,GAEb;CACF"}
1
+ {"version":3,"file":"webgl_renderer.d.ts","sourceRoot":"","sources":["../../../../src/renderers/webgl_renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAKtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAiBnD,qBAAa,aAAc,SAAQ,QAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,wBAAwB,CAAK;gBAEzB,MAAM,EAAE,iBAAiB;IAsB9B,MAAM,CAAC,QAAQ,EAAE,QAAQ;IA+ChC,IAAW,WAAW;;;MAErB;IAED,OAAO,CAAC,WAAW;IAWnB,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA4BxE,OAAO,CAAC,YAAY;IAkDpB,OAAO,CAAC,cAAc;IAetB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQ9C,SAAS,CAAC,KAAK;IAOf,OAAO,KAAK,EAAE,GAEb;CACF"}
@@ -1,5 +1,5 @@
1
1
  type LogLevel = "info" | "warn" | "error" | "debug";
2
- type Module = "Channel" | "Chunk" | "ChunkManager" | "ChunkManagerSource" | "ChunkQueue" | "ChunkedImageLayer" | "EventDispatcher" | "Idetik" | "ImageLayer" | "ImageSeriesLoader" | "LabelImageLayer" | "Layer" | "PixelSizeObserver" | "RenderablePool" | "Viewport" | "VolumeLayer" | "WebGLRenderer" | "WebGLShaderProgram" | "WebGLTexture" | "WireframeGeometry" | "ZarrWorker";
2
+ type Module = "Channel" | "Chunk" | "ChunkManager" | "ChunkManagerSource" | "ChunkQueue" | "ChunkStore" | "ChunkStoreView" | "ChunkedImageLayer" | "EventDispatcher" | "Idetik" | "ImageLayer" | "ImageSeriesLoader" | "LabelImageLayer" | "Layer" | "PixelSizeObserver" | "RenderablePool" | "Viewport" | "VolumeLayer" | "WebGLRenderer" | "WebGLShaderProgram" | "WebGLTexture" | "WireframeGeometry" | "ZarrWorker";
3
3
  export declare function getMode(): "production" | "development" | "test";
4
4
  export declare class Logger {
5
5
  private static logLevel_;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/utilities/logger.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAiBpD,KAAK,MAAM,GACP,SAAS,GACT,OAAO,GACP,cAAc,GACd,oBAAoB,GACpB,YAAY,GACZ,mBAAmB,GACnB,iBAAiB,GACjB,QAAQ,GACR,YAAY,GACZ,mBAAmB,GACnB,iBAAiB,GACjB,OAAO,GACP,mBAAmB,GACnB,gBAAgB,GAChB,UAAU,GACV,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,cAAc,GACd,mBAAmB,GACnB,YAAY,CAAC;AAEjB,wBAAgB,OAAO,IAAI,YAAY,GAAG,aAAa,GAAG,MAAM,CA2B/D;AACD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,SAAS,CACwB;WAElC,WAAW,CAAC,KAAK,EAAE,QAAQ;WAI3B,KAAK,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,MAAM,EAAE,OAAO,EAAE;WAKR,IAAI,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,MAAM,EAAE,OAAO,EAAE;WAKR,IAAI,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,MAAM,EAAE,OAAO,EAAE;WAKR,KAAK,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,MAAM,EAAE,OAAO,EAAE;IAKtB,OAAO,CAAC,MAAM,CAAC,GAAG;CA4BnB"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/utilities/logger.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAiBpD,KAAK,MAAM,GACP,SAAS,GACT,OAAO,GACP,cAAc,GACd,oBAAoB,GACpB,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,QAAQ,GACR,YAAY,GACZ,mBAAmB,GACnB,iBAAiB,GACjB,OAAO,GACP,mBAAmB,GACnB,gBAAgB,GAChB,UAAU,GACV,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,cAAc,GACd,mBAAmB,GACnB,YAAY,CAAC;AAEjB,wBAAgB,OAAO,IAAI,YAAY,GAAG,aAAa,GAAG,MAAM,CA2B/D;AACD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,SAAS,CACwB;WAElC,WAAW,CAAC,KAAK,EAAE,QAAQ;WAI3B,KAAK,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,MAAM,EAAE,OAAO,EAAE;WAKR,IAAI,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,MAAM,EAAE,OAAO,EAAE;WAKR,IAAI,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,MAAM,EAAE,OAAO,EAAE;WAKR,KAAK,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,MAAM,EAAE,OAAO,EAAE;IAKtB,OAAO,CAAC,MAAM,CAAC,GAAG;CA4BnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idetik/core",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite",
@@ -1,49 +0,0 @@
1
- import { Chunk, SourceDimensionMap, ChunkLoader, SliceCoordinates } from "../data/chunk";
2
- import { ImageSourcePolicy } from "./image_source_policy";
3
- import { Box2 } from "../math/box2";
4
- export declare const INTERNAL_POLICY_KEY: unique symbol;
5
- export declare class ChunkManagerSource {
6
- private readonly chunks_;
7
- private readonly loader_;
8
- private readonly lowestResLOD_;
9
- private readonly sliceCoords_;
10
- private readonly dimensions_;
11
- private readonly tIndicesWithQueuedChunks_;
12
- private readonly sourceMaxSquareDistance2D_;
13
- private policy_;
14
- private policyChanged_;
15
- private currentLOD_;
16
- private lastViewBounds2D_;
17
- private lastZBounds_?;
18
- private lastTCoord_?;
19
- constructor(loader: ChunkLoader, sliceCoords: SliceCoordinates, policy: ImageSourcePolicy);
20
- getChunks(): Chunk[];
21
- getChunksAtCurrentTime(): Chunk[];
22
- private getCurrentTimeIndex;
23
- allVisibleLowestLODLoaded(): boolean;
24
- updateAndCollectChunkChanges(lodFactor: number, viewBounds2D: Box2): Chunk[];
25
- get lodCount(): number;
26
- get dimensions(): SourceDimensionMap;
27
- get currentLOD(): number;
28
- setImageSourcePolicy(newPolicy: ImageSourcePolicy, key: symbol): void;
29
- loadChunkData(chunk: Chunk, signal: AbortSignal): Promise<void>;
30
- private setLOD;
31
- private updateAndCollectChunkChangesForCurrentLod;
32
- private disposeStaleTimeChunks;
33
- private updateChunksAtTimeIndex;
34
- private markTimeChunksForPrefetch;
35
- private isChunkChannelInSlice;
36
- private shouldDispose;
37
- private disposeChunk;
38
- private computePriority;
39
- private validateXYScaleRatios;
40
- private getAndValidateTimeDimension;
41
- private getAndValidateChannelDimension;
42
- private isChunkWithinBounds;
43
- private getZBounds;
44
- private viewBounds2DChanged;
45
- private zBoundsChanged;
46
- private getPaddedBounds;
47
- private squareDistance2D;
48
- }
49
- //# sourceMappingURL=chunk_manager_source.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk_manager_source.d.ts","sourceRoot":"","sources":["../../../../src/core/chunk_manager_source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAEjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAYpC,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AAEjE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA0B;IACpE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAS;IACpD,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,WAAW,CAAC,CAAS;gBAG3B,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,iBAAiB;IAsFpB,SAAS,IAAI,KAAK,EAAE;IAwBpB,sBAAsB,IAAI,KAAK,EAAE;IAIxC,OAAO,CAAC,mBAAmB;IAMpB,yBAAyB,IAAI,OAAO;IAMpC,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI;IAsBzE,IAAW,QAAQ,WAElB;IAED,IAAW,UAAU,uBAEpB;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAEM,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM;IAiB9D,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW;IAItD,OAAO,CAAC,MAAM;IA0Bd,OAAO,CAAC,yCAAyC;IAgDjD,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,uBAAuB;IA0D/B,OAAO,CAAC,yBAAyB;IAiCjC,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,8BAA8B;IAgCtC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,gBAAgB;CASzB"}