Class: ImageLayer
Defined in: src/display/ImageLayer.ts:35
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
new ImageLayer(volStack, alignmentOptions?): ImageLayer;Defined in: src/display/ImageLayer.ts:60
Parameters
volStack
alignmentOptions?
Returns
ImageLayer
Properties
neuroSpace
neuroSpace: NeuroSpace;Defined in: src/display/ImageLayer.ts:36
The NeuroSpace associated with the layer. Ensures spatial coherence with other layers in the viewer.
Implementation of
opacity
opacity: number = 1;Defined in: src/display/ImageLayer.ts:58
Methods
initialize()
initialize(): void;Defined in: src/display/ImageLayer.ts:117
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
addVolLayer()
addVolLayer(volLayer): void;Defined in: src/display/ImageLayer.ts:121
Parameters
volLayer
Returns
void
removeVolLayer()
removeVolLayer(volLayer): void;Defined in: src/display/ImageLayer.ts:127
Parameters
volLayer
Returns
void
createSprite()
createSprite(
imageData,
cacheKey,
scaleMode?): Sprite;Defined in: src/display/ImageLayer.ts:138
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
scaleMode?
"nearest" | "linear"
Returns
Sprite
renderSlice()
renderSlice(
sliceIndex,
coord,
viewAxes,
parentContainer): Container<ContainerChild> | null;Defined in: src/display/ImageLayer.ts:205
The crucial method: for each VolLayer, we get the slice, create a sprite, and position/scale it in image-content space (the reference slice's grid).
Layer 0 is the reference: it fixes the slice index, image-content space, crosshair and navigation. A layer on the reference grid shares its transform. With the 'world' alignment strategy, a layer on any other grid whose axes are parallel to the reference's (e.g. a 2 mm statistical map over a 1 mm template) is sliced on its own grid at the plane nearest the reference plane and drawn at its true world position; it is omitted where the reference plane lies outside its slab. Other layers, and every layer under the remaining strategies, use the heuristic alignment strategies.
Parameters
sliceIndex
number
coord
number[]
viewAxes
parentContainer
Container
Returns
Container<ContainerChild> | null
Implementation of
releaseContainer()
releaseContainer(container): void;Defined in: src/display/ImageLayer.ts:412
Releases a container and its sprites back to the pool
Parameters
container
Container
The container to release
Returns
void
setPosition()
setPosition(coord): void;Defined in: src/display/ImageLayer.ts:440
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
onPointerMove()
onPointerMove(e): boolean;Defined in: src/display/ImageLayer.ts:444
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
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
onPointerDown()
onPointerDown(e): boolean;Defined in: src/display/ImageLayer.ts:447
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
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
dispose()
dispose(): void;Defined in: src/display/ImageLayer.ts:450
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
getVolStack()
getVolStack(): VolStack;Defined in: src/display/ImageLayer.ts:476
Returns
getLayer()
getLayer(index): VolLayer;Defined in: src/display/ImageLayer.ts:479
Parameters
index
number
Returns
getLayerIds()
getLayerIds(): string[];Defined in: src/display/ImageLayer.ts:482
Returns
string[]
updateLayer()
updateLayer(layerId, params): void;Defined in: src/display/ImageLayer.ts:486
Parameters
layerId
string
params
Returns
void
replaceVolume()
replaceVolume(
layerId,
newVolume,
opts?): void;Defined in: src/display/ImageLayer.ts:509
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
opts?
range?
[number, number] | null
threshold?
[number, number]
alpha?
number
colormap?
Returns
void
update()
update(params): void;Defined in: src/display/ImageLayer.ts:528
Optional method to handle layer-specific updates.
Parameters
params
Returns
void
Implementation of
getValidSliceRange()
getValidSliceRange(axis): [number, number];Defined in: src/display/ImageLayer.ts:542
Get valid slice range for a given axis
Parameters
axis
Returns
[number, number]
validateSliceAccess()
validateSliceAccess(sliceIndex, axis): SliceAccessResult;Defined in: src/display/ImageLayer.ts:549
Validate slice access and get adjusted indices
Parameters
sliceIndex
number
axis
Returns
getSafeSliceIndices()
getSafeSliceIndices(axis, count?): number[];Defined in: src/display/ImageLayer.ts:556
Get safe slice indices for testing
Parameters
axis
count?
number = 3
Returns
number[]
setSliceAccessConfig()
setSliceAccessConfig(config): void;Defined in: src/display/ImageLayer.ts:563
Set slice access configuration
Parameters
config
Partial<SliceAccessConfig>
Returns
void
getSliceAccessConfig()
getSliceAccessConfig(): SliceAccessConfig;Defined in: src/display/ImageLayer.ts:571
Get current slice access configuration
Returns
getPoolStats()
getPoolStats(): object;Defined in: src/display/ImageLayer.ts:584
Gets pool statistics for monitoring performance
Returns
object
spritePool
spritePool: object;spritePool.poolSize
poolSize: number;spritePool.activeCount
activeCount: number;spritePool.createCount
createCount: number;spritePool.reuseCount
reuseCount: number;spritePool.reuseRatio
reuseRatio: number;containerPool
containerPool: object;containerPool.poolSize
poolSize: number;containerPool.activeCount
activeCount: number;containerPool.createCount
createCount: number;containerPool.reuseCount
reuseCount: number;containerPool.reuseRatio
reuseRatio: number;setAlignmentOptions()
setAlignmentOptions(options): void;Defined in: src/display/ImageLayer.ts:597
Set alignment options
Parameters
options
Partial<AlignmentManagerOptions>
Returns
void
getAlignmentOptions()
getAlignmentOptions(): AlignmentManagerOptions;Defined in: src/display/ImageLayer.ts:605
Get current alignment options
Returns
setAlignmentStrategy()
setAlignmentStrategy(strategy): void;Defined in: src/display/ImageLayer.ts:612
Set alignment strategy
Parameters
strategy
Returns
void
getAlignmentCacheStats()
getAlignmentCacheStats(): object;Defined in: src/display/ImageLayer.ts:620
Get alignment cache statistics
Returns
object
size
size: number;enabled
enabled: boolean;clearAlignmentCache()
clearAlignmentCache(): void;Defined in: src/display/ImageLayer.ts:627
Clear alignment cache
Returns
void
getTextureMemoryStats()
getTextureMemoryStats(): object;Defined in: src/display/ImageLayer.ts:634
Get texture memory statistics
Returns
object
count
count: number;size
size: number;maxSize
maxSize: number;usage
usage: number;setTextureCacheSize()
setTextureCacheSize(bytes): void;Defined in: src/display/ImageLayer.ts:646
Set maximum texture cache size
Parameters
bytes
number
Returns
void
getMemoryStats()
getMemoryStats(): object;Defined in: src/display/ImageLayer.ts:653
Get combined memory statistics
Returns
object
textureMemory
textureMemory: object;textureMemory.count
count: number;textureMemory.size
size: number;textureMemory.maxSize
maxSize: number;textureMemory.usage
usage: number;pools
pools: object;pools.spritePool
spritePool: object;pools.spritePool.poolSize
poolSize: number;pools.spritePool.activeCount
activeCount: number;pools.spritePool.createCount
createCount: number;pools.spritePool.reuseCount
reuseCount: number;pools.spritePool.reuseRatio
reuseRatio: number;pools.containerPool
containerPool: object;pools.containerPool.poolSize
poolSize: number;pools.containerPool.activeCount
activeCount: number;pools.containerPool.createCount
createCount: number;pools.containerPool.reuseCount
reuseCount: number;pools.containerPool.reuseRatio
reuseRatio: number;alignment
alignment: object;alignment.size
size: number;alignment.enabled
enabled: boolean;