Skip to content

Class: ImageLayer

Defined in: src/display/ImageLayer.ts:28

ImageLayer handles retrieving 2D slices from a VolStack and drawing them in a single container, each with a GPU transform so they align visually to the reference slice.

Implements

Constructors

Constructor

ts
new ImageLayer(volStack, alignmentOptions?): ImageLayer;

Defined in: src/display/ImageLayer.ts:50

Parameters

volStack

VolStack

alignmentOptions?

AlignmentManagerOptions

Returns

ImageLayer

Properties

neuroSpace

ts
neuroSpace: NeuroSpace;

Defined in: src/display/ImageLayer.ts:29

The NeuroSpace associated with the layer. Ensures spatial coherence with other layers in the viewer.

Implementation of

SliceLayer.neuroSpace


opacity

ts
opacity: number = 1;

Defined in: src/display/ImageLayer.ts:48

Methods

initialize()

ts
initialize(): void;

Defined in: src/display/ImageLayer.ts:104

Initializes the layer, loading any necessary data or resources. This method is called once when the layer is added to the SliceViewer. It can perform asynchronous operations if needed.

Returns

void

Implementation of

SliceLayer.initialize


addVolLayer()

ts
addVolLayer(volLayer): void;

Defined in: src/display/ImageLayer.ts:108

Parameters

volLayer

VolLayer

Returns

void


removeVolLayer()

ts
removeVolLayer(volLayer): void;

Defined in: src/display/ImageLayer.ts:114

Parameters

volLayer

VolLayer

Returns

void


createSprite()

ts
createSprite(imageData, cacheKey): Sprite;

Defined in: src/display/ImageLayer.ts:125

Creates a PIXI.Sprite from ImageData by drawing onto a Canvas, then returning a Sprite. Uses TextureMemoryConsumer for intelligent caching and memory management. Uses sprite pool to reduce garbage collection pressure.

Parameters

imageData

ImageData

cacheKey

string

Returns

Sprite


renderSlice()

ts
renderSlice(
   sliceIndex, 
   coord, 
   viewAxes, 
   parentContainer): Container | null;

Defined in: src/display/ImageLayer.ts:187

The crucial method: for each VolLayer, we get the slice, create a sprite, then call alignSpriteToReference(...) to position/scale it.

Parameters

sliceIndex

number

coord

number[]

viewAxes

AxisSet3D

parentContainer

Container

Returns

Container | null

Implementation of

SliceLayer.renderSlice


releaseContainer()

ts
releaseContainer(container): void;

Defined in: src/display/ImageLayer.ts:322

Releases a container and its sprites back to the pool

Parameters

container

Container

The container to release

Returns

void


setPosition()

ts
setPosition(coord): void;

Defined in: src/display/ImageLayer.ts:350

Updates the layer's state based on the new volume coordinates. This method is called whenever the SliceViewer's position changes, ensuring that the layer remains in sync with the current view.

Parameters

coord

number[]

The new volume coordinates [x, y, z].

Returns

void

Implementation of

SliceLayer.setPosition


onPointerMove()

ts
onPointerMove(e): boolean;

Defined in: src/display/ImageLayer.ts:354

Handles pointer (mouse or touch) move events. Layers can implement this method to provide interactive behaviors, such as displaying tooltips or highlighting regions.

Parameters

e

SlicePointerEvent

Returns

boolean

A boolean indicating whether the event has been fully handled. If true, the event propagation stops, preventing other layers from handling it.

Implementation of

SliceLayer.onPointerMove


onPointerDown()

ts
onPointerDown(e): boolean;

Defined in: src/display/ImageLayer.ts:357

Handles pointer (mouse or touch) down events. Layers can implement this method to provide interactive behaviors, such as selecting regions or initiating drag operations.

Parameters

e

SlicePointerEvent

Returns

boolean

A boolean indicating whether the event has been fully handled. If true, the event propagation stops, preventing other layers from handling it.

Implementation of

SliceLayer.onPointerDown


dispose()

ts
dispose(): void;

Defined in: src/display/ImageLayer.ts:360

Disposes of the layer, cleaning up any resources or event listeners. This method is called when the layer is removed from the SliceViewer or when the SliceViewer itself is disposed.

Returns

void

Implementation of

SliceLayer.dispose


getVolStack()

ts
getVolStack(): VolStack;

Defined in: src/display/ImageLayer.ts:386

Returns

VolStack


getLayer()

ts
getLayer(index): VolLayer;

Defined in: src/display/ImageLayer.ts:389

Parameters

index

number

Returns

VolLayer


getLayerIds()

ts
getLayerIds(): string[];

Defined in: src/display/ImageLayer.ts:392

Returns

string[]


updateLayer()

ts
updateLayer(layerId, params): void;

Defined in: src/display/ImageLayer.ts:396

Parameters

layerId

string

params

LayerUpdateParams

Returns

void


replaceVolume()

ts
replaceVolume(
   layerId, 
   newVolume, 
   opts?): void;

Defined in: src/display/ImageLayer.ts:419

Replace the underlying volume data for a specific layer without changing its id. Useful for fast overlay updates (e.g., sigma changes) without add/remove churn.

Parameters

layerId

string

newVolume

NeuroVol

opts?
range?

[number, number] | null

threshold?

[number, number]

alpha?

number

colormap?

ColorMap

Returns

void


update()

ts
update(params): void;

Defined in: src/display/ImageLayer.ts:438

Optional method to handle layer-specific updates.

Parameters

params

ViewerUpdateParams

Returns

void

Implementation of

SliceLayer.update


getValidSliceRange()

ts
getValidSliceRange(axis): [number, number];

Defined in: src/display/ImageLayer.ts:452

Get valid slice range for a given axis

Parameters

axis

AxisSet3D

Returns

[number, number]


validateSliceAccess()

ts
validateSliceAccess(sliceIndex, axis): SliceAccessResult;

Defined in: src/display/ImageLayer.ts:459

Validate slice access and get adjusted indices

Parameters

sliceIndex

number

axis

AxisSet3D

Returns

SliceAccessResult


getSafeSliceIndices()

ts
getSafeSliceIndices(axis, count?): number[];

Defined in: src/display/ImageLayer.ts:466

Get safe slice indices for testing

Parameters

axis

AxisSet3D

count?

number = 3

Returns

number[]


setSliceAccessConfig()

ts
setSliceAccessConfig(config): void;

Defined in: src/display/ImageLayer.ts:473

Set slice access configuration

Parameters

config

Partial<SliceAccessConfig>

Returns

void


getSliceAccessConfig()

ts
getSliceAccessConfig(): SliceAccessConfig;

Defined in: src/display/ImageLayer.ts:481

Get current slice access configuration

Returns

SliceAccessConfig


getPoolStats()

ts
getPoolStats(): object;

Defined in: src/display/ImageLayer.ts:494

Gets pool statistics for monitoring performance

Returns

object

spritePool
ts
spritePool: object;
spritePool.poolSize
ts
poolSize: number;
spritePool.activeCount
ts
activeCount: number;
spritePool.createCount
ts
createCount: number;
spritePool.reuseCount
ts
reuseCount: number;
spritePool.reuseRatio
ts
reuseRatio: number;
containerPool
ts
containerPool: object;
containerPool.poolSize
ts
poolSize: number;
containerPool.activeCount
ts
activeCount: number;
containerPool.createCount
ts
createCount: number;
containerPool.reuseCount
ts
reuseCount: number;
containerPool.reuseRatio
ts
reuseRatio: number;

setAlignmentOptions()

ts
setAlignmentOptions(options): void;

Defined in: src/display/ImageLayer.ts:507

Set alignment options

Parameters

options

Partial<AlignmentManagerOptions>

Returns

void


getAlignmentOptions()

ts
getAlignmentOptions(): AlignmentManagerOptions;

Defined in: src/display/ImageLayer.ts:515

Get current alignment options

Returns

AlignmentManagerOptions


setAlignmentStrategy()

ts
setAlignmentStrategy(strategy): void;

Defined in: src/display/ImageLayer.ts:522

Set alignment strategy

Parameters

strategy

AlignmentStrategyType

Returns

void


getAlignmentCacheStats()

ts
getAlignmentCacheStats(): object;

Defined in: src/display/ImageLayer.ts:530

Get alignment cache statistics

Returns

object

size
ts
size: number;
enabled
ts
enabled: boolean;

clearAlignmentCache()

ts
clearAlignmentCache(): void;

Defined in: src/display/ImageLayer.ts:537

Clear alignment cache

Returns

void


getTextureMemoryStats()

ts
getTextureMemoryStats(): object;

Defined in: src/display/ImageLayer.ts:544

Get texture memory statistics

Returns

object

count
ts
count: number;
size
ts
size: number;
maxSize
ts
maxSize: number;
usage
ts
usage: number;

setTextureCacheSize()

ts
setTextureCacheSize(bytes): void;

Defined in: src/display/ImageLayer.ts:556

Set maximum texture cache size

Parameters

bytes

number

Returns

void


getMemoryStats()

ts
getMemoryStats(): object;

Defined in: src/display/ImageLayer.ts:563

Get combined memory statistics

Returns

object

textureMemory
ts
textureMemory: object;
textureMemory.count
ts
count: number;
textureMemory.size
ts
size: number;
textureMemory.maxSize
ts
maxSize: number;
textureMemory.usage
ts
usage: number;
pools
ts
pools: object;
pools.spritePool
ts
spritePool: object;
pools.spritePool.poolSize
ts
poolSize: number;
pools.spritePool.activeCount
ts
activeCount: number;
pools.spritePool.createCount
ts
createCount: number;
pools.spritePool.reuseCount
ts
reuseCount: number;
pools.spritePool.reuseRatio
ts
reuseRatio: number;
pools.containerPool
ts
containerPool: object;
pools.containerPool.poolSize
ts
poolSize: number;
pools.containerPool.activeCount
ts
activeCount: number;
pools.containerPool.createCount
ts
createCount: number;
pools.containerPool.reuseCount
ts
reuseCount: number;
pools.containerPool.reuseRatio
ts
reuseRatio: number;
alignment
ts
alignment: object;
alignment.size
ts
size: number;
alignment.enabled
ts
enabled: boolean;

Released under the MIT License.