Skip to content

Class: VolumeProjectedSurface

Defined in: src/surfaces/VolumeProjectedSurface.ts:36

Extends

Constructors

Constructor

ts
new VolumeProjectedSurface(geometry, options): VolumeProjectedSurface;

Defined in: src/surfaces/VolumeProjectedSurface.ts:42

Parameters

geometry

SurfaceGeometry

options

VolumeProjectedSurfaceOptions

Returns

VolumeProjectedSurface

Overrides

NeuroSurface.constructor

Properties

geometry

ts
geometry: SurfaceGeometry;

Defined in: src/classes.ts:263

Inherited from

NeuroSurface.geometry


indices

ts
indices: Uint32Array;

Defined in: src/classes.ts:264

Inherited from

NeuroSurface.indices


data

ts
data: Float32Array;

Defined in: src/classes.ts:265

Inherited from

NeuroSurface.data


vertexCurv

ts
vertexCurv: Float32Array<ArrayBufferLike> | null;

Defined in: src/classes.ts:266

Inherited from

NeuroSurface.vertexCurv


mesh

ts
mesh: 
  | Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material | Material[], Object3DEventMap>
  | null;

Defined in: src/classes.ts:267

Inherited from

NeuroSurface.mesh


threshold

ts
threshold: [number, number];

Defined in: src/classes.ts:268

Inherited from

NeuroSurface.threshold


irange

ts
irange: [number, number];

Defined in: src/classes.ts:269

Inherited from

NeuroSurface.irange


hemisphere

ts
hemisphere: string;

Defined in: src/classes.ts:270

Inherited from

NeuroSurface.hemisphere


config

ts
config: Required<SurfaceConfig>;

Defined in: src/classes.ts:271

Inherited from

NeuroSurface.config


viewer?

ts
optional viewer?: any;

Defined in: src/classes.ts:272

Inherited from

NeuroSurface.viewer

Methods

on()

ts
on(event, listener): UnsubscribeFn;

Defined in: src/EventEmitter.ts:12

Parameters

event

string

listener

EventListener

Returns

UnsubscribeFn

Inherited from

NeuroSurface.on


once()

ts
once(event, listener): UnsubscribeFn;

Defined in: src/EventEmitter.ts:23

Parameters

event

string

listener

EventListener

Returns

UnsubscribeFn

Inherited from

NeuroSurface.once


emit()

ts
emit(event, ...args): void;

Defined in: src/EventEmitter.ts:34

Parameters

event

string

args

...any[]

Returns

void

Inherited from

NeuroSurface.emit


removeListener()

ts
removeListener(event, listenerToRemove): void;

Defined in: src/EventEmitter.ts:41

Parameters

event

string

listenerToRemove

EventListener

Returns

void

Inherited from

NeuroSurface.removeListener


removeAllListeners()

ts
removeAllListeners(event?): void;

Defined in: src/EventEmitter.ts:52

Parameters

event?

string

Returns

void

Inherited from

NeuroSurface.removeAllListeners


off()

ts
off(event, listener): void;

Defined in: src/EventEmitter.ts:61

Parameters

event

string

listener

EventListener

Returns

void

Inherited from

NeuroSurface.off


update()

ts
update(property, value): void;

Defined in: src/classes.ts:317

Parameters

property

string

value

any

Returns

void

Inherited from

NeuroSurface.update


updateConfig()

ts
updateConfig(newConfig): void;

Defined in: src/classes.ts:342

Update surface material properties dynamically

Parameters

newConfig

Partial<SurfaceConfig>

Partial configuration object with properties to update

Returns

void

Example

javascript
// Make surface shiny and semi-transparent
surface.updateConfig({
  shininess: 150,
  specularColor: 0xffffff,
  alpha: 0.7
});

// Switch to flat shading for faceted look
surface.updateConfig({ flatShading: true });

Inherited from

NeuroSurface.updateConfig


getPickMetadata()

ts
getPickMetadata(_vertexIndex): Record<string, unknown> | null;

Defined in: src/classes.ts:438

Parameters

_vertexIndex

number

Returns

Record<string, unknown> | null

Inherited from

NeuroSurface.getPickMetadata


setVisible()

ts
setVisible(visible): void;

Defined in: src/classes.ts:445

Parameters

visible

boolean

Returns

void

Inherited from

NeuroSurface.setVisible


setOpacity()

ts
setOpacity(opacity): void;

Defined in: src/classes.ts:453

Parameters

opacity

number

Returns

void

Inherited from

NeuroSurface.setOpacity


setSmoothShading()

ts
setSmoothShading(smooth, smoothingAngle?): void;

Defined in: src/classes.ts:473

Control surface shading style (visual only, doesn't modify geometry)

Parameters

smooth

boolean

If true, uses smooth shading (interpolated normals). If false, uses flat shading (face normals)

smoothingAngle?

number

Optional angle threshold in degrees (0-180). Edges above this angle remain sharp

Returns

void

Example

javascript
// Enable smooth shading for organic surfaces
surface.setSmoothShading(true);

// Smooth shading with 30° threshold (sharp edges preserved)
surface.setSmoothShading(true, 30);

// Flat shading for faceted/crystalline look
surface.setSmoothShading(false);

Inherited from

NeuroSurface.setSmoothShading


applyLaplacianSmoothing()

ts
applyLaplacianSmoothing(
   iterations?, 
   lambda?, 
   method?, 
   preserveBoundaries?): void;

Defined in: src/classes.ts:509

Apply Laplacian smoothing to the surface vertices (modifies geometry)

Parameters

iterations?

number = 1

Number of smoothing iterations (1-10). More iterations = smoother surface

lambda?

number = 0.5

Smoothing strength (0-1). 0 = no effect, 1 = maximum smoothing per iteration

method?

"laplacian" | "taubin"

Smoothing algorithm:

  • 'laplacian': Standard smoothing, may shrink surface
  • 'taubin': Alternates shrink/expand to preserve volume
preserveBoundaries?

boolean = true

If true, boundary edges remain fixed

Returns

void

Example

javascript
// Gentle smoothing to reduce noise
surface.applyLaplacianSmoothing(2, 0.3, 'laplacian', true);

// Aggressive smoothing while preserving volume
surface.applyLaplacianSmoothing(5, 0.5, 'taubin', true);

// Smooth including boundaries (may distort edges)
surface.applyLaplacianSmoothing(3, 0.4, 'laplacian', false);

Inherited from

NeuroSurface.applyLaplacianSmoothing


createSmoothedCopy()

ts
createSmoothedCopy(
   iterations?, 
   lambda?, 
   method?): SurfaceGeometry;

Defined in: src/classes.ts:559

Create a smoothed copy of this surface

Parameters

iterations?

number = 1

Number of smoothing iterations

lambda?

number = 0.5

Smoothing factor 0-1

method?

"laplacian" | "taubin"

'laplacian' or 'taubin'

Returns

SurfaceGeometry

A new smoothed surface geometry

Inherited from

NeuroSurface.createSmoothedCopy


updateMesh()

ts
updateMesh(): Mesh;

Defined in: src/classes.ts:584

Returns

Mesh

Inherited from

NeuroSurface.updateMesh


createMesh()

ts
createMesh(): Mesh;

Defined in: src/surfaces/VolumeProjectedSurface.ts:84

Returns

Mesh

Overrides

NeuroSurface.createMesh


updateColors()

ts
updateColors(): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:98

Returns

void

Overrides

NeuroSurface.updateColors


updateVolumeData()

ts
updateVolumeData(data): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:102

Parameters

data

Float32Array<ArrayBufferLike> | ArrayLike<number>

Returns

void


setIntensityRange()

ts
setIntensityRange(min, max): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:107

Parameters

min

number

max

number

Returns

void


setThreshold()

ts
setThreshold(min, max): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:113

Parameters

min

number

max

number

Returns

void


setOverlayOpacity()

ts
setOverlayOpacity(opacity): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:119

Parameters

opacity

number

Returns

void


setBaseColor()

ts
setBaseColor(color): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:125

Parameters

color

ColorRepresentation

Returns

void


setColormap()

ts
setColormap(name): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:131

Parameters

name

string

Returns

void


setWorldToIJK()

ts
setWorldToIJK(matrix): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:141

Parameters

matrix

ArrayLike<number> | Matrix4

Returns

void


isSupported()

ts
static isSupported(renderer, options?): boolean;

Defined in: src/surfaces/VolumeProjectedSurface.ts:150

Parameters

renderer

WebGLRenderer

options?
requireLinearFiltering?

boolean

useHalfFloat?

boolean

Returns

boolean


dispose()

ts
dispose(): void;

Defined in: src/surfaces/VolumeProjectedSurface.ts:157

Returns

void

Overrides

NeuroSurface.dispose

Released under the MIT License.