Skip to content

Class: VolumeProjectionLayer ​

Defined in: layers.ts:1090

GPU volume-to-surface projection layer.

In GPU compositing mode, this layer is evaluated in the vertex shader by sampling a 3D texture (WebGL2 required). In CPU mode, this layer falls back to a per-vertex lookup and colormap on the CPU.

Extends ​

Constructors ​

Constructor ​

ts
new VolumeProjectionLayer(
   id, 
   volumeData, 
   dims, 
   config?
): VolumeProjectionLayer;

Defined in: layers.ts:1117

Parameters ​

id ​

string

volumeData ​

Float32Array<ArrayBufferLike> | number[]

dims ​

[number, number, number]

config? ​

VolumeProjectionLayerConfig = {}

Returns ​

VolumeProjectionLayer

Overrides ​

Layer.constructor

Properties ​

id ​

ts
id: string;

Defined in: layers.ts:294

Inherited from ​

Layer.id


visible ​

ts
visible: boolean;

Defined in: layers.ts:295

Inherited from ​

Layer.visible


opacity ​

ts
opacity: number;

Defined in: layers.ts:296

Inherited from ​

Layer.opacity


blendMode ​

ts
blendMode: BlendMode;

Defined in: layers.ts:297

Inherited from ​

Layer.blendMode


needsUpdate ​

ts
needsUpdate: boolean;

Defined in: layers.ts:298

Inherited from ​

Layer.needsUpdate


_onChangeCallback ​

ts
_onChangeCallback: ((changes) => void) | null;

Defined in: layers.ts:300

Callback set by the parent surface to propagate observable layer changes.

Inherited from ​

Layer._onChangeCallback

Accessors ​

order ​

Get Signature ​

ts
get order(): number;

Defined in: layers.ts:343

Numeric initialization hint used when this layer first enters a stack. Runtime ordering is owned exclusively by LayerStack.

Deprecated ​

Use LayerStack.setLayerOrder() or LayerStack.moveLayer() after the layer has been added. Runtime writes are ignored.

Returns ​

number

Set Signature ​

ts
set order(order): void;

Defined in: layers.ts:347

Parameters ​
order ​

number

Returns ​

void

Inherited from ​

ParcelConnectivityLayer.order

Methods ​

getOrderConstraints() ​

ts
getOrderConstraints(): LayerOrderConstraints;

Defined in: layers.ts:361

Returns ​

LayerOrderConstraints

Inherited from ​

Layer.getOrderConstraints


getPresentation() ​

ts
getPresentation(): LayerPresentation;

Defined in: layers.ts:365

Returns ​

LayerPresentation

Inherited from ​

Layer.getPresentation


setPresentation() ​

ts
setPresentation(presentation): void;

Defined in: layers.ts:369

Parameters ​

presentation ​

Partial<LayerPresentation>

Returns ​

void

Inherited from ​

Layer.setPresentation


getDataSummary() ​

ts
getDataSummary(_options?): LayerDataSummary | null;

Defined in: layers.ts:377

Scalar layers override this without exposing their underlying arrays.

Parameters ​

_options? ​

LayerDataSummaryOptions = {}

Returns ​

LayerDataSummary | null

Inherited from ​

Layer.getDataSummary


setVisible() ​

ts
setVisible(visible): void;

Defined in: layers.ts:432

Parameters ​

visible ​

boolean

Returns ​

void

Inherited from ​

Layer.setVisible


setOpacity() ​

ts
setOpacity(opacity): void;

Defined in: layers.ts:439

Parameters ​

opacity ​

number

Returns ​

void

Inherited from ​

Layer.setOpacity


setBlendMode() ​

ts
setBlendMode(mode): void;

Defined in: layers.ts:447

Parameters ​

mode ​

BlendMode

Returns ​

void

Inherited from ​

Layer.setBlendMode


fromConfig() ​

ts
static fromConfig(config): Layer;

Defined in: layers.ts:501

Backward-compatible throwing factory. The package entry point installs the same explicit registry exposed by createLayerFromConfig.

Parameters ​

config ​

unknown

Returns ​

Layer

Inherited from ​

Layer.fromConfig


attach() ​

ts
attach(surface): void;

Defined in: layers.ts:1165

Attach to a surface to enable CPU fallback sampling. Called by MultiLayerNeuroSurface when the layer is added.

Parameters ​

surface ​
geometry ​

{ vertices: Float32Array; }

geometry.vertices ​

Float32Array

mesh? ​

Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, | Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>

Returns ​

void


detach() ​

ts
detach(): void;

Defined in: layers.ts:1170

Returns ​

void


getVolumeTexture() ​

ts
getVolumeTexture(): VolumeTexture3D;

Defined in: layers.ts:1174

Returns ​

VolumeTexture3D


getColormapTexture() ​

ts
getColormapTexture(): DataTexture;

Defined in: layers.ts:1178

Returns ​

DataTexture


getWorldToIJK() ​

ts
getWorldToIJK(): Matrix4;

Defined in: layers.ts:1182

Returns ​

Matrix4


getVolumeDims() ​

ts
getVolumeDims(): Vector3;

Defined in: layers.ts:1186

Returns ​

Vector3


getRange() ​

ts
getRange(): [number, number];

Defined in: layers.ts:1190

Returns ​

[number, number]


getThreshold() ​

ts
getThreshold(): [number, number];

Defined in: layers.ts:1194

Returns ​

[number, number]


getColorKeyRange() ​

ts
getColorKeyRange(): [number, number];

Defined in: layers.ts:1199

Colour-key interval: the display range.

Returns ​

[number, number]


sampleColorMap() ​

ts
sampleColorMap(count?): ColorArray[];

Defined in: layers.ts:1207

Colour-key stops sampled evenly across the display range with this layer's colormap, ignoring the threshold mask.

Parameters ​

count? ​

number = 256

Returns ​

ColorArray[]


getFillValue() ​

ts
getFillValue(): number;

Defined in: layers.ts:1219

Returns ​

number


getProjectionMode() ​

ts
getProjectionMode(): VolumeProjectionMode;

Defined in: layers.ts:1223

Returns ​

VolumeProjectionMode


getSamplingMode() ​

ts
getSamplingMode(): VolumeSamplingMode;

Defined in: layers.ts:1227

Returns ​

VolumeSamplingMode


getQuality() ​

ts
getQuality(): VolumeProjectionQuality;

Defined in: layers.ts:1231

Returns ​

VolumeProjectionQuality


getRibbonConfig() ​

ts
getRibbonConfig(): object;

Defined in: layers.ts:1235

Returns ​

object

samples ​
ts
samples: number;
reducer ​
ts
reducer: RibbonReducer;
hasSurfaces ​
ts
hasSurfaces: boolean;

usesGPUVertexProjection() ​

ts
usesGPUVertexProjection(): boolean;

Defined in: layers.ts:1243

Returns ​

boolean


setRange() ​

ts
setRange(range): void;

Defined in: layers.ts:1247

Parameters ​

range ​

[number, number]

Returns ​

void


setThreshold() ​

ts
setThreshold(threshold): void;

Defined in: layers.ts:1254

Parameters ​

threshold ​

[number, number]

Returns ​

void


setFillValue() ​

ts
setFillValue(fillValue): void;

Defined in: layers.ts:1261

Parameters ​

fillValue ​

number

Returns ​

void


setProjectionMode() ​

ts
setProjectionMode(mode): void;

Defined in: layers.ts:1267

Parameters ​

mode ​

VolumeProjectionMode

Returns ​

void


setSamplingMode() ​

ts
setSamplingMode(mode): void;

Defined in: layers.ts:1276

Set scalar sampling for every path: the CPU sampler and, on the GPU vertex path, the 3D texture filter (nearest or linear between voxel centres).

Parameters ​

mode ​

VolumeSamplingMode

Returns ​

void


setQuality() ​

ts
setQuality(quality): void;

Defined in: layers.ts:1282

Parameters ​

quality ​

VolumeProjectionQuality

Returns ​

void


setRibbonSurfaces() ​

ts
setRibbonSurfaces(
   pial, 
   white, 
   options?
): void;

Defined in: layers.ts:1287

Parameters ​

pial ​

Float32Array<ArrayBufferLike> | number[] | null

white ​

Float32Array<ArrayBufferLike> | number[] | null

options? ​
samples? ​

number

reducer? ​

RibbonReducer

Returns ​

void


setColormap() ​

ts
setColormap(input): void;

Defined in: layers.ts:1327

Parameters ​

input ​

string | ColorMap | Color[]

Returns ​

void


setWorldToIJK() ​

ts
setWorldToIJK(matrix): void;

Defined in: layers.ts:1337

Parameters ​

matrix ​

ArrayLike<number> | Matrix4

Returns ​

void


updateVolumeData() ​

ts
updateVolumeData(data): void;

Defined in: layers.ts:1344

Parameters ​

data ​

Float32Array<ArrayBufferLike> | number[]

Returns ​

void


getRGBAData() ​

ts
getRGBAData(vertexCount): Float32Array;

Defined in: layers.ts:1350

Get straight RGBA values for this layer.

Alpha here is intrinsic data/colormap coverage only. Layer.opacity is applied exactly once by the CPU or GPU compositor.

Parameters ​

vertexCount ​

number

Returns ​

Float32Array

Overrides ​

Layer.getRGBAData


sampleValueAtWorld() ​

ts
sampleValueAtWorld(point): number | null;

Defined in: layers.ts:1415

Parameters ​

point ​

Vector3

Returns ​

number | null


sampleValueAtVertex() ​

ts
sampleValueAtVertex(vertexIndex): number | null;

Defined in: layers.ts:1419

Parameters ​

vertexIndex ​

number

Returns ​

number | null


update() ​

ts
update(updates): void;

Defined in: layers.ts:1453

Update layer data Must be implemented by subclasses

Parameters ​

updates ​

VolumeProjectionLayerUpdateData

Returns ​

void

Overrides ​

Layer.update


toStateJSON() ​

ts
toStateJSON(): Record<string, unknown>;

Defined in: layers.ts:1532

Serialize common layer state for state persistence. Override in subclasses.

Returns ​

Record<string, unknown>

Overrides ​

Layer.toStateJSON


fromStateJSON() ​

ts
fromStateJSON(state): void;

Defined in: layers.ts:1553

Restore mapping state, including authored custom colors without a preset lookup.

Parameters ​

state ​

Record<string, unknown>

Returns ​

void


dispose() ​

ts
dispose(): void;

Defined in: layers.ts:1562

Returns ​

void

Overrides ​

Layer.dispose

Released under the MIT License.