Skip to main content

Class: Niivue

Defined in: niivue/index.ts:352

Niivue can be attached to a canvas. An instance of Niivue contains methods for loading and rendering NIFTI image data in a WebGL 2.0 context.

Example

let niivue = new Niivue({ crosshairColor: [0, 1, 0, 0.5], textHeight: 0.5 }); // a see-through green crosshair, and larger text labels

Constructors

Constructor

new Niivue(options: Partial<NVConfigOptions>): Niivue;

Defined in: niivue/index.ts:841

Parameters

ParameterTypeDefault valueDescription
optionsPartial<NVConfigOptions>DEFAULT_OPTIONSoptions object to set modifiable Niivue properties

Returns

Niivue

Properties

PropertyTypeDefault valueDescriptionDefined in
_glWebGL2RenderingContextnull-niivue/index.ts:365
backNVImagenull-niivue/index.ts:492
backgroundMasksOverlaysnumber0-niivue/index.ts:438
blurShaderShadernull-niivue/index.ts:425
bmpShaderShadernull-niivue/index.ts:413
bmpTextureWebGLTexturenull-niivue/index.ts:414
bmpTextureWHnumber1.0-niivue/index.ts:416
canvasHTMLCanvasElementnull-niivue/index.ts:364
circleShader?Shaderundefined-niivue/index.ts:411
clickToSegmentGrowingBitmapUint8Arraynull-niivue/index.ts:380
clickToSegmentIsGrowingbooleanfalse-niivue/index.ts:379
clickToSegmentXYnumber[]undefined-niivue/index.ts:381
CLIP_PLANE_IDnumber1-niivue/index.ts:521
colorbarHeightnumber0-niivue/index.ts:383
colorbarShader?Shaderundefined-niivue/index.ts:407
colormapListsColormapListEntry[][]-niivue/index.ts:369
colormapTextureWebGLTexturenull-niivue/index.ts:368
crosshairs3DNiivueObject3Dnull-niivue/index.ts:431
cuboidVertexBuffer?WebGLBufferundefined-niivue/index.ts:510
currentClipPlaneIndexnumber0-niivue/index.ts:517
currentDrawUndoBitmapnumberundefined-niivue/index.ts:836
customLayoutobject[][]-niivue/index.ts:533
deferredMeshesLoadFromUrlParams[][]-niivue/index.ts:495
deferredVolumesImageFromUrlOptions[][]-niivue/index.ts:494
dicomLoaderDicomLoadernull-niivue/index.ts:355
DISTANCE_FROM_CAMERAnumber-0.54-niivue/index.ts:523
documentNVDocumentundefined-niivue/index.ts:808
dragModesobjectundefined-niivue/index.ts:599
dragModes.callbackOnlyDRAG_MODEDRAG_MODE.callbackOnly-niivue/index.ts:605
dragModes.contrastDRAG_MODEDRAG_MODE.contrast-niivue/index.ts:600
dragModes.measurementDRAG_MODEDRAG_MODE.measurement-niivue/index.ts:601
dragModes.noneDRAG_MODEDRAG_MODE.none-niivue/index.ts:602
dragModes.panDRAG_MODEDRAG_MODE.pan-niivue/index.ts:603
dragModes.slicer3DDRAG_MODEDRAG_MODE.slicer3D-niivue/index.ts:604
drawFillOverwritesbooleantrue-niivue/index.ts:386
drawLutLUTundefined-niivue/index.ts:377
drawOpacitynumber0.8-niivue/index.ts:378
drawPenAxCorSagnumber-1-niivue/index.ts:385
drawPenFillPtsnumber[][][]-niivue/index.ts:387
drawPenLocationnumber[]undefined-niivue/index.ts:384
drawTextureWebGLTexturenull-niivue/index.ts:375
drawUndoBitmapsUint8Array[][]-niivue/index.ts:376
extentsMax?vec3undefined-niivue/index.ts:443
extentsMin?vec3undefined-niivue/index.ts:442
fiberShader?Shaderundefined-niivue/index.ts:409
fontShaderShadernull-niivue/index.ts:408
fontTextureWebGLTexturenull-niivue/index.ts:410
furthestFromPivotnumber10.0-niivue/index.ts:515
furthestVertexFromOriginnumber100-niivue/index.ts:496
genericVAOWebGLVertexArrayObjectnull-niivue/index.ts:429
gradientTextureWebGLTexturenull-niivue/index.ts:371
gradientTextureAmountnumber0.0-niivue/index.ts:372
graphGraphundefined-niivue/index.ts:524
growCutShader?Shaderundefined-niivue/index.ts:417
initializedbooleanfalse-niivue/index.ts:835
isBusybooleanfalse-niivue/index.ts:366
lastCallednumberundefined-niivue/index.ts:518
line3DShader?Shaderundefined-niivue/index.ts:399
lineShader?Shaderundefined-niivue/index.ts:398
loadersobject{}-niivue/index.ts:353
matCapTextureWebGLTexturenull-niivue/index.ts:412
mediaUrlMapMap< | NVMesh | NVImage, string>undefined-niivue/index.ts:834
meshShadersobject[]undefined-niivue/index.ts:539
mousePosnumber[]undefined-niivue/index.ts:499
needsRefreshbooleanfalse-niivue/index.ts:367
onAzimuthElevationChange(azimuth: number, elevation: number) => voidundefinedcallback function to run when the user changes the rotation of the 3D rendering Example niivue.onAzimuthElevationChange = (azimuth, elevation) => { console.log('azimuth: ', azimuth) console.log('elevation: ', elevation) }niivue/index.ts:783
onClickToSegment(data: object) => voidundefinedcallback function when clickToSegment is enabled and the user clicks on the image. data contains the volume of the segmented region in mm3 and mL Example niivue.onClickToSegment = (data) => { console.log('clicked to segment') console.log('volume mm3: ', data.mm3) console.log('volume mL: ', data.mL) }niivue/index.ts:664
onClipPlaneChange(clipPlane: number[]) => voidundefinedcallback function to run when the user changes the clip plane Example niivue.onClipPlaneChange = (clipPlane) => { console.log('clipPlane: ', clipPlane) }niivue/index.ts:792
onColormapChange() => voidundefined-niivue/index.ts:707
onCustomMeshShaderAdded(fragmentShaderText: string, name: string) => voidundefined-niivue/index.ts:793
onDebug() => voidundefinedcallback function to run when niivue reports a debug message Example niivue.onDebug = (debug) => { console.log('debug: ', debug) }niivue/index.ts:734
onDicomLoaderFinishedWithImages(files: | NVImage[] | NVMesh[]) => voidundefined-niivue/index.ts:797
onDocumentLoaded(document: NVDocument) => voidundefinedcallback function to run when the user loads a new NiiVue document Example niivue.onDocumentLoaded = (document) => { console.log('document: ', document) }niivue/index.ts:806
onDragRelease(params: DragReleaseParams) => voidundefinedcallback function to run when the right mouse button is released after dragging Example niivue.onDragRelease = () => { console.log('drag ended') }niivue/index.ts:623
onError() => voidundefinedcallback function to run when niivue reports an error Example niivue.onError = (error) => { console.log('error: ', error) }niivue/index.ts:704
onFrameChange(volume: NVImage, index: number) => voidundefinedcallback function to run when the user changes the volume when a 4D image is loaded Example niivue.onFrameChange = (volume, frameNumber) => { console.log('frame changed') console.log('volume: ', volume) console.log('frameNumber: ', frameNumber) }niivue/index.ts:695
onImageLoaded(volume: NVImage) => voidundefinedcallback function to run when a new volume is loaded Example niivue.onImageLoaded = (volume) => { console.log('volume loaded') console.log('volume: ', volume) }niivue/index.ts:674
onInfo() => voidundefinedcallback function to run when niivue reports detailed info Example niivue.onInfo = (info) => { console.log('info: ', info) }niivue/index.ts:716
onIntensityChange(volume: NVImage) => voidundefinedcallback function to run when the user changes the intensity range with the selection box action (right click) Example niivue.onIntensityChange = (volume) => { console.log('intensity changed') console.log('volume: ', volume) }niivue/index.ts:653
onLocationChange(location: unknown) => voidundefinedcallback function to run when the crosshair location changes Example niivue.onLocationChange = (data) => { console.log('location changed') console.log('mm: ', data.mm) console.log('vox: ', data.vox) console.log('frac: ', data.frac) console.log('values: ', data.values) }niivue/index.ts:644
onMeshAdded() => voidundefined-niivue/index.ts:769
onMeshAddedFromUrl(meshOptions: LoadFromUrlParams, mesh: NVMesh) => voidundefinedcallback function to run when a mesh is added from a url Example niivue.onMeshAddedFromUrl = (meshOptions, mesh) => { console.log('mesh added from url') console.log('meshOptions: ', meshOptions) console.log('mesh: ', mesh) }niivue/index.ts:766
onMeshLoaded(mesh: NVMesh) => voidundefinedcallback function to run when a new mesh is loaded Example niivue.onMeshLoaded = (mesh) => { console.log('mesh loaded') console.log('mesh: ', mesh) }niivue/index.ts:684
onMeshPropertyChanged(meshIndex: number, key: string, val: unknown) => voidundefined-niivue/index.ts:795
onMeshShaderChanged(meshIndex: number, shaderIndex: number) => voidundefined-niivue/index.ts:794
onMeshWithUrlRemoved(url: string) => voidundefined-niivue/index.ts:770
onMouseUp(data: Partial<UIData>) => voidundefinedcallback function to run when the left mouse button is released Example niivue.onMouseUp = () => { console.log('mouse up') }niivue/index.ts:632
onVolumeAddedFromUrl(imageOptions: ImageFromUrlOptions, volume: NVImage) => voidundefinedcallback function to run when a volume is added from a url Example niivue.onVolumeAddedFromUrl = (imageOptions, volume) => { console.log('volume added from url') console.log('imageOptions: ', imageOptions) console.log('volume: ', volume) }niivue/index.ts:745
onVolumeUpdated() => voidundefinedcallback function to run when updateGLVolume is called (most users will not need to use Example niivue.onVolumeUpdated = () => { console.log('volume updated') }niivue/index.ts:755
onVolumeWithUrlRemoved(url: string) => voidundefined-niivue/index.ts:746
onWarn() => voidundefinedcallback function to run when niivue reports a warning Example niivue.onWarn = (warn) => { console.log('warn: ', warn) }niivue/index.ts:725
onZoom3DChange(zoom: number) => voidundefined-niivue/index.ts:773
orientCubeShader?Shaderundefined-niivue/index.ts:393
orientCubeShaderVAOWebGLVertexArrayObjectnull-niivue/index.ts:394
orientShaderAtlasIShadernull-niivue/index.ts:419
orientShaderAtlasUShadernull-niivue/index.ts:418
orientShaderFShadernull-niivue/index.ts:422
orientShaderIShadernull-niivue/index.ts:421
orientShaderRGBUShadernull-niivue/index.ts:423
orientShaderUShadernull-niivue/index.ts:420
otherNVNiivue[]null-niivue/index.ts:512
overlayAlphaShadernumber1-niivue/index.ts:440
overlayOutlineWidthnumber0-niivue/index.ts:439
overlaysNVImage[][]-niivue/index.ts:493
overlayTextureWebGLTexturenull-niivue/index.ts:388
overlayTextureIDWebGLTexturenull-niivue/index.ts:389
passThroughShader?Shaderundefined-niivue/index.ts:400
pickingImageShader?Shaderundefined-niivue/index.ts:406
pickingMeshShader?Shaderundefined-niivue/index.ts:405
pivot3Dnumber[]undefined-niivue/index.ts:514
position?vec3undefined-niivue/index.ts:441
readyForSyncbooleanfalse-niivue/index.ts:461
rectOutlineShader?Shaderundefined-niivue/index.ts:396
rectShader?Shaderundefined-niivue/index.ts:395
renderDrawAmbientOcclusionnumber0.4-niivue/index.ts:382
renderGradientShader?Shaderundefined-niivue/index.ts:401
renderGradientValuesbooleanfalse-niivue/index.ts:374
renderGradientValuesShader?Shaderundefined-niivue/index.ts:402
renderShader?Shaderundefined-niivue/index.ts:397
renderSliceShader?Shaderundefined-niivue/index.ts:403
renderVolumeShader?Shaderundefined-niivue/index.ts:404
screenSlicesobject[][]-niivue/index.ts:500
selectedObjectIdnumber-1-niivue/index.ts:520
slice2DShader?Shaderundefined-niivue/index.ts:391
sliceMMShader?Shaderundefined-niivue/index.ts:390
sliceTypeAxialSLICE_TYPESLICE_TYPE.AXIAL-niivue/index.ts:609
sliceTypeCoronalSLICE_TYPESLICE_TYPE.CORONAL-niivue/index.ts:610
sliceTypeMultiplanarSLICE_TYPESLICE_TYPE.MULTIPLANAR-niivue/index.ts:612
sliceTypeRenderSLICE_TYPESLICE_TYPE.RENDER-niivue/index.ts:613
sliceTypeSagittalSLICE_TYPESLICE_TYPE.SAGITTAL-niivue/index.ts:611
sliceV1Shader?Shaderundefined-niivue/index.ts:392
sobelBlurShaderShadernull-niivue/index.ts:426
sobelFirstOrderShaderShadernull-niivue/index.ts:427
sobelSecondOrderShaderShadernull-niivue/index.ts:428
surfaceShaderShadernull-niivue/index.ts:424
syncOptsSyncOptsundefined-niivue/index.ts:449
thumbnailVisiblebooleanfalse-niivue/index.ts:415
uiDataUIDataundefined-niivue/index.ts:464
unusedVAOanynull-niivue/index.ts:430
useCustomGradientTexturebooleanfalse-niivue/index.ts:373
volScalenumber[][]-niivue/index.ts:497
VOLUME_IDnumber254-niivue/index.ts:522
volumeObject3DNiivueObject3Dnull-niivue/index.ts:513
volumeTextureWebGLTexturenull-niivue/index.ts:370
voxnumber[][]-niivue/index.ts:498

Accessors

drawBitmap

Get Signature

get drawBitmap(): Uint8Array;

Defined in: niivue/index.ts:944

Returns

Uint8Array

Set Signature

set drawBitmap(drawBitmap: Uint8Array): void;

Defined in: niivue/index.ts:948

Parameters
ParameterType
drawBitmapUint8Array
Returns

void


gl

Get Signature

get gl(): WebGL2RenderingContext;

Defined in: niivue/index.ts:13364

Returns

WebGL2RenderingContext

Set Signature

set gl(gl: WebGL2RenderingContext): void;

Defined in: niivue/index.ts:13371

Parameters
ParameterType
glWebGL2RenderingContext
Returns

void


isAlphaClipDark

Get Signature

get isAlphaClipDark(): boolean;

Defined in: niivue/index.ts:826

Returns

boolean

Set Signature

set isAlphaClipDark(newVal: boolean): void;

Defined in: niivue/index.ts:830

Parameters
ParameterType
newValboolean
Returns

void


meshes

Get Signature

get meshes(): NVMesh[];

Defined in: niivue/index.ts:936

Returns

NVMesh[]

Set Signature

set meshes(meshes: NVMesh[]): void;

Defined in: niivue/index.ts:940

Parameters
ParameterType
meshesNVMesh[]
Returns

void


opts

Get Signature

get opts(): NVConfigOptions;

Defined in: niivue/index.ts:814

Returns

NVConfigOptions


scene

Get Signature

get scene(): Scene;

Defined in: niivue/index.ts:810

Returns

Scene


sliceMosaicString

Get Signature

get sliceMosaicString(): string;

Defined in: niivue/index.ts:818

Returns

string

Set Signature

set sliceMosaicString(newSliceMosaicString: string): void;

Defined in: niivue/index.ts:822

Parameters
ParameterType
newSliceMosaicStringstring
Returns

void


volScaleMultiplier

Get Signature

get volScaleMultiplier(): number;

Defined in: niivue/index.ts:952

Returns

number

Set Signature

set volScaleMultiplier(scale: number): void;

Defined in: niivue/index.ts:956

Parameters
ParameterType
scalenumber
Returns

void


volumes

Get Signature

get volumes(): NVImage[];

Defined in: niivue/index.ts:928

Returns

NVImage[]

Set Signature

set volumes(volumes: NVImage[]): void;

Defined in: niivue/index.ts:932

Parameters
ParameterType
volumesNVImage[]
Returns

void

Methods

addColormap()

addColormap(key: string, cmap: ColorMap): void;

Defined in: niivue/index.ts:8006

create a new colormap

Parameters

ParameterTypeDescription
keystringname of new colormap
cmapColorMapcolormap properties (Red, Green, Blue, Alpha and Indices)

Returns

void

See

live demo usage


addColormapList()

addColormapList(
nm: string,
mn: number,
mx: number,
alpha: boolean,
neg: boolean,
vis: boolean,
inv: boolean): void;

Defined in: niivue/index.ts:8924

Parameters

ParameterTypeDefault value
nmstring''
mnnumberNaN
mxnumberNaN
alphabooleanfalse
negbooleanfalse
visbooleantrue
invbooleanfalse

Returns

void


addLabel()

addLabel(
text: string,
style: NVLabel3DStyle,
points?: number[] | number[][],
anchor?: LabelAnchorPoint,
onClick?: (label: NVLabel3D) => void): NVLabel3D;

Defined in: niivue/index.ts:11523

Add a 3D Label

Parameters

ParameterTypeDescription
textstringthe text content of the label
styleNVLabel3DStylevisual styling options for the label (e.g., color, scale, line width)
points?number[] | number[][]a 3D point [x, y, z] or array of points to anchor the label in space
anchor?LabelAnchorPointoptional label anchor position (e.g., top-left, center, etc.)
onClick?(label: NVLabel3D) => voidoptional callback function to invoke when the label is clicked

Returns

NVLabel3D

the created NVLabel3D instance

See

live demo usage


addMesh()

addMesh(mesh: NVMesh): void;

Defined in: niivue/index.ts:3061

add a new mesh to the canvas

Parameters

ParameterTypeDescription
meshNVMeshthe new mesh to add to the canvas

Returns

void

Example

niivue = new Niivue();
niivue.addMesh(NVMesh.loadFromUrl({ url: "../someURL.gii" }));

See

live demo usage


addMeshesFromUrl()

addMeshesFromUrl(meshOptions: LoadFromUrlParams[]): Promise<NVMesh[]>;

Defined in: niivue/index.ts:4850

Add mesh and notify subscribers

Parameters

ParameterType
meshOptionsLoadFromUrlParams[]

Returns

Promise<NVMesh[]>


addMeshFromUrl()

addMeshFromUrl(meshOptions: LoadFromUrlParams): Promise<NVMesh>;

Defined in: niivue/index.ts:4829

Add mesh and notify subscribers

Parameters

ParameterType
meshOptionsLoadFromUrlParams

Returns

Promise<NVMesh>


addVolume()

addVolume(volume: NVImage): void;

Defined in: niivue/index.ts:3044

add a new volume to the canvas

Parameters

ParameterTypeDescription
volumeNVImagethe new volume to add to the canvas

Returns

void

Example

niivue = new Niivue();
niivue.addVolume(NVImage.loadFromUrl({ url: "../someURL.nii.gz" }));

See

live demo usage


addVolumeFromUrl()

addVolumeFromUrl(imageOptions: ImageFromUrlOptions): Promise<NVImage>;

Defined in: niivue/index.ts:2302

Add an image and notify subscribers

Parameters

ParameterType
imageOptionsImageFromUrlOptions

Returns

Promise<NVImage>

See

live demo usage


addVolumesFromUrl()

addVolumesFromUrl(imageOptionsArray: ImageFromUrlOptions[]): Promise<NVImage[]>;

Defined in: niivue/index.ts:2314

Parameters

ParameterType
imageOptionsArrayImageFromUrlOptions[]

Returns

Promise<NVImage[]>


arrayEquals()

arrayEquals(a: unknown[], b: unknown[]): boolean;

Defined in: niivue/index.ts:1247

Not documented publicly for now test if two arrays have equal values for each element

Parameters

ParameterTypeDescription
aunknown[]the first array
bunknown[]the second array

Returns

boolean

Example

Niivue.arrayEquals(a, b)

TODO this should maybe just use array-equal from NPM

attachTo()

attachTo(id: string, isAntiAlias: any): Promise<Niivue>;

Defined in: niivue/index.ts:1004

attach the Niivue instance to the webgl2 canvas by element id

Parameters

ParameterTypeDefault valueDescription
idstringundefinedthe id of an html canvas element
isAntiAliasanynulldetermines if anti-aliasing is requested (if not specified, AA usage depends on hardware)

Returns

Promise<Niivue>

Examples

niivue = new Niivue().attachTo("gl");
await niivue.attachTo("gl");

See

live demo usage


attachToCanvas()

attachToCanvas(canvas: HTMLCanvasElement, isAntiAlias: boolean): Promise<Niivue>;

Defined in: niivue/index.ts:1018

attach the Niivue instance to a canvas element directly

Parameters

ParameterTypeDefault valueDescription
canvasHTMLCanvasElementundefinedthe canvas element reference
isAntiAliasbooleannull-

Returns

Promise<Niivue>

Example

niivue = new Niivue();
await niivue.attachToCanvas(document.getElementById(id));

See

live demo usage


binarize()

binarize(volume: NVImage): void;

Defined in: niivue/index.ts:3241

Binarize a volume by converting all non-zero voxels to 1

Parameters

ParameterTypeDescription
volumeNVImagethe image volume to modify in place

Returns

void

See

live demo usage


broadcastTo()

broadcastTo(otherNV: Niivue | Niivue[], syncOpts: object): void;

Defined in: niivue/index.ts:1111

Sync the scene controls (orientation, crosshair location, etc.) from one Niivue instance to others. useful for using one canvas to drive another.

Parameters

ParameterTypeDescription
otherNVNiivue | Niivue[]the other Niivue instance(s)
syncOpts{ 2d: boolean; 3d: boolean; }-
syncOpts.2dboolean-
syncOpts.3dboolean-

Returns

void

Example

niivue1 = new Niivue();
niivue2 = new Niivue();
niivue3 = new Niivue();
niivue1.broadcastTo(niivue2);
niivue1.broadcastTo([niivue2, niivue3]);

See

live demo usage


bwlabel()

bwlabel(
img: Uint32Array,
dim: Uint32Array,
conn: number,
binarize: boolean,
onlyLargestClusterPerClass: boolean): [number, Uint32Array];

Defined in: niivue/index.ts:8277

Parameters

ParameterTypeDefault value
imgUint32Arrayundefined
dimUint32Arrayundefined
connnumber26
binarizebooleanfalse
onlyLargestClusterPerClassbooleanfalse

Returns

[number, Uint32Array]


calculateMinMaxVoxIdx()

calculateMinMaxVoxIdx(array: number[]): number[];

Defined in: niivue/index.ts:1488

calculate the the min and max voxel indices from an array of two values (used in selecting intensities with the selection box)

Parameters

ParameterTypeDescription
arraynumber[]an array of two values

Returns

number[]

an array of two values representing the min and max voxel indices


calculateModelMatrix()

calculateModelMatrix(azimuth: number, elevation: number): mat4;

Defined in: niivue/index.ts:10842

Parameters

ParameterType
azimuthnumber
elevationnumber

Returns

mat4


calculateMvpMatrix()

calculateMvpMatrix(
_unused: unknown,
leftTopWidthHeight: number[],
azimuth: number,
elevation: number): mat4[];

Defined in: niivue/index.ts:10793

Parameters

ParameterType
_unusedunknown
leftTopWidthHeightnumber[]
azimuthnumber
elevationnumber

Returns

mat4[]


calculateMvpMatrix2D()

calculateMvpMatrix2D(
leftTopWidthHeight: number[],
mn: vec3,
mx: vec3,
clipTolerance: number,
clipDepth: number,
azimuth: number,
elevation: number,
isRadiolgical: boolean): MvpMatrix2D;

Defined in: niivue/index.ts:10295

Parameters

ParameterTypeDefault value
leftTopWidthHeightnumber[]undefined
mnvec3undefined
mxvec3undefined
clipTolerancenumberInfinity
clipDepthnumber0
azimuthnumber0
elevationnumber0
isRadiolgicalbooleanundefined

Returns

MvpMatrix2D


calculateNewRange()

calculateNewRange(__namedParameters: object): void;

Defined in: niivue/index.ts:1497

Parameters

ParameterType
__namedParameters{ volIdx?: number; }
__namedParameters.volIdx?number

Returns

void


calculateRayDirection()

calculateRayDirection(azimuth: number, elevation: number): vec3;

Defined in: niivue/index.ts:10862

Parameters

ParameterType
azimuthnumber
elevationnumber

Returns

vec3


calculateScreenPoint()

calculateScreenPoint(
point: [number, number, number],
mvpMatrix: mat4,
leftTopWidthHeight: number[]): vec4;

Defined in: niivue/index.ts:11547

Parameters

ParameterType
point[number, number, number]
mvpMatrixmat4
leftTopWidthHeightnumber[]

Returns

vec4


calculateWidthHeight()

calculateWidthHeight(
sliceType: number,
volScale: number[],
containerWidth: number,
containerHeight: number): [number, number];

Defined in: niivue/index.ts:12832

Parameters

ParameterType
sliceTypenumber
volScalenumber[]
containerWidthnumber
containerHeightnumber

Returns

[number, number]


canvasPos2frac()

canvasPos2frac(canvasPos: number[]): vec3;

Defined in: niivue/index.ts:12293

Parameters

ParameterType
canvasPosnumber[]

Returns

vec3


check_previous_slice()

check_previous_slice(
bw: Uint32Array,
il: Uint32Array,
r: number,
c: number,
sl: number,
dim: Uint32Array,
conn: number,
tt: Uint32Array): number;

Defined in: niivue/index.ts:8032

Parameters

ParameterType
bwUint32Array
ilUint32Array
rnumber
cnumber
slnumber
dimUint32Array
connnumber
ttUint32Array

Returns

number


checkMultitouch()

checkMultitouch(e: TouchEvent): void;

Defined in: niivue/index.ts:1655

Parameters

ParameterType
eTouchEvent

Returns

void


cleanup()

cleanup(): void;

Defined in: niivue/index.ts:879

Clean up event listeners and observers Call this when the Niivue instance is no longer needed. This will be called when the canvas is detached from the DOM

Returns

void

Example

niivue.cleanup();

clearCustomLayout()

clearCustomLayout(): void;

Defined in: niivue/index.ts:2910

Clear custom layout and rely on built-in layouts

Returns

void


cloneVolume()

cloneVolume(index: number): NVImage;

Defined in: niivue/index.ts:4351

clone a volume and return a new volume

Parameters

ParameterTypeDescription
indexnumberthe index of the volume to clone

Returns

NVImage

new volume to work with, but that volume is not added to the canvas

Example

niivue = new Niivue();
niivue.cloneVolume(0);

closeDrawing()

closeDrawing(): void;

Defined in: niivue/index.ts:6032

close drawing: make sure you have saved any changes before calling this!

Returns

void

Example

niivue.closeDrawing();

See

live demo usage


colormap()

colormap(lutName: string, isInvert: boolean): Uint8ClampedArray;

Defined in: niivue/index.ts:8896

Retrieve a colormap with optional inversion

Parameters

ParameterTypeDefault valueDescription
lutNamestring''name of the lookup table (LUT) colormap
isInvertbooleanfalsewhether to invert the colormap

Returns

Uint8ClampedArray

the RGBA colormap as a Uint8ClampedArray

See

live demo usage


colormapFromKey()

colormapFromKey(name: string): ColorMap;

Defined in: niivue/index.ts:8885

Parameters

ParameterType
namestring

Returns

ColorMap


colormaps()

colormaps(): string[];

Defined in: niivue/index.ts:7996

query all available color maps that can be applied to volumes

Returns

string[]

an array of colormap strings

Example

niivue = new Niivue();
colormaps = niivue.colormaps();

See

live demo usage


conform()

conform(
volume: NVImage,
toRAS: boolean,
isLinear: boolean,
asFloat32: boolean,
isRobustMinMax: boolean): Promise<NVImage>;

Defined in: niivue/index.ts:8602

FreeSurfer-style conform reslices any image to a 256x256x256 volume with 1mm voxels

Parameters

ParameterTypeDefault valueDescription
volumeNVImageundefinedinput volume to be re-oriented, intensity-scaled and resliced
toRASbooleanfalsereslice to row, column slices to right-anterior-superior not left-inferior-anterior (default false).
isLinearbooleantruereslice with linear rather than nearest-neighbor interpolation (default true).
asFloat32booleanfalseuse Float32 datatype rather than Uint8 (default false).
isRobustMinMaxbooleanfalseclamp intensity with robust min max (~2%..98%) instead of FreeSurfer (0%..99.99%) (default false).

Returns

Promise<NVImage>

See

live demo usage


conformVox2Vox()

conformVox2Vox(
inDims: number[],
inAffine: number[],
outDim: number,
outMM: number,
toRAS: boolean): [mat4, mat4, mat4];

Defined in: niivue/index.ts:8490

Parameters

ParameterTypeDefault value
inDimsnumber[]undefined
inAffinenumber[]undefined
outDimnumber256
outMMnumber1
toRASbooleanfalse

Returns

[mat4, mat4, mat4]


createColormapTexture()

createColormapTexture(
texture: WebGLTexture,
nRow: number,
nCol: number): WebGLTexture;

Defined in: niivue/index.ts:8903

Parameters

ParameterTypeDefault value
textureWebGLTexturenull
nRownumber0
nColnumber256

Returns

WebGLTexture


createConnectedLabelImage()

createConnectedLabelImage(
id: string,
conn: number,
binarize: boolean,
onlyLargestClusterPerClass: boolean): Promise<NVImage>;

Defined in: niivue/index.ts:8326

Create a connected component label map from a volume

Parameters

ParameterTypeDefault valueDescription
idstringundefinedID of the input volume
connnumber26connectivity for clustering (6 = faces, 18 = faces + edges, 26 = faces + edges + corners)
binarizebooleanfalsewhether to binarize the volume before labeling
onlyLargestClusterPerClassbooleanfalseretain only the largest cluster for each label

Returns

Promise<NVImage>

a new NVImage with labeled clusters, using random colormap

See

live demo usage


createCustomMeshShader()

createCustomMeshShader(fragmentShaderText: string, name: string): object;

Defined in: niivue/index.ts:6562

Parameters

ParameterTypeDefault valueDescription
fragmentShaderTextstringundefinedcustom fragment shader.
namestring'Custom'title for new shader.

Returns

object

created custom mesh shader

NameTypeDefined in
Fragstringniivue/index.ts:6566
Namestringniivue/index.ts:6566
shaderShaderniivue/index.ts:6566

createEmptyDrawing()

createEmptyDrawing(): void;

Defined in: niivue/index.ts:5038

generate a blank canvas for the pen tool

Returns

void

Example

niivue.createEmptyDrawing();

See

live demo usage


createNiftiArray()

createNiftiArray(
dims: number[],
pixDims: number[],
affine: number[],
datatypeCode: NiiDataType,
img: Uint8Array): Promise<Uint8Array>;

Defined in: niivue/index.ts:8558

Create a binary NIfTI file as a Uint8Array, including header and image data

Parameters

ParameterTypeDefault valueDescription
dimsnumber[]...image dimensions [x, y, z]
pixDimsnumber[]...voxel dimensions in mm [x, y, z]
affinenumber[]...4×4 affine transformation matrix in row-major order
datatypeCodeNiiDataTypeNiiDataType.DT_UINT8NIfTI datatype code (e.g., DT_UINT8, DT_FLOAT32)
imgUint8Array...image data buffer (optional)

Returns

Promise<Uint8Array>

a Uint8Array representing a complete NIfTI file

See

live demo usage


createOnLocationChange()

createOnLocationChange(axCorSag: number): void;

Defined in: niivue/index.ts:11418

Internal utility to generate human-readable location strings for the onLocationChange callback

Parameters

ParameterTypeDefault valueDescription
axCorSagnumberNaNoptional axis index for coordinate interpretation (NaN by default)

Returns

void

Remarks

Not included in public documentation. Computes string representation of current crosshair position in mm (and frame if 4D).

See

live demo usage


decimateHierarchicalMesh()

decimateHierarchicalMesh(mesh: number, order: number): boolean;

Defined in: niivue/index.ts:3652

reduce complexity of FreeSurfer mesh

Parameters

ParameterTypeDefault valueDescription
meshnumberundefinedidentity of mesh to change
ordernumber3decimation order 0..6

Returns

boolean

boolean false if mesh is not hierarchical or of lower order

Example

niivue.decimateHierarchicalMesh(niivue.meshes[0].id, 4);

See

live demo usage


deleteThumbnail()

deleteThumbnail(): void;

Defined in: niivue/index.ts:9122

Returns

void


depthPicker()

depthPicker(leftTopWidthHeight: number[], mvpMatrix: mat4): void;

Defined in: niivue/index.ts:11262

Parameters

ParameterType
leftTopWidthHeightnumber[]
mvpMatrixmat4

Returns

void


detectPartialllyLoaded4D()

detectPartialllyLoaded4D(): boolean;

Defined in: niivue/index.ts:10970

Returns

boolean


do_initial_labelling()

do_initial_labelling(
bw: Uint32Array,
dim: Uint32Array,
conn: number): [number, Uint32Array, Uint32Array];

Defined in: niivue/index.ts:8116

Parameters

ParameterType
bwUint32Array
dimUint32Array
connnumber

Returns

[number, Uint32Array, Uint32Array]


doClickToSegment()

doClickToSegment(options: object): void;

Defined in: niivue/index.ts:9171

Parameters

ParameterType
options{ tileIndex: number; x: number; y: number; }
options.tileIndexnumber
options.xnumber
options.ynumber

Returns

void


doSync2d()

doSync2d(otherNV: Niivue): void;

Defined in: niivue/index.ts:1127

Parameters

ParameterType
otherNVNiivue

Returns

void


doSync3d()

doSync3d(otherNV: Niivue): void;

Defined in: niivue/index.ts:1120

Parameters

ParameterType
otherNVNiivue

Returns

void


doSyncCalMax()

doSyncCalMax(otherNV: Niivue): void;

Defined in: niivue/index.ts:1160

Parameters

ParameterType
otherNVNiivue

Returns

void


doSyncCalMin()

doSyncCalMin(otherNV: Niivue): void;

Defined in: niivue/index.ts:1151

Parameters

ParameterType
otherNVNiivue

Returns

void


doSyncClipPlane()

doSyncClipPlane(otherNV: Niivue): void;

Defined in: niivue/index.ts:1173

Parameters

ParameterType
otherNVNiivue

Returns

void


doSyncCrosshair()

doSyncCrosshair(otherNV: Niivue): void;

Defined in: niivue/index.ts:1146

Parameters

ParameterType
otherNVNiivue

Returns

void


doSyncGamma()

doSyncGamma(otherNV: Niivue): void;

Defined in: niivue/index.ts:1133

Parameters

ParameterType
otherNVNiivue

Returns

void


doSyncSliceType()

doSyncSliceType(otherNV: Niivue): void;

Defined in: niivue/index.ts:1169

Parameters

ParameterType
otherNVNiivue

Returns

void


doSyncZoomPan()

doSyncZoomPan(otherNV: Niivue): void;

Defined in: niivue/index.ts:1142

Parameters

ParameterType
otherNVNiivue

Returns

void


dragEnterListener()

dragEnterListener(e: MouseEvent): void;

Defined in: niivue/index.ts:2267

Parameters

ParameterType
eMouseEvent

Returns

void


dragForCenterButton()

dragForCenterButton(startXYendXY: number[]): void;

Defined in: niivue/index.ts:9565

Parameters

ParameterType
startXYendXYnumber[]

Returns

void


dragForPanZoom()

dragForPanZoom(startXYendXY: number[]): void;

Defined in: niivue/index.ts:9547

Parameters

ParameterType
startXYendXYnumber[]

Returns

void


dragForSlicer3D()

dragForSlicer3D(startXYendXY: number[]): void;

Defined in: niivue/index.ts:9570

Parameters

ParameterType
startXYendXYnumber[]

Returns

void


dragOverListener()

dragOverListener(e: MouseEvent): void;

Defined in: niivue/index.ts:2273

Parameters

ParameterType
eMouseEvent

Returns

void


draw2D()

draw2D(
leftTopWidthHeight: number[],
axCorSag: SLICE_TYPE,
customMM: number,
imageWidthHeight: number[]): void;

Defined in: niivue/index.ts:10750

Parameters

ParameterTypeDefault value
leftTopWidthHeightnumber[]undefined
axCorSagSLICE_TYPEundefined
customMMnumberNaN
imageWidthHeightnumber[]...

Returns

void


draw2DMain()

draw2DMain(
leftTopWidthHeight: number[],
axCorSag: SLICE_TYPE,
customMM: number): void;

Defined in: niivue/index.ts:10545

Parameters

ParameterTypeDefault value
leftTopWidthHeightnumber[]undefined
axCorSagSLICE_TYPEundefined
customMMnumberNaN

Returns

void


draw3D()

draw3D(
leftTopWidthHeight: number[],
mvpMatrix: mat4,
modelMatrix: mat4,
normalMatrix: mat4,
azimuth: number,
elevation: number): string;

Defined in: niivue/index.ts:11855

Parameters

ParameterTypeDefault value
leftTopWidthHeightnumber[]...
mvpMatrixmat4null
modelMatrixmat4null
normalMatrixmat4null
azimuthnumbernull
elevationnumber0

Returns

string


draw3DLabel()

draw3DLabel(
label: NVLabel3D,
pos: vec2,
mvpMatrix?: mat4,
leftTopWidthHeight?: number[],
bulletMargin?: number,
legendWidth?: number,
secondPass?: boolean,
scaling?: number): void;

Defined in: niivue/index.ts:11684

Parameters

ParameterTypeDefault value
labelNVLabel3Dundefined
posvec2undefined
mvpMatrix?mat4undefined
leftTopWidthHeight?number[]undefined
bulletMargin?numberundefined
legendWidth?numberundefined
secondPass?booleanundefined
scaling?number1.0

Returns

void


draw3DLabels()

draw3DLabels(
mvpMatrix: mat4,
leftTopWidthHeight: number[],
secondPass: boolean): void;

Defined in: niivue/index.ts:11737

Parameters

ParameterTypeDefault value
mvpMatrixmat4undefined
leftTopWidthHeightnumber[]undefined
secondPassbooleanfalse

Returns

void


draw3DLine()

draw3DLine(
startXY: vec2,
endXYZ: vec3,
thickness: number,
lineColor: number[]): void;

Defined in: niivue/index.ts:12374

Parameters

ParameterTypeDefault value
startXYvec2undefined
endXYZvec3undefined
thicknessnumber1
lineColornumber[]...

Returns

void


drawAddUndoBitmap()

drawAddUndoBitmap(): void;

Defined in: niivue/index.ts:3088

Returns

void


drawAnchoredLabels()

drawAnchoredLabels(): void;

Defined in: niivue/index.ts:11801

Returns

void


drawChar()

drawChar(
xy: number[],
scale: number,
char: number): number;

Defined in: niivue/index.ts:10105

Parameters

ParameterType
xynumber[]
scalenumber
charnumber

Returns

number


drawCircle()

drawCircle(
leftTopWidthHeight: number[],
circleColor: Float32List,
fillPercent: number): void;

Defined in: niivue/index.ts:9743

Parameters

ParameterTypeDefault value
leftTopWidthHeightnumber[]undefined
circleColorFloat32List...
fillPercentnumber1.0

Returns

void


drawClearAllUndoBitmaps()

drawClearAllUndoBitmaps(): void;

Defined in: niivue/index.ts:3104

Returns

void


drawColorbar()

drawColorbar(): void;

Defined in: niivue/index.ts:10034

Returns

void


drawColorbarCore()

drawColorbarCore(
layer: number,
leftTopWidthHeight: number[],
isNegativeColor: boolean,
min: number,
max: number,
isAlphaThreshold: boolean): void;

Defined in: niivue/index.ts:9927

Parameters

ParameterTypeDefault value
layernumber0
leftTopWidthHeightnumber[]...
isNegativeColorbooleanfalse
minnumber0
maxnumber1
isAlphaThresholdbooleanundefined

Returns

void


drawCrosshairs3D()

drawCrosshairs3D(
isDepthTest: boolean,
alpha: number,
mvpMtx: mat4,
is2DView: boolean,
isSliceMM: boolean): void;

Defined in: niivue/index.ts:12071

Parameters

ParameterTypeDefault value
isDepthTestbooleantrue
alphanumber1.0
mvpMtxmat4null
is2DViewbooleanfalse
isSliceMMbooleantrue

Returns

void


drawCrossLines()

drawCrossLines(
sliceIndex: number,
axCorSag: SLICE_TYPE,
axiMM: number[],
corMM: number[],
sagMM: number[]): void;

Defined in: niivue/index.ts:12604

Parameters

ParameterType
sliceIndexnumber
axCorSagSLICE_TYPE
axiMMnumber[]
corMMnumber[]
sagMMnumber[]

Returns

void


drawCrossLinesMM()

drawCrossLinesMM(
sliceIndex: number,
axCorSag: SLICE_TYPE,
axiMM: number[],
corMM: number[],
sagMM: number[]): void;

Defined in: niivue/index.ts:12465

Parameters

ParameterType
sliceIndexnumber
axCorSagSLICE_TYPE
axiMMnumber[]
corMMnumber[]
sagMMnumber[]

Returns

void


drawDottedLine()

drawDottedLine(
startXYendXY: number[],
thickness: number,
lineColor: number[]): void;

Defined in: niivue/index.ts:12393

Parameters

ParameterTypeDefault value
startXYendXYnumber[]undefined
thicknessnumber1
lineColornumber[]...

Returns

void


drawFloodFill()

drawFloodFill(
seedXYZ: number[],
newColor: number,
growSelectedCluster: number,
forceMin: number,
forceMax: number,
neighbors: number,
maxDistanceMM: number,
is2D: boolean,
targetBitmap: Uint8Array,
isGrowClusterTool: boolean): void;

Defined in: niivue/index.ts:5583

Parameters

ParameterTypeDefault value
seedXYZnumber[]undefined
newColornumber0
growSelectedClusternumber0
forceMinnumberNaN
forceMaxnumberNaN
neighborsnumber6
maxDistanceMMnumberNumber.POSITIVE_INFINITY
is2Dbooleanfalse
targetBitmapUint8Arraynull
isGrowClusterToolbooleanfalse

Returns

void


drawFloodFillCore()

drawFloodFillCore(
img: Uint8Array,
seedVx: number,
neighbors: number): void;

Defined in: niivue/index.ts:5491

Parameters

ParameterTypeDefault value
imgUint8Arrayundefined
seedVxnumberundefined
neighborsnumber6

Returns

void


drawGraph()

drawGraph(): void;

Defined in: niivue/index.ts:10984

Returns

void


drawGraphLine()

drawGraphLine(
LTRB: number[],
color: number[],
thickness: number): void;

Defined in: niivue/index.ts:12460

Parameters

ParameterTypeDefault value
LTRBnumber[]undefined
colornumber[]...
thicknessnumber2

Returns

void


drawGrowCut()

drawGrowCut(): void;

Defined in: niivue/index.ts:5102

dilate drawing so all voxels are colored. works on drawing with multiple colors

Returns

void

Example

niivue.drawGrowCut();

See

live demo usage


drawImage3D()

drawImage3D(
mvpMatrix: mat4,
azimuth: number,
elevation: number): void;

Defined in: niivue/index.ts:11305

Parameters

ParameterType
mvpMatrixmat4
azimuthnumber
elevationnumber

Returns

void


drawingBinaryDilationWithSeed()

drawingBinaryDilationWithSeed(seedXYZ: number[], neighbors: 6 | 18 | 26): void;

Defined in: niivue/index.ts:5359

Performs a 1-voxel binary dilation on a connected cluster within the drawing mask using the drawFloodFillCore function.

Parameters

ParameterTypeDefault valueDescription
seedXYZnumber[]undefinedvoxel index of the seed voxel in the mask array.
neighbors6 | 18 | 266Number of neighbors to consider for connectivity and dilation (6, 18, or 26).

Returns

void


drawLabelLine()

drawLabelLine(
label: NVLabel3D,
pos: vec2,
mvpMatrix: mat4,
leftTopWidthHeight: number[],
secondPass: boolean): void;

Defined in: niivue/index.ts:11662

Parameters

ParameterTypeDefault value
labelNVLabel3Dundefined
posvec2undefined
mvpMatrixmat4undefined
leftTopWidthHeightnumber[]undefined
secondPassbooleanfalse

Returns

void


drawLine()

drawLine(
startXYendXY: number[],
thickness: number,
lineColor: number[]): void;

Defined in: niivue/index.ts:12353

Parameters

ParameterTypeDefault value
startXYendXYnumber[]undefined
thicknessnumber1
lineColornumber[]...

Returns

void


drawLoadingText()

drawLoadingText(text: string): void;

Defined in: niivue/index.ts:10123

Parameters

ParameterType
textstring

Returns

void


drawMeasurementTool()

drawMeasurementTool(startXYendXY: number[]): void;

Defined in: niivue/index.ts:9590

Parameters

ParameterType
startXYendXYnumber[]

Returns

void


drawMesh3D()

drawMesh3D(
isDepthTest: boolean,
alpha: number,
m?: mat4,
modelMtx?: mat4,
normMtx?: mat4): void;

Defined in: niivue/index.ts:11951

Parameters

ParameterTypeDefault value
isDepthTestbooleantrue
alphanumber1.0
m?mat4undefined
modelMtx?mat4undefined
normMtx?mat4undefined

Returns

void


drawMosaic()

drawMosaic(mosaicStr: string): void;

Defined in: niivue/index.ts:12667

display a lightbox or montage view

Parameters

ParameterTypeDescription
mosaicStrstringspecifies orientation (A,C,S) and location of slices.

Returns

void

Example

niivue.setSliceMosaicString("A -10 0 20");

See

live demo usage


drawOrientationCube()

drawOrientationCube(
leftTopWidthHeight: number[],
azimuth: number,
elevation: number): void;

Defined in: niivue/index.ts:11373

Parameters

ParameterTypeDefault value
leftTopWidthHeightnumber[]undefined
azimuthnumber0
elevationnumber0

Returns

void


drawOtsu()

drawOtsu(levels: number): void;

Defined in: niivue/index.ts:3396

remove dark voxels in air

Parameters

ParameterTypeDefault valueDescription
levelsnumber2(2-4) segment brain into this many types. For example drawOtsu(2) will create a binary drawing where bright voxels are colored and dark voxels are clear.

Returns

void

Example

niivue.drawOtsu(3);

See

live demo usage


drawPenFilled()

drawPenFilled(): void;

Defined in: niivue/index.ts:5837

Returns

void


drawPenLine()

drawPenLine(
ptA: number[],
ptB: number[],
penValue: number): void;

Defined in: niivue/index.ts:5274

Parameters

ParameterType
ptAnumber[]
ptBnumber[]
penValuenumber

Returns

void


drawPt()

drawPt(
x: number,
y: number,
z: number,
penValue: number,
drawBitmap: Uint8Array): void;

Defined in: niivue/index.ts:5230

Parameters

ParameterTypeDefault value
xnumberundefined
ynumberundefined
znumberundefined
penValuenumberundefined
drawBitmapUint8Arraynull

Returns

void


drawRect()

drawRect(leftTopWidthHeight: number[], lineColor: number[]): void;

Defined in: niivue/index.ts:9696

Parameters

ParameterType
leftTopWidthHeightnumber[]
lineColornumber[]

Returns

void


drawRuler()

drawRuler(): void;

Defined in: niivue/index.ts:9451

Returns

void


drawRuler10cm()

drawRuler10cm(
startXYendXY: number[],
rulerColor: number[],
rulerWidth: number): void;

Defined in: niivue/index.ts:9485

Parameters

ParameterTypeDefault value
startXYendXYnumber[]undefined
rulerColornumber[]undefined
rulerWidthnumber1

Returns

void


drawScene()

drawScene(): string | void;

Defined in: niivue/index.ts:13342

Returns

string | void


drawSceneCore()

drawSceneCore(): string | void;

Defined in: niivue/index.ts:12877

Returns

string | void


drawSelectionBox()

drawSelectionBox(leftTopWidthHeight: number[]): void;

Defined in: niivue/index.ts:9767

Parameters

ParameterType
leftTopWidthHeightnumber[]

Returns

void


drawSliceOrientationText()

drawSliceOrientationText(
leftTopWidthHeight: number[],
axCorSag: SLICE_TYPE,
padLeftTop: number[]): void;

Defined in: niivue/index.ts:10459

Parameters

ParameterType
leftTopWidthHeightnumber[]
axCorSagSLICE_TYPE
padLeftTopnumber[]

Returns

void


drawText()

drawText(
xy: number[],
str: string,
scale: number,
color: Float32List): void;

Defined in: niivue/index.ts:10137

Parameters

ParameterTypeDefault value
xynumber[]undefined
strstringundefined
scalenumber1
colorFloat32Listnull

Returns

void


drawTextBelow()

drawTextBelow(
xy: number[],
str: string,
scale: number,
color: number[]): void;

Defined in: niivue/index.ts:10222

Parameters

ParameterTypeDefault value
xynumber[]undefined
strstringundefined
scalenumber1
colornumber[]null

Returns

void


drawTextBetween()

drawTextBetween(
startXYendXY: number[],
str: string,
scale: number,
color: number[]): void;

Defined in: niivue/index.ts:10196

Parameters

ParameterTypeDefault value
startXYendXYnumber[]undefined
strstringundefined
scalenumber1
colornumber[]null

Returns

void


drawTextLeft()

drawTextLeft(
xy: number[],
str: string,
scale: number,
color: number[]): void;

Defined in: niivue/index.ts:10174

Parameters

ParameterTypeDefault value
xynumber[]undefined
strstringundefined
scalenumber1
colornumber[]null

Returns

void


drawTextRight()

drawTextRight(
xy: number[],
str: string,
scale: number,
color: number[]): void;

Defined in: niivue/index.ts:10164

Parameters

ParameterTypeDefault value
xynumber[]undefined
strstringundefined
scalenumber1
colornumber[]null

Returns

void


drawTextRightBelow()

drawTextRightBelow(
xy: number[],
str: string,
scale: number,
color: number[]): void;

Defined in: niivue/index.ts:10186

Parameters

ParameterTypeDefault value
xynumber[]undefined
strstringundefined
scalenumber1
colornumber[]null

Returns

void


drawThumbnail()

drawThumbnail(): void;

Defined in: niivue/index.ts:12328

Returns

void


drawUndo()

drawUndo(): void;

Defined in: niivue/index.ts:3119

Restore drawing to previous state

Returns

void

Example

niivue.drawUndo();

See

live demo usage


dropListener()

dropListener(e: DragEvent): Promise<void>;

Defined in: niivue/index.ts:2599

Parameters

ParameterType
eDragEvent

Returns

Promise<void>


effectiveCanvasHeight()

effectiveCanvasHeight(): number;

Defined in: niivue/index.ts:9778

Returns

number


effectiveCanvasWidth()

effectiveCanvasWidth(): number;

Defined in: niivue/index.ts:9783

Returns

number


fill_tratab()

fill_tratab(
tt: Uint32Array,
nabo: Uint32Array,
nr_set: number): void;

Defined in: niivue/index.ts:8191

Parameters

ParameterType
ttUint32Array
naboUint32Array
nr_setnumber

Returns

void


findOtsu()

findOtsu(mlevel: number): number[];

Defined in: niivue/index.ts:3283

Parameters

ParameterTypeDefault value
mlevelnumber2

Returns

number[]


frac2mm()

frac2mm(
frac: vec3,
volIdx: number,
isForceSliceMM: boolean): vec4;

Defined in: niivue/index.ts:12232

Parameters

ParameterTypeDefault value
fracvec3undefined
volIdxnumber0
isForceSliceMMbooleanfalse

Returns

vec4


frac2vox()

frac2vox(frac: vec3, volIdx: number): vec3;

Defined in: niivue/index.ts:12195

Parameters

ParameterTypeDefault value
fracvec3undefined
volIdxnumber0

Returns

vec3


generateHTML()

generateHTML(canvasId: string, esm: string): Promise<string>;

Defined in: niivue/index.ts:4547

generates HTML of current scene

Parameters

ParameterTypeDefault valueDescription
canvasIdstring'gl1'id of canvas NiiVue will be attached to
esmstringundefinedbundled version of NiiVue

Returns

Promise<string>

HTML with javascript of the current scene

Example

const template = `<html><body><canvas id="gl1"></canvas><script type="module" async>
%%javascript%%</script></body></html>`;
nv1.generateHTML("page.html", esm);

generateLoadDocumentJavaScript()

generateLoadDocumentJavaScript(canvasId: string, esm: string): Promise<string>;

Defined in: niivue/index.ts:4506

generates JavaScript to load the current scene as a document

Parameters

ParameterTypeDescription
canvasIdstringid of canvas NiiVue will be attached to
esmstringbundled version of NiiVue

Returns

Promise<string>

Example

const javascript = this.generateLoadDocumentJavaScript("gl1");
const html = `<html><body><canvas id="gl1"></canvas><script type="module" async>
${javascript}</script></body></html>`;

See

live demo usage


generateMouseUpCallback()

generateMouseUpCallback(fracStart: vec3, fracEnd: vec3): void;

Defined in: niivue/index.ts:1564

Parameters

ParameterType
fracStartvec3
fracEndvec3

Returns

void


getAllLabels()

getAllLabels(): NVLabel3D[];

Defined in: niivue/index.ts:9787

Returns

NVLabel3D[]


getBulletMarginWidth()

getBulletMarginWidth(): number;

Defined in: niivue/index.ts:9828

Returns

number


getConnectomeLabels()

getConnectomeLabels(): NVLabel3D[];

Defined in: niivue/index.ts:9797

Returns

NVLabel3D[]


getCustomLayout()

getCustomLayout(): object[];

Defined in: niivue/index.ts:2919

Get the current custom layout if set

Returns

object[]

The current custom layout or null if using built-in layouts


getDescriptives()

getDescriptives(options: object): Descriptive;

Defined in: niivue/index.ts:7135

basic statistics for selected voxel-based image

Parameters

ParameterTypeDescription
options{ drawingIsMask?: boolean; endVox?: number[]; layer?: number; masks?: number[]; roiIsMask?: boolean; startVox?: number[]; }an object containing the following properties: - layer: selects image to describe - masks: optional binary images to filter voxels - drawingIsMask: a boolean indicating if the drawing is used as a mask - roiIsMask: a boolean indicating if the ROI is used as a mask - startVox: the starting voxel coordinates - endVox: the ending voxel coordinates
options.drawingIsMask?boolean-
options.endVox?number[]-
options.layer?number-
options.masks?number[]-
options.roiIsMask?boolean-
options.startVox?number[]-

Returns

Descriptive

numeric values to describe image or regions of images

Example

niivue.getDescriptives({
layer: 0,
masks: [],
drawingIsMask: true, // drawingIsMask and roiIsMask are mutually exclusive
roiIsMask: false,
startVox: [10, 20, 30], // ignored if roiIsMask is false
endVox: [40, 50, 60], // ignored if roiIsMask is false
});

See

live demo usage


getDicomLoader()

getDicomLoader(): DicomLoader;

Defined in: niivue/index.ts:2581

Returns

DicomLoader


getFileExt()

getFileExt(fullname: string, upperCase: boolean): string;

Defined in: niivue/index.ts:2279

Parameters

ParameterTypeDefault value
fullnamestringundefined
upperCasebooleantrue

Returns

string


getFrame4D()

getFrame4D(id: string): number;

Defined in: niivue/index.ts:8879

determine active 3D volume from 4D time series

Parameters

ParameterTypeDescription
idstringthe ID of the 4D NVImage

Returns

number

currently selected volume (indexed from 0)

Example

nv1.getFrame4D(nv1.volumes[0].id);

See

live demo usage


getGradientTextureData()

getGradientTextureData(): Float32Array;

Defined in: niivue/index.ts:6917

Returns

Float32Array


getLabelAtPoint()

getLabelAtPoint(screenPoint: [number, number]): NVLabel3D;

Defined in: niivue/index.ts:11563

Parameters

ParameterType
screenPoint[number, number]

Returns

NVLabel3D


getLegendPanelHeight()

getLegendPanelHeight(panelScale: number): number;

Defined in: niivue/index.ts:9885

Parameters

ParameterTypeDefault value
panelScalenumber1.0

Returns

number


getLegendPanelWidth()

getLegendPanelWidth(): number;

Defined in: niivue/index.ts:9854

Returns

number


getMaxVols()

getMaxVols(): number;

Defined in: niivue/index.ts:10958

Returns

number


getMediaByUrl()

getMediaByUrl(url: string):
| NVMesh
| NVImage;

Defined in: niivue/index.ts:2384

Find media by url

Parameters

ParameterType
urlstring

Returns

| NVMesh | NVImage


getMeshIndexByID()

getMeshIndexByID(id: string | number): number;

Defined in: niivue/index.ts:3585

Parameters

ParameterType
idstring | number

Returns

number


getNoPaddingNoBorderCanvasRelativeMousePosition()

getNoPaddingNoBorderCanvasRelativeMousePosition(event: MouseEvent, target: EventTarget): object;

Defined in: niivue/index.ts:1352

Parameters

ParameterType
eventMouseEvent
targetEventTarget

Returns

object

NameTypeDefined in
xnumberniivue/index.ts:1355
ynumberniivue/index.ts:1355

getOverlayIndexByID()

getOverlayIndexByID(id: string): number;

Defined in: niivue/index.ts:3731

get the index of an overlay by its unique id. unique ids are assigned to the NVImage.id property when a new NVImage is created.

Parameters

ParameterTypeDescription
idstringthe id string to search for

Returns

number

See

NiiVue#getVolumeIndexByID

Example

niivue = new Niivue();
niivue.getOverlayIndexByID(someVolume.id);

getRadiologicalConvention()

getRadiologicalConvention(): boolean;

Defined in: niivue/index.ts:3017

Detect if display is using radiological or neurological convention.

Returns

boolean

radiological convention status

Example

let rc = niivue.getRadiologicalConvention();

getRelativeMousePosition()

getRelativeMousePosition(event: MouseEvent, target?: EventTarget): object;

Defined in: niivue/index.ts:1336

Internal

callback to handle mouse move events relative to the canvas

Parameters

ParameterType
eventMouseEvent
target?EventTarget

Returns

object

the mouse position relative to the canvas

NameTypeDefined in
xnumberniivue/index.ts:1336
ynumberniivue/index.ts:1336

getScale()

getScale(
volume: NVImage,
dst_min: number,
dst_max: number,
f_low: number,
f_high: number): [number, number];

Defined in: niivue/index.ts:8394

Parameters

ParameterTypeDefault value
volumeNVImageundefined
dst_minnumber0
dst_maxnumber255
f_lownumber0.0
f_highnumber0.999

Returns

[number, number]


getVolumeIndexByID()

getVolumeIndexByID(id: string): number;

Defined in: niivue/index.ts:3075

get the index of a volume by its unique id. unique ids are assigned to the NVImage.id property when a new NVImage is created.

Parameters

ParameterTypeDescription
idstringthe id string to search for

Returns

number

Example

niivue = new Niivue();
niivue.getVolumeIndexByID(someVolume.id);

gradientGL()

gradientGL(hdr: NiftiHeader): void;

Defined in: niivue/index.ts:6827

Parameters

ParameterType
hdrNiftiHeader

Returns

void


handleNodeAdded()

handleNodeAdded(event: object): void;

Defined in: niivue/index.ts:4978

Parameters

ParameterType
event{ detail: { node: NVConnectomeNode; }; }
event.detail{ node: NVConnectomeNode; }
event.detail.nodeNVConnectomeNode

Returns

void


handlePinchZoom()

handlePinchZoom(e: TouchEvent): void;

Defined in: niivue/index.ts:1991

Parameters

ParameterType
eTouchEvent

Returns

void


idx()

idx(
A: number,
B: number,
C: number,
DIM: Uint32Array): number;

Defined in: niivue/index.ts:8027

Parameters

ParameterType
Anumber
Bnumber
Cnumber
DIMUint32Array

Returns

number


indexNearestXYZmm()

indexNearestXYZmm(
mesh: number,
Xmm: number,
Ymm: number,
Zmm: number): number[];

Defined in: niivue/index.ts:3635

returns the index of the mesh vertex that is closest to the provided coordinates

Parameters

ParameterTypeDescription
meshnumberidentity of mesh to change
Xmmnumberlocation in left/right dimension
Ymmnumberlocation in posterior/anterior dimension
Zmmnumberlocation in foot/head dimension

Returns

number[]

the an array where ret[0] is the mesh index and ret[1] is distance from vertex to coordinates

Example

niivue.indexNearestXYZmm(niivue.meshes[0].id, -22, 42, 13);

See

live demo usage


inGraphTile()

inGraphTile(x: number, y: number): boolean;

Defined in: niivue/index.ts:9132

Parameters

ParameterType
xnumber
ynumber

Returns

boolean


init()

init(): Promise<Niivue>;

Defined in: niivue/index.ts:6640

Returns

Promise<Niivue>


initFontMets()

initFontMets(): void;

Defined in: niivue/index.ts:6425

Returns

void


initRenderShader()

initRenderShader(shader: Shader, gradientAmount: number): void;

Defined in: niivue/index.ts:6619

Parameters

ParameterTypeDefault value
shaderShaderundefined
gradientAmountnumber0.0

Returns

void


initText()

initText(): Promise<void>;

Defined in: niivue/index.ts:6504

Returns

Promise<void>


inRenderTile()

inRenderTile(x: number, y: number): number;

Defined in: niivue/index.ts:9078

Parameters

ParameterType
xnumber
ynumber

Returns

number


isMeshExt()

isMeshExt(url: string): boolean;

Defined in: niivue/index.ts:2480

Returns boolean: true if filename ends with mesh extension (TRK, pial, etc)

Parameters

ParameterTypeDescription
urlstringfilename

Returns

boolean


json()

json(): ExportDocumentData;

Defined in: niivue/index.ts:4637

Converts NiiVue scene to JSON

Returns

ExportDocumentData


keyDownListener()

keyDownListener(e: KeyboardEvent): void;

Defined in: niivue/index.ts:2059

Parameters

ParameterType
eKeyboardEvent

Returns

void


keyUpListener()

keyUpListener(e: KeyboardEvent): void;

Defined in: niivue/index.ts:2013

Parameters

ParameterType
eKeyboardEvent

Returns

void


largest_original_cluster_labels()

largest_original_cluster_labels(
bw: Uint32Array,
cl: number,
ls: Uint32Array): [number, Uint32Array];

Defined in: niivue/index.ts:8238

Parameters

ParameterType
bwUint32Array
clnumber
lsUint32Array

Returns

[number, Uint32Array]


loadBmpTexture()

loadBmpTexture(bmpUrl: string): Promise<WebGLTexture>;

Defined in: niivue/index.ts:6408

Parameters

ParameterType
bmpUrlstring

Returns

Promise<WebGLTexture>


loadConnectome()

loadConnectome(json:
| Connectome
| LegacyConnectome): this;

Defined in: niivue/index.ts:5021

load a connectome specified by json

Parameters

ParameterTypeDescription
json| Connectome | LegacyConnectomeconnectome model

Returns

this

Niivue instance

See

live demo usage


loadConnectomeAsMesh()

loadConnectomeAsMesh(json:
| Connectome
| LegacyConnectome
| FreeSurferConnectome): NVMesh;

Defined in: niivue/index.ts:4997

Parameters

ParameterType
json| Connectome | LegacyConnectome | FreeSurferConnectome

Returns

NVMesh


loadConnectomeFromUrl()

loadConnectomeFromUrl(url: string, headers: object): Promise<Niivue>;

Defined in: niivue/index.ts:4948

Load a connectome from a given URL and initialize it.

Parameters

ParameterTypeDescription
urlstringthe URL to a JSON-formatted connectome definition
headers{ }optional HTTP headers to include with the request (e.g. for authorization)

Returns

Promise<Niivue>

the Niivue instance (for method chaining)

See

live demo usage


loadDefaultFont()

loadDefaultFont(): Promise<void>;

Defined in: niivue/index.ts:6497

Returns

Promise<void>


loadDefaultMatCap()

loadDefaultMatCap(): Promise<WebGLTexture>;

Defined in: niivue/index.ts:6492

Returns

Promise<WebGLTexture>


loadDeferred4DVolumes()

loadDeferred4DVolumes(id: string): Promise<void>;

Defined in: niivue/index.ts:8820

Load all volumes for image opened with limitFrames4D, the user can also click the ... on a 4D timeline to load deferred volumes

Parameters

ParameterTypeDescription
idstringthe ID of the 4D NVImage

Returns

Promise<void>


loadDicoms()

loadDicoms(dicomList: ImageFromUrlOptions[]): Promise<Niivue>;

Defined in: niivue/index.ts:4733

Parameters

ParameterType
dicomListImageFromUrlOptions[]

Returns

Promise<Niivue>


loadDocument()

loadDocument(document: NVDocument): Promise<Niivue>;

Defined in: niivue/index.ts:4369

Loads an NVDocument

Parameters

ParameterType
documentNVDocument

Returns

Promise<Niivue>

Niivue instance

See

live demo usage


loadDocumentFromUrl()

loadDocumentFromUrl(url: string): Promise<void>;

Defined in: niivue/index.ts:4359

Parameters

ParameterTypeDescription
urlstringURL of NVDocument

Returns

Promise<void>


loadDrawing()

loadDrawing(drawingBitmap: NVImage): boolean;

Defined in: niivue/index.ts:3140

Parameters

ParameterType
drawingBitmapNVImage

Returns

boolean


loadDrawingFromUrl()

loadDrawingFromUrl(fnm: string, isBinarize: boolean): Promise<boolean>;

Defined in: niivue/index.ts:3263

Open drawing

Parameters

ParameterTypeDefault valueDescription
fnmstringundefinedfilename of NIfTI format drawing
isBinarizebooleanfalseif true will force drawing voxels to be either 0 or 1.

Returns

Promise<boolean>

Example

niivue.loadDrawingFromUrl("../images/lesion.nii.gz");

See

live demo usage


loadFont()

loadFont(fontSheetUrl: any, metricsUrl: object): Promise<void>;

Defined in: niivue/index.ts:6474

Load typeface for colorbars, measurements and orientation text.

Parameters

ParameterTypeDefault valueDescription
fontSheetUrlanydefaultFontPNGURL to a bitmap font sheet image (e.g., a PNG atlas of glyphs)
metricsUrl{ atlas: { distanceRange: number; height: number; size: number; type: string; width: number; yOrigin: string; }; glyphs: ( | { advance: number; atlasBounds?: undefined; planeBounds?: undefined; unicode: number; } | { advance: number; atlasBounds: { bottom: number; left: number; right: number; top: number; }; planeBounds: { bottom: number; left: number; right: number; top: number; }; unicode: number; })[]; kerning: any[]; metrics: { ascender: number; descender: number; emSize: number; lineHeight: number; underlineThickness: number; underlineY: number; }; }defaultFontMetricsURL to the corresponding font metrics JSON (defines character bounds and spacing)
metricsUrl.atlas{ distanceRange: number; height: number; size: number; type: string; width: number; yOrigin: string; }...-
metricsUrl.atlas.distanceRangenumber2-
metricsUrl.atlas.heightnumber256-
metricsUrl.atlas.sizenumber59.65625-
metricsUrl.atlas.typestring"msdf"-
metricsUrl.atlas.widthnumber512-
metricsUrl.atlas.yOriginstring"bottom"-
metricsUrl.glyphs( | { advance: number; atlasBounds?: undefined; planeBounds?: undefined; unicode: number; } | { advance: number; atlasBounds: { bottom: number; left: number; right: number; top: number; }; planeBounds: { bottom: number; left: number; right: number; top: number; }; unicode: number; })[]...-
metricsUrl.kerningany[][]-
metricsUrl.metrics{ ascender: number; descender: number; emSize: number; lineHeight: number; underlineThickness: number; underlineY: number; }...-
metricsUrl.metrics.ascendernumber0.927734375-
metricsUrl.metrics.descendernumber-0.244140625-
metricsUrl.metrics.emSizenumber1-
metricsUrl.metrics.lineHeightnumber1.171875-
metricsUrl.metrics.underlineThicknessnumber0.048828125-
metricsUrl.metrics.underlineYnumber-0.09765625-

Returns

Promise<void>

a Promise that resolves when the font is loaded

Example

niivue.loadMatCapTexture("Cortex");

See

live demo usage


loadFontTexture()

loadFontTexture(fontUrl: string): Promise<WebGLTexture>;

Defined in: niivue/index.ts:6402

Parameters

ParameterType
fontUrlstring

Returns

Promise<WebGLTexture>


loadFreeSurferConnectome()

loadFreeSurferConnectome(json: FreeSurferConnectome): Promise<Niivue>;

Defined in: niivue/index.ts:4973

load a connectome specified by json

Parameters

ParameterTypeDescription
jsonFreeSurferConnectomefreesurfer model

Returns

Promise<Niivue>

Niivue instance

See

live demo usage


loadFreeSurferConnectomeFromUrl()

loadFreeSurferConnectomeFromUrl(url: string, headers: object): Promise<Niivue>;

Defined in: niivue/index.ts:4961

Load a FreeSurfer-style connectome from a given URL and initialize it.

Parameters

ParameterTypeDescription
urlstringthe URL of the JSON-formatted connectome file
headers{ }optional HTTP headers to include in the fetch request (e.g. for authorization)

Returns

Promise<Niivue>

the Niivue instance (for method chaining)

See

live demo usage


loadFromArrayBuffer()

loadFromArrayBuffer(buffer: ArrayBuffer, name: string): Promise<void>;

Defined in: niivue/index.ts:2493

Load an image or mesh from an array buffer

Parameters

ParameterTypeDescription
bufferArrayBufferArrayBuffer with the entire contents of a mesh or volume
namestringstring of filename, extension used to infer type (NIfTI, MGH, MZ3, etc)

Returns

Promise<void>

See

live demo usage


loadFromFile()

loadFromFile(file: File): Promise<void>;

Defined in: niivue/index.ts:2511

Load a mesh or image volume from a File object

Parameters

ParameterTypeDescription
fileFileFile object selected by the user (e.g. from an HTML input element)

Returns

Promise<void>

a Promise that resolves when the file has been loaded and added to the scene

See

live demo usage


loadFromUrl()

loadFromUrl(fnm: string): Promise<NVImage>;

Defined in: niivue/index.ts:8583

Load a NIfTI image from a URL and convert it to an NVImage object

Parameters

ParameterTypeDescription
fnmstringURL of the NIfTI file to load

Returns

Promise<NVImage>

a Promise resolving to an NVImage (not yet added to GPU or scene)

See

live demo usage


loadImages()

loadImages(images: (
| ImageFromUrlOptions
| LoadFromUrlParams)[]): Promise<Niivue>;

Defined in: niivue/index.ts:4694

Load an array of image or mesh URLs using appropriate handlers

Parameters

ParameterTypeDescription
images( | ImageFromUrlOptions | LoadFromUrlParams)[]array of image or mesh descriptors (with URL and optional name)

Returns

Promise<Niivue>

a Promise resolving to the current NiiVue instance after loading completes

Remarks

Automatically dispatches each item to either volume or mesh loader based on file extension or registered custom loader

See

live demo usage


loadMatCapTexture()

loadMatCapTexture(bmpUrl: string): Promise<WebGLTexture>;

Defined in: niivue/index.ts:6419

Load matcap for illumination model.

Parameters

ParameterTypeDescription
bmpUrlstringname of matcap to load ("Shiny", "Cortex", "Cream")

Returns

Promise<WebGLTexture>

Example

niivue.loadMatCapTexture("Cortex");

See

live demo usage


loadMeshes()

loadMeshes(meshList: LoadFromUrlParams[]): Promise<Niivue>;

Defined in: niivue/index.ts:4910

load an array of meshes

Parameters

ParameterTypeDescription
meshListLoadFromUrlParams[]the array of objects to load. each object must have a resolvable "url" property at a minimum

Returns

Promise<Niivue>

Niivue instance

Example

niivue = new Niivue();
niivue.loadMeshes([{ url: "someMesh.gii" }]);

See

live demo usage


loadPngAsTexture()

loadPngAsTexture(pngUrl: string, textureNum: number): Promise<WebGLTexture>;

Defined in: niivue/index.ts:6346

Parameters

ParameterType
pngUrlstring
textureNumnumber

Returns

Promise<WebGLTexture>


loadVolumes()

loadVolumes(volumeList: ImageFromUrlOptions[]): Promise<Niivue>;

Defined in: niivue/index.ts:4784

load an array of volume objects

Parameters

ParameterTypeDescription
volumeListImageFromUrlOptions[]the array of objects to load. each object must have a resolvable "url" property at a minimum

Returns

Promise<Niivue>

returns the Niivue instance

Example

niivue = new Niivue()
niivue.loadVolumes([{url: 'someImage.nii.gz}, {url: 'anotherImage.nii.gz'}])

See

live demo usage


meshShaderNames()

meshShaderNames(sort: boolean): string[];

Defined in: niivue/index.ts:6610

retrieve all currently loaded meshes

Parameters

ParameterTypeDefault valueDescription
sortbooleantruesort output alphabetically

Returns

string[]

list of available mesh shader names

Example

niivue.meshShaderNames();

See

live demo usage


meshShaderNameToNumber()

meshShaderNameToNumber(meshShaderName: string): number;

Defined in: niivue/index.ts:6516

Parameters

ParameterTypeDefault value
meshShaderNamestring'Phong'

Returns

number


mm2frac()

mm2frac(
mm:
| [number, number, number, number]
| Float32Array
| [number, number, number],
volIdx: number,
isForceSliceMM: boolean): vec3;

Defined in: niivue/index.ts:12160

Parameters

ParameterTypeDefault value
mm| [number, number, number, number] | Float32Array | [number, number, number]undefined
volIdxnumber0
isForceSliceMMbooleanfalse

Returns

vec3


mouseCenterButtonHandler()

mouseCenterButtonHandler(e: MouseEvent): void;

Defined in: niivue/index.ts:1451

Parameters

ParameterType
eMouseEvent

Returns

void


mouseClick()

mouseClick(
x: number,
y: number,
posChange: number,
isDelta: boolean): void;

Defined in: niivue/index.ts:9281

Parameters

ParameterTypeDefault value
xnumberundefined
ynumberundefined
posChangenumber0
isDeltabooleantrue

Returns

void


mouseContextMenuListener()

mouseContextMenuListener(e: MouseEvent): void;

Defined in: niivue/index.ts:1366

Parameters

ParameterType
eMouseEvent

Returns

void


mouseDown()

mouseDown(x: number, y: number): void;

Defined in: niivue/index.ts:3923

Parameters

ParameterType
xnumber
ynumber

Returns

void


mouseDownListener()

mouseDownListener(e: MouseEvent): void;

Defined in: niivue/index.ts:1373

Parameters

ParameterType
eMouseEvent

Returns

void


mouseLeaveListener()

mouseLeaveListener(): void;

Defined in: niivue/index.ts:1791

Returns

void


mouseLeftButtonHandler()

mouseLeftButtonHandler(e: MouseEvent): void;

Defined in: niivue/index.ts:1435

Parameters

ParameterType
eMouseEvent

Returns

void


mouseMove()

mouseMove(x: number, y: number): void;

Defined in: niivue/index.ts:3932

Parameters

ParameterType
xnumber
ynumber

Returns

void


mouseMoveListener()

mouseMoveListener(e: MouseEvent): void;

Defined in: niivue/index.ts:1823

Parameters

ParameterType
eMouseEvent

Returns

void


mouseRightButtonHandler()

mouseRightButtonHandler(e: MouseEvent): void;

Defined in: niivue/index.ts:1468

Parameters

ParameterType
eMouseEvent

Returns

void


mouseUpListener()

mouseUpListener(): void;

Defined in: niivue/index.ts:1600

Returns

void


moveCrosshairInVox()

moveCrosshairInVox(
x: number,
y: number,
z: number): void;

Defined in: niivue/index.ts:12213

move crosshair a fixed number of voxels (not mm)

Parameters

ParameterTypeDescription
xnumbertranslate left (-) or right (+)
ynumbertranslate posterior (-) or +anterior (+)
znumbertranslate inferior (-) or superior (+)

Returns

void

Example

niivue.moveCrosshairInVox(1, 0, 0);

See

live demo usage


moveVolumeDown()

moveVolumeDown(volume: NVImage): void;

Defined in: niivue/index.ts:3904

Move a volume down one index position in the stack of loaded volumes. This moves it down one layer

Parameters

ParameterTypeDescription
volumeNVImagethe volume to move

Returns

void

Example

niivue = new Niivue();
niivue.moveVolumeDown(this.volumes[1]); // move the second image to the background position (it was 1 index, now will be 0)

moveVolumeToBottom()

moveVolumeToBottom(volume: NVImage): void;

Defined in: niivue/index.ts:3881

Move a volume to the bottom of the stack of loaded volumes. The volume will become the background

Parameters

ParameterTypeDescription
volumeNVImagethe volume to move

Returns

void

Example

niivue = new Niivue();
niivue.moveVolumeToBottom(this.volumes[3]); // move the 4th volume to the 0 position. It will be the new background

moveVolumeToTop()

moveVolumeToTop(volume: NVImage): void;

Defined in: niivue/index.ts:3916

Move a volume to the top position in the stack of loaded volumes. This will be the top layer

Parameters

ParameterTypeDescription
volumeNVImagethe volume to move

Returns

void

Example

niivue = new Niivue();
niivue.moveVolumeToTop(this.volumes[0]); // move the background image to the top layer position

moveVolumeUp()

moveVolumeUp(volume: NVImage): void;

Defined in: niivue/index.ts:3892

Move a volume up one index position in the stack of loaded volumes. This moves it up one layer

Parameters

ParameterTypeDescription
volumeNVImagethe volume to move

Returns

void

Example

niivue = new Niivue();
niivue.moveVolumeUp(this.volumes[0]); // move the background image to the second index position (it was 0 index, now will be 1)

niftiArray2NVImage()

niftiArray2NVImage(bytes: Uint8Array): Promise<NVImage>;

Defined in: niivue/index.ts:8573

Convert a binary NIfTI file (as a Uint8Array) to an NVImage object

Parameters

ParameterTypeDescription
bytesUint8Arraybinary contents of a NIfTI file

Returns

Promise<NVImage>

a Promise resolving to an NVImage object

See

live demo usage


overlayRGBA()

overlayRGBA(volume: NVImage): Uint8ClampedArray;

Defined in: niivue/index.ts:4308

Parameters

ParameterType
volumeNVImage

Returns

Uint8ClampedArray


r16Tex()

r16Tex(
texID: WebGLTexture,
activeID: number,
dims: number[],
img16: Int16Array): WebGLTexture;

Defined in: niivue/index.ts:5061

Parameters

ParameterType
texIDWebGLTexture
activeIDnumber
dimsnumber[]
img16Int16Array

Returns

WebGLTexture


r8Tex()

r8Tex(
texID: WebGLTexture,
activeID: number,
dims: number[],
isInit: boolean): WebGLTexture;

Defined in: niivue/index.ts:6178

Parameters

ParameterTypeDefault value
texIDWebGLTextureundefined
activeIDnumberundefined
dimsnumber[]undefined
isInitbooleanfalse

Returns

WebGLTexture


r8Tex2D()

r8Tex2D(
texID: WebGLTexture,
activeID: number,
dims: number[],
isInit: boolean): WebGLTexture;

Defined in: niivue/index.ts:6146

Parameters

ParameterTypeDefault value
texIDWebGLTextureundefined
activeIDnumberundefined
dimsnumber[]undefined
isInitbooleanfalse

Returns

WebGLTexture


readDirectory()

readDirectory(directory: FileSystemDirectoryEntry): FileSystemEntry[];

Defined in: niivue/index.ts:2441

Parameters

ParameterType
directoryFileSystemDirectoryEntry

Returns

FileSystemEntry[]


refreshColormaps()

refreshColormaps(): Niivue;

Defined in: niivue/index.ts:8946

Rebuild and upload all colormap textures for volumes and meshes

Returns

Niivue

the current NiiVue instance, or undefined if no colormaps are used

See

live demo usage


refreshDrawing()

refreshDrawing(isForceRedraw: boolean, useClickToSegmentBitmap: boolean): void;

Defined in: niivue/index.ts:6046

copy drawing bitmap from CPU to GPU storage and redraw the screen

Parameters

ParameterTypeDefault valueDescription
isForceRedrawbooleantruerefreshes scene immediately (default true)
useClickToSegmentBitmapbooleanfalse-

Returns

void

Example

niivue.refreshDrawing();

See

live demo usage


refreshLayers()

refreshLayers(overlayItem: NVImage, layer: number): void;

Defined in: niivue/index.ts:7357

Parameters

ParameterType
overlayItemNVImage
layernumber

Returns

void


registerInteractions()

registerInteractions(): void;

Defined in: niivue/index.ts:2219

Returns

void


removeHaze()

removeHaze(level: number, volIndex: number): void;

Defined in: niivue/index.ts:3436

remove dark voxels in air

Parameters

ParameterTypeDefault valueDescription
levelnumber5(1-5) larger values for more preserved voxels
volIndexnumber0volume to dehaze

Returns

void

Example

niivue.removeHaze(3, 0);

See

live demo usage


removeMesh()

removeMesh(mesh: NVMesh): void;

Defined in: niivue/index.ts:3849

Remove a triangulated mesh, connectome or tractogram

Parameters

ParameterTypeDescription
meshNVMeshmesh to delete

Returns

void

Example

niivue = new Niivue();
niivue.removeMesh(this.meshes[3]);

See

live demo usage


removeMeshByUrl()

removeMeshByUrl(url: string): void;

Defined in: niivue/index.ts:3865

Remove a triangulated mesh, connectome or tractogram

Parameters

ParameterTypeDescription
urlstringURL of mesh to delete

Returns

void

Example

niivue.removeMeshByUrl("../images/cit168.mz3");

removeVolume()

removeVolume(volume: NVImage): void;

Defined in: niivue/index.ts:3814

Remove a volume

Parameters

ParameterTypeDescription
volumeNVImagevolume to delete

Returns

void

Example

niivue = new Niivue();
niivue.removeVolume(this.volumes[3]);

See

live demo usage


removeVolumeByIndex()

removeVolumeByIndex(index: number): void;

Defined in: niivue/index.ts:3834

Remove a volume from the scene by its index

Parameters

ParameterTypeDescription
indexnumberindex of the volume to remove

Returns

void

Throws

if the index is out of bounds

See

live demo usage


removeVolumeByUrl()

removeVolumeByUrl(url: string): void;

Defined in: niivue/index.ts:2396

Remove volume by url

Parameters

ParameterTypeDescription
urlstringVolume added by url to remove

Returns

void

See

live demo usage


requestCORSIfNotSameOrigin()

requestCORSIfNotSameOrigin(img: HTMLImageElement, url: string): void;

Defined in: niivue/index.ts:6338

Parameters

ParameterType
imgHTMLImageElement
urlstring

Returns

void


reserveColorbarPanel()

reserveColorbarPanel(): number[];

Defined in: niivue/index.ts:9902

Returns

number[]


resetBriCon()

resetBriCon(msg: MouseEvent | TouchEvent): void;

Defined in: niivue/index.ts:1891

Parameters

ParameterTypeDefault value
msgMouseEvent | TouchEventnull

Returns

void


resizeListener()

resizeListener(): void;

Defined in: niivue/index.ts:1288

Internal

callback function to handle resize window events, redraws the scene.

Returns

void


reverseFaces()

reverseFaces(mesh: number): void;

Defined in: niivue/index.ts:3669

reverse triangle winding of mesh (swap front and back faces)

Parameters

ParameterTypeDescription
meshnumberidentity of mesh to change

Returns

void

Example

niivue.reverseFaces(niivue.meshes[0].id);

See

live demo usage


rgba16Tex()

rgba16Tex(
texID: WebGLTexture,
activeID: number,
dims: number[],
isInit: boolean): WebGLTexture;

Defined in: niivue/index.ts:6301

Parameters

ParameterTypeDefault value
texIDWebGLTextureundefined
activeIDnumberundefined
dimsnumber[]undefined
isInitbooleanfalse

Returns

WebGLTexture


rgbaTex()

rgbaTex(
texID: WebGLTexture,
activeID: number,
dims: number[],
isInit: boolean): WebGLTexture;

Defined in: niivue/index.ts:6266

Parameters

ParameterTypeDefault value
texIDWebGLTextureundefined
activeIDnumberundefined
dimsnumber[]undefined
isInitbooleanfalse

Returns

WebGLTexture


rgbaTex2D()

rgbaTex2D(
texID: WebGLTexture,
activeID: number,
dims: number[],
data: Uint8Array,
isFlipVertical: boolean): WebGLTexture;

Defined in: niivue/index.ts:6213

Parameters

ParameterTypeDefault value
texIDWebGLTextureundefined
activeIDnumberundefined
dimsnumber[]undefined
dataUint8Arraynull
isFlipVerticalbooleantrue

Returns

WebGLTexture


saveDocument()

saveDocument(
fileName: string,
compress: boolean,
options: object): Promise<void>;

Defined in: niivue/index.ts:4664

Save the current scene as an .nvd document.

Parameters

ParameterTypeDefault valueDescription
fileNamestring'untitled.nvd'Name of the file to create (default "untitled.nvd")
compressbooleantrueIf true, gzip-compress the JSON (default true)
options{ embedImages?: boolean; embedPreview?: boolean; }{}Fine-grained switches: • embedImages – store encodedImageBlobs (default true) • embedPreview – store previewImageDataURL (default true)
options.embedImages?booleanundefined-
options.embedPreview?booleanundefined-

Returns

Promise<void>

Example

// smallest possible file – no preview, just metadata
await nv.saveDocument("scene.nvd", true, {
embedImages: false,
embedPreview: false,
});

See

live demo usage


saveHTML()

saveHTML(
fileName: string,
canvasId: string,
esm: string): Promise<void>;

Defined in: niivue/index.ts:4629

Save the current scene as a standalone HTML file

Parameters

ParameterTypeDefault valueDescription
fileNamestring'untitled.html'name of the HTML file to save (default: "untitled.html")
canvasIdstring'gl1'ID of the canvas element NiiVue will attach to
esmstringundefinedbundled ES module source for NiiVue

Returns

Promise<void>

a Promise that resolves when the file is downloaded

See

live demo usage


saveImage()

saveImage(options: SaveImageOptions): Promise<boolean | Uint8Array>;

Defined in: niivue/index.ts:3487

Save voxel-based image to disk.

Parameters

ParameterTypeDefault valueDescription
optionsSaveImageOptionsdefaultSaveImageOptionsconfiguration object with the following fields: - filename: name of the NIfTI image to create - isSaveDrawing: whether to save the drawing layer or the background image - volumeByIndex: which image layer to save (0 for background)

Returns

Promise<boolean | Uint8Array>

true if successful when writing to disk, or a Uint8Array if exported as binary data

Example

niivue.saveImage({ filename: "myimage.nii.gz", isSaveDrawing: true });
niivue.saveImage({ filename: "myimage.nii.gz", isSaveDrawing: true });

See

live demo usage


saveScene()

saveScene(filename: string): Promise<void>;

Defined in: niivue/index.ts:966

save webgl2 canvas as png format bitmap

Parameters

ParameterTypeDefault valueDescription
filenamestring'niivue.png'filename for screen capture

Returns

Promise<void>

Example

niivue.saveScene("test.png");

See

live demo usage


scalecropFloat32()

scalecropFloat32(
img32: Float32Array,
dst_min: number,
dst_max: number,
src_min: number,
scale: number): Promise<Float32Array>;

Defined in: niivue/index.ts:8372

Parameters

ParameterTypeDefault value
img32Float32Arrayundefined
dst_minnumber0
dst_maxnumber1
src_minnumberundefined
scalenumberundefined

Returns

Promise<Float32Array>


scalecropUint8()

scalecropUint8(
img32: Float32Array,
dst_min: number,
dst_max: number,
src_min: number,
scale: number): Promise<Uint8Array>;

Defined in: niivue/index.ts:8353

Parameters

ParameterTypeDefault value
img32Float32Arrayundefined
dst_minnumber0
dst_maxnumber255
src_minnumberundefined
scalenumberundefined

Returns

Promise<Uint8Array>


scaleSlice()

scaleSlice(
w: number,
h: number,
padPixelsWH: [number, number],
canvasWH: [number, number]): number[];

Defined in: niivue/index.ts:12305

Parameters

ParameterType
wnumber
hnumber
padPixelsWH[number, number]
canvasWH[number, number]

Returns

number[]


sceneExtentsMinMax()

sceneExtentsMinMax(isSliceMM: boolean): vec3[];

Defined in: niivue/index.ts:10889

Parameters

ParameterTypeDefault value
isSliceMMbooleantrue

Returns

vec3[]


screenFieldOfViewExtendedMM()

screenFieldOfViewExtendedMM(axCorSag: number): MM;

Defined in: niivue/index.ts:10429

Parameters

ParameterTypeDefault value
axCorSagnumber0

Returns

MM


screenFieldOfViewExtendedVox()

screenFieldOfViewExtendedVox(axCorSag: number): MM;

Defined in: niivue/index.ts:10413

Parameters

ParameterTypeDefault value
axCorSagnumber0

Returns

MM


screenFieldOfViewMM()

screenFieldOfViewMM(axCorSag: number, forceSliceMM: boolean): vec3;

Defined in: niivue/index.ts:10385

Parameters

ParameterTypeDefault value
axCorSagnumber0
forceSliceMMbooleanfalse

Returns

vec3


screenFieldOfViewVox()

screenFieldOfViewVox(axCorSag: number): vec3;

Defined in: niivue/index.ts:10378

Parameters

ParameterTypeDefault value
axCorSagnumber0

Returns

vec3


screenXY2mm()

screenXY2mm(
x: number,
y: number,
forceSlice: number): vec4;

Defined in: niivue/index.ts:9519

Parameters

ParameterTypeDefault value
xnumberundefined
ynumberundefined
forceSlicenumber-1

Returns

vec4


screenXY2TextureFrac()

screenXY2TextureFrac(
x: number,
y: number,
i: number,
restrict0to1: boolean): vec3;

Defined in: niivue/index.ts:12247

Parameters

ParameterTypeDefault value
xnumberundefined
ynumberundefined
inumberundefined
restrict0to1booleantrue

Returns

vec3


setAdditiveBlend()

setAdditiveBlend(isAdditiveBlend: boolean): void;

Defined in: niivue/index.ts:3007

control whether voxel overlays are combined using additive (emission) or traditional (transmission) blending.

Parameters

ParameterTypeDescription
isAdditiveBlendbooleanemission (true) or transmission (false) mixing

Returns

void

Example

niivue.isAdditiveBlend(true);

See

live demo usage


setAtlasOutline()

setAtlasOutline(isOutline: number): void;

Defined in: niivue/index.ts:10270

Enable or disable atlas outline overlay

Parameters

ParameterTypeDescription
isOutlinenumbernumber 0 to 1 for outline opacity

Returns

void

See

live demo usage


setClipPlane()

setClipPlane(depthAzimuthElevation: number[]): void;

Defined in: niivue/index.ts:3989

Update the clip plane orientation in 3D view mode.

Parameters

ParameterTypeDescription
depthAzimuthElevationnumber[]a 3-component array: - depth: distance of clip plane from center of volume (0 to ~1.73, or >2.0 to disable clipping) - azimuth: camera angle around the object in degrees (0–360 or -180–180) - elevation: camera height in degrees (-90 to 90)

Returns

void

Example

niivue = new Niivue();
niivue.setClipPlane([42, 42]);

See

live demo usage


setClipPlaneColor()

setClipPlaneColor(color: number[]): void;

Defined in: niivue/index.ts:4201

set the color of the 3D clip plane

Parameters

ParameterTypeDescription
colornumber[]the new color. expects an array of RGBA values. values can range from 0 to 1

Returns

void

Example

niivue.setClipPlaneColor([1, 1, 1, 0.5]); // white, transparent

See

live demo usage


setClipPlaneThick()

setClipPlaneThick(thick: number): void;

Defined in: niivue/index.ts:4215

adjust thickness of the 3D clip plane

Parameters

ParameterTypeDescription
thicknumberthickness of slab. Value 0..1.73 (cube opposite corner length is sqrt(3)).

Returns

void

Example

niivue.setClipPlaneThick(0.3); // thin slab

See

live demo usage


setClipVolume()

setClipVolume(low: number[], high: number[]): void;

Defined in: niivue/index.ts:4232

set the clipping region for volume rendering

Parameters

ParameterTypeDescription
lownumber[]3-component array specifying the lower bound of the clipping region along the X, Y, and Z axes. Values range from 0 (start) to 1 (end of volume).
highnumber[]3-component array specifying the upper bound of the clipping region along the X, Y, and Z axes. Values range from 0 to 1.

Returns

void

Example

niivue.setClipPlaneColor([0.0, 0.0, 0.2], [1.0, 1.0, 0.7]); // remove inferior 20% and superior 30%

See

live demo usage


setColormap()

setColormap(id: string, colormap: string): void;

Defined in: niivue/index.ts:8018

update the colormap of an image given its ID

Parameters

ParameterTypeDescription
idstringthe ID of the NVImage
colormapstringthe name of the colormap to use

Returns

void

Example

niivue.setColormap(niivue.volumes[0].id,, 'red')

See

live demo usage


setColorMap()

setColorMap(id: string, colormap: string): void;

Defined in: niivue/index.ts:8761

Parameters

ParameterTypeDescription
idstringID of the volume
colormapstringname of the colormap to apply

Returns

void

Deprecated

Use setColormap instead. This alias is retained for compatibility with NiiVue < 0.35.


setColormapNegative()

setColormapNegative(id: string, colormapNegative: string): void;

Defined in: niivue/index.ts:8774

use given color map for negative voxels in image

Parameters

ParameterTypeDescription
idstringthe ID of the NVImage
colormapNegativestringthe name of the colormap to use

Returns

void

Example

niivue = new Niivue();
niivue.setColormapNegative(niivue.volumes[1].id, "winter");

See

live demo usage


setCornerOrientationText()

setCornerOrientationText(isCornerOrientationText: boolean): void;

Defined in: niivue/index.ts:2822

determine if text appears at corner (true) or sides of 2D slice.

Parameters

ParameterTypeDescription
isCornerOrientationTextbooleancontrols position of text

Returns

void

Example

niivue.setCornerOrientationText(true);

See

live demo usage


setCrosshairColor()

setCrosshairColor(color: number[]): void;

Defined in: niivue/index.ts:4011

set the crosshair and colorbar outline color

Parameters

ParameterTypeDescription
colornumber[]an RGBA array. values range from 0 to 1

Returns

void

Example

niivue = new Niivue();
niivue.setCrosshairColor([0, 1, 0, 0.5]); // set crosshair to transparent green

See

live demo usage


setCrosshairWidth()

setCrosshairWidth(crosshairWidth: number): void;

Defined in: niivue/index.ts:4021

set thickness of crosshair

Parameters

ParameterType
crosshairWidthnumber

Returns

void

Example

niivue.crosshairWidth(2);

See

live demo usage


setCustomGradientTexture()

setCustomGradientTexture(data: Float32Array | Uint8Array, dims?: number[]): void;

Defined in: niivue/index.ts:7006

Set a custom gradient texture to use instead of the one produced by gradientGL When a custom gradient texture is set, the useCustomGradientTexture flag is set to true to prevent gradientGL from overwriting the custom texture during volume updates.

Parameters

ParameterTypeDescription
dataFloat32Array | Uint8ArrayFloat32Array or Uint8Array containing RGBA gradient data, or null to revert to auto-generated gradient
dims?number[]Optional dimensions array [width, height, depth]. If not provided, uses current volume dimensions

Returns

void

Example

niivue = new Niivue();
niivue.loadVolumes([{ url: "./someImage.nii" }]);
// Create custom gradient data
const customGradient = new Float32Array(256 * 256 * 256 * 4); // example dimensions
// ... fill customGradient with desired values
niivue.setCustomGradientTexture(customGradient, [256, 256, 256]);

// To revert to auto-generated gradient:
niivue.setCustomGradientTexture(null);

See

live demo usage


setCustomLayout()

setCustomLayout(layout: object[]): void;

Defined in: niivue/index.ts:2875

Set a custom slice layout. This overrides the built-in layouts.

Parameters

ParameterTypeDescription
layoutobject[]Array of layout specifications for each slice view

Returns

void

Example

niivue.setCustomLayout([
// Left 50% - Sag
{sliceType: 2, position: [0, 0, 0.5, 1.0]},
// Top right - Cor
{sliceType: 1, position: [0.5, 0, 0.5, 0.5]},
// Bottom right - Ax
{sliceType: 0, position: [0.5, 0.5, 0.5, 0.5]}
])

produces:
+----------------+----------------+
| | |
| | coronal |
| | |
| | |
| sagittal +----------------+
| | |
| | axial |
| | |
| | |
+----------------+----------------+

setCustomMeshShader()

setCustomMeshShader(fragmentShaderText: string, name: string): number;

Defined in: niivue/index.ts:6595

Define a new GLSL shader program to influence mesh coloration

Parameters

ParameterTypeDefault valueDescription
fragmentShaderTextstring''the GLSL source code for the custom fragment shader
namestring'Custom'a descriptive label for the shader (used in menus or debugging)

Returns

number

the index of the new shader (use with setMeshShader)

See

live demo usage


setDefaults()

setDefaults(options: Partial<NVConfigOptions>, resetBriCon: boolean): void;

Defined in: niivue/index.ts:2945

Reset scene to default settings.

Parameters

ParameterTypeDefault valueDescription
optionsPartial<NVConfigOptions>{}
resetBriConbooleanfalsealso reset contrast (default false).

Returns

void

See

Example

niivue.nv1.setDefaults(opts, true);

setDragEnd()

setDragEnd(x: number, y: number): void;

Defined in: niivue/index.ts:1950

Parameters

ParameterType
xnumber
ynumber

Returns

void


setDragStart()

setDragStart(x: number, y: number): void;

Defined in: niivue/index.ts:1943

Parameters

ParameterType
xnumber
ynumber

Returns

void


setDrawColormap()

setDrawColormap(name: string): void;

Defined in: niivue/index.ts:4043

Parameters

ParameterType
namestring

Returns

void


setDrawingEnabled()

setDrawingEnabled(trueOrFalse: boolean): void;

Defined in: niivue/index.ts:4054

does dragging over a 2D slice create a drawing?

Parameters

ParameterTypeDescription
trueOrFalsebooleanenabled (true) or not (false)

Returns

void

Example

niivue.setDrawingEnabled(true);

See

live demo usage


setDrawOpacity()

setDrawOpacity(opacity: number): void;

Defined in: niivue/index.ts:4094

control whether drawing is transparent (0), opaque (1) or translucent (between 0 and 1).

Parameters

ParameterTypeDescription
opacitynumbertranslucency of drawing

Returns

void

Example

niivue.setDrawOpacity(0.7);

See

live demo usage


setFrame4D()

setFrame4D(id: string, frame4D: number): void;

Defined in: niivue/index.ts:8852

show desired 3D volume from 4D time series

Parameters

ParameterTypeDescription
idstringthe ID of the 4D NVImage
frame4Dnumberframe to display (indexed from zero)

Returns

void

Example

nv1.setFrame4D(nv1.volumes[0].id, 42);

See

live demo usage


setGamma()

setGamma(gamma: number): void;

Defined in: niivue/index.ts:8811

adjust screen gamma. Low values emphasize shadows but can appear flat, high gamma hides shadow details.

Parameters

ParameterTypeDefault valueDescription
gammanumber1.0selects luminance, default is 1

Returns

void

Example

niivue.setGamma(1.0);

See

live demo usage


setGradientOpacity()

setGradientOpacity(gradientOpacity: number, renderSilhouette: number): Promise<void>;

Defined in: niivue/index.ts:4288

set volume rendering opacity influence of the gradient magnitude

Parameters

ParameterTypeDefault valueDescription
gradientOpacitynumber0.0amount of gradient magnitude influence on opacity (0..1), default 0 (no-influence)
renderSilhouettenumber0.0make core transparent to enhance rims (0..1), default 0 (no-influence)

Returns

Promise<void>

Example

niivue.setGradientOpacity(0.6);

See

live demo usage


setHeroImage()

setHeroImage(fraction: number): void;

Defined in: niivue/index.ts:2844

determine proportion of screen real estate devoted to rendering in multiplanar view.

Parameters

ParameterTypeDescription
fractionnumberproportion of screen devoted to primary (hero) image (0 to disable)

Returns

void

Example

niivue.setHeroImage(0.5);

See

live demo usage


setHighResolutionCapable()

setHighResolutionCapable(forceDevicePixelRatio: number | boolean): void;

Defined in: niivue/index.ts:3027

Force WebGL canvas to use high resolution display, regardless of browser defaults.

Parameters

ParameterTypeDescription
forceDevicePixelRationumber | boolean1: block high DPI; 0= allow high DPI: >0 use specified pixel ratio

Returns

void

Example

niivue.setHighResolutionCapable(true);

See

live demo usage


setInterpolation()

setInterpolation(isNearest: boolean): void;

Defined in: niivue/index.ts:10282

select between nearest and linear interpolation for voxel based images

Parameters

ParameterTypeDescription
isNearestbooleanwhether nearest neighbor interpolation is used, else linear interpolation

Returns

void

Example

niivue.setInterpolation(true);

See

live demo usage


setIsOrientationTextVisible()

setIsOrientationTextVisible(isOrientationTextVisible: boolean): void;

Defined in: niivue/index.ts:2833

Show or hide orientation labels (e.g., L/R, A/P) in 2D slice views

Parameters

ParameterTypeDescription
isOrientationTextVisiblebooleanwhether orientation text should be displayed

Returns

void

Example

niivue.setIsOrientationTextVisible(false);

See

live demo usage


setMesh()

setMesh(mesh: NVMesh, toIndex: number): void;

Defined in: niivue/index.ts:3782

Parameters

ParameterTypeDefault value
meshNVMeshundefined
toIndexnumber0

Returns

void


setMeshLayerProperty()

setMeshLayerProperty(
mesh: number,
layer: number,
key: keyof NVMeshLayer,
val: number): Promise<void>;

Defined in: niivue/index.ts:3688

reverse triangle winding of mesh (swap front and back faces)

Parameters

ParameterTypeDescription
meshnumberidentity of mesh to change
layernumberselects the mesh overlay (e.g. GIfTI or STC file)
keykeyof NVMeshLayerattribute to change
valnumbervalue for attribute

Returns

Promise<void>

Example

niivue.setMeshLayerProperty(niivue.meshes[0].id, 0, "frame4D", 22);

See

live demo usage


setMeshProperty()

setMeshProperty(
id: number,
key: keyof NVMesh,
val:
| string
| number
| boolean
| number[]
| ColorMap
| Float32Array
| Uint8Array
| LegacyConnectome): void;

Defined in: niivue/index.ts:3610

change property of mesh, tractogram or connectome

Parameters

ParameterTypeDescription
idnumberidentity of mesh to change
keykeyof NVMeshattribute to change
val| string | number | boolean | number[] | ColorMap | Float32Array | Uint8Array | LegacyConnectomefor attribute

Returns

void

Example

niivue.setMeshProperty(niivue.meshes[0].id, "fiberLength", 42);

See

live demo usage


setMeshShader()

setMeshShader(id: number, meshShaderNameOrNumber: number): void;

Defined in: niivue/index.ts:6532

select new shader for triangulated meshes and connectomes. Note that this function requires the mesh is fully loaded: you may want use await with loadMeshes (as seen in live demo).

Parameters

ParameterTypeDefault valueDescription
idnumberundefinedid of mesh to change
meshShaderNameOrNumbernumber2identify shader for usage

Returns

void

Example

niivue.setMeshShader("toon");

See

live demo usage


setMeshThicknessOn2D()

setMeshThicknessOn2D(meshThicknessOn2D: number): void;

Defined in: niivue/index.ts:2974

Limit visibility of mesh in front of a 2D image. Requires world-space mode.

Parameters

ParameterTypeDescription
meshThicknessOn2Dnumberdistance from voxels for clipping mesh. Use Infinity to show entire mesh or 0.0 to hide mesh.

Returns

void

Example

niivue.setMeshThicknessOn2D(42);

See

live demo usage


setModulationImage()

setModulationImage(
idTarget: string,
idModulation: string,
modulateAlpha: number): void;

Defined in: niivue/index.ts:8789

modulate intensity of one image based on intensity of another

Parameters

ParameterTypeDefault valueDescription
idTargetstringundefinedthe ID of the NVImage to be biased
idModulationstringundefinedthe ID of the NVImage that controls bias (empty string to disable modulation)
modulateAlphanumber0does the modulation influence alpha transparency (values greater than 1).

Returns

void

Example

niivue.setModulationImage(niivue.volumes[0].id, niivue.volumes[1].id);

See


setMultiplanarLayout()

setMultiplanarLayout(layout: number): void;

Defined in: niivue/index.ts:2808

control placement of 2D slices.

Parameters

ParameterTypeDescription
layoutnumberAUTO: 0, COLUMN: 1, GRID: 2, ROW: 3,

Returns

void

Example

niivue.setMultiplanarLayout(2);

See

live demo usage


setMultiplanarPadPixels()

setMultiplanarPadPixels(pixels: number): void;

Defined in: niivue/index.ts:2797

insert a gap between slices of a mutliplanar view.

Parameters

ParameterTypeDescription
pixelsnumberspacing between tiles of multiplanar view

Returns

void

Example

niivue.setMultiplanarPadPixels(4);

See

live demo usage


setOpacity()

setOpacity(volIdx: number, newOpacity: number): void;

Defined in: niivue/index.ts:4177

set the opacity of a volume given by volume index

Parameters

ParameterTypeDescription
volIdxnumberthe volume index of the volume to change
newOpacitynumberthe opacity value. valid values range from 0 to 1. 0 will effectively remove a volume from the scene

Returns

void

Example

niivue = new Niivue();
niivue.setOpacity(0, 0.5); // make the first volume transparent

See

live demo usage


setPan2Dxyzmm()

setPan2Dxyzmm(xyzmmZoom: vec4): void;

Defined in: niivue/index.ts:3703

adjust offset position and scale of 2D sliceScale

Parameters

ParameterTypeDescription
xyzmmZoomvec4first three components are spatial, fourth is scaling

Returns

void

Example

niivue.setPan2Dxyzmm([5, -4, 2, 1.5]);

setPenValue()

setPenValue(penValue: number, isFilledPen: boolean): void;

Defined in: niivue/index.ts:4082

determine color and style of drawing

Parameters

ParameterTypeDefault valueDescription
penValuenumberundefinedsets the color of the pen
isFilledPenbooleanfalsedetermines if dragging creates flood-filled shape

Returns

void

Example

niivue.setPenValue(1, true);

See

live demo usage


setPivot3D()

setPivot3D(): void;

Defined in: niivue/index.ts:10941

Returns

void


setRadiologicalConvention()

setRadiologicalConvention(isRadiologicalConvention: boolean): void;

Defined in: niivue/index.ts:2933

control whether 2D slices use radiological or neurological convention.

Parameters

ParameterTypeDescription
isRadiologicalConventionbooleannew display convention

Returns

void

Example

niivue.setRadiologicalConvention(true);

See

live demo usage


setRenderAzimuthElevation()

setRenderAzimuthElevation(a: number, e: number): void;

Defined in: niivue/index.ts:3716

set rotation of 3D render view

Parameters

ParameterType
anumber
enumber

Returns

void

Example

niivue.setRenderAzimuthElevation(45, 15);

See

live demo usage


setRenderDrawAmbientOcclusion()

setRenderDrawAmbientOcclusion(ao: number): void;

Defined in: niivue/index.ts:8745

darken crevices and brighten corners when 3D rendering drawings.

Parameters

ParameterTypeDescription
aonumberamount of ambient occlusion (default 0.4)

Returns

void

See

live demo usage


setScale()

setScale(scale: number): void;

Defined in: niivue/index.ts:4189

set the scale of the 3D rendering. Larger numbers effectively zoom.

Parameters

ParameterTypeDescription
scalenumberthe new scale value

Returns

void

Example

niivue.setScale(2); // zoom some

See

live demo usage


setSelectionBoxColor()

setSelectionBoxColor(color: number[]): void;

Defined in: niivue/index.ts:4107

set the selection box color. A selection box is drawn when you right click and drag to change image contrast

Parameters

ParameterTypeDescription
colornumber[]an RGBA array. values range from 0 to 1

Returns

void

Example

niivue = new Niivue();
niivue.setSelectionBoxColor([0, 1, 0, 0.5]); // set to transparent green

See

live demo usage


setSliceMM()

setSliceMM(isSliceMM: boolean): void;

Defined in: niivue/index.ts:2996

control 2D slice view mode.

Parameters

ParameterTypeDescription
isSliceMMbooleancontrol whether 2D slices use world space (true) or voxel space (false). Beware that voxel space mode limits properties like panning, zooming and mesh visibility.

Returns

void

Example

niivue.setSliceMM(true);

See

live demo usage


setSliceMosaicString()

setSliceMosaicString(str: string): void;

Defined in: niivue/index.ts:2985

Create a custom multi-slice mosaic (aka lightbox, montage) view.

Parameters

ParameterTypeDescription
strstringdescription of mosaic.

Returns

void

Example

niivue.setSliceMosaicString("A 0 20 C 30 S 42");

See

live demo usage


setSliceType()

setSliceType(st: SLICE_TYPE): this;

Defined in: niivue/index.ts:4162

set the slice type. This changes the view mode

Parameters

ParameterTypeDescription
stSLICE_TYPEsliceType is an enum of slice types to use

Returns

this

Example

niivue = new Niivue();
niivue.setSliceType(Niivue.sliceTypeMultiplanar);

See

live demo usage


setVolume()

setVolume(volume: NVImage, toIndex: number): void;

Defined in: niivue/index.ts:3750

set the index of a volume. This will change it's ordering and appearance if there are multiple volumes loaded.

Parameters

ParameterTypeDefault valueDescription
volumeNVImageundefinedthe volume to update
toIndexnumber0the index to move the volume to. The default is the background (0 index)

Returns

void

Example

niivue = new Niivue();
niivue.setVolume(someVolume, 1); // move it to the second position in the array of loaded volumes (0 is the first position)

setVolumeRenderIllumination()

setVolumeRenderIllumination(gradientAmount: number): Promise<void>;

Defined in: niivue/index.ts:4252

set proportion of volume rendering influenced by selected matcap.

Parameters

ParameterTypeDefault valueDescription
gradientAmountnumber0.0amount of matcap (NaN or 0..1), default 0 (matte, surface normal does not influence color). NaN renders the gradients.

Returns

Promise<void>

Example

niivue.setVolumeRenderIllumination(0.6);

See


sliceScale()

sliceScale(forceVox: boolean): SliceScale;

Defined in: niivue/index.ts:9051

Parameters

ParameterTypeDefault value
forceVoxbooleanfalse

Returns

SliceScale


sliceScroll2D()

sliceScroll2D(
posChange: number,
x: number,
y: number,
isDelta: boolean): void;

Defined in: niivue/index.ts:4112

Parameters

ParameterTypeDefault value
posChangenumberundefined
xnumberundefined
ynumberundefined
isDeltabooleantrue

Returns

void


sliceScroll3D()

sliceScroll3D(posChange: number): void;

Defined in: niivue/index.ts:9089

Parameters

ParameterTypeDefault value
posChangenumber0

Returns

void


sph2cartDeg()

sph2cartDeg(azimuth: number, elevation: number): number[];

Defined in: niivue/index.ts:3961

convert spherical AZIMUTH, ELEVATION to Cartesian

Parameters

ParameterTypeDescription
azimuthnumberazimuth number
elevationnumberelevation number

Returns

number[]

the converted [x, y, z] coordinates

Example

niivue = new Niivue();
xyz = niivue.sph2cartDeg(42, 42);

sumBitmap()

sumBitmap(img: Uint8Array): number;

Defined in: niivue/index.ts:9163

Parameters

ParameterType
imgUint8Array

Returns

number


swizzleVec3MM()

swizzleVec3MM(v3: vec3, axCorSag: SLICE_TYPE): vec3;

Defined in: niivue/index.ts:10365

Parameters

ParameterType
v3vec3
axCorSagSLICE_TYPE

Returns

vec3


sync()

sync(): void;

Defined in: niivue/index.ts:1186

Internal

Sync the scene controls (orientation, crosshair location, etc.) from one Niivue instance to another. useful for using one canvas to drive another.

Returns

void

Example

niivue1 = new Niivue();
niivue2 = new Niivue();
niivue2.syncWith(niivue1);
niivue2.sync();

syncWith()

syncWith(otherNV: Niivue | Niivue[], syncOpts: object): void;

Defined in: niivue/index.ts:1091

Sync the scene controls (orientation, crosshair location, etc.) from one Niivue instance to another. useful for using one canvas to drive another.

Parameters

ParameterTypeDescription
otherNVNiivue | Niivue[]the other Niivue instance that is the main controller
syncOpts{ 2d: boolean; 3d: boolean; }-
syncOpts.2dboolean-
syncOpts.3dboolean-

Returns

void

Example

niivue1 = new Niivue();
niivue2 = new Niivue();
niivue2.syncWith(niivue1);

Deprecated

use broadcastTo instead

See

live demo usage


textHeight()

textHeight(scale: number, str: string): number;

Defined in: niivue/index.ts:10090

Parameters

ParameterType
scalenumber
strstring

Returns

number


textSizePoints()

textSizePoints(): void;

Defined in: niivue/index.ts:1256

Compute point size for screen text that scales with resolution and screen size.

  • Keeps physical font size consistent across different DPIs.
  • Uses fontSizeScaling to scale with canvas size above a reference threshold.

Returns

void


textWidth()

textWidth(scale: number, str: string): number;

Defined in: niivue/index.ts:10077

Parameters

ParameterType
scalenumber
strstring

Returns

number


tileIndex()

tileIndex(x: number, y: number): number;

Defined in: niivue/index.ts:9066

Parameters

ParameterType
xnumber
ynumber

Returns

number


touchEndListener()

touchEndListener(e: TouchEvent): void;

Defined in: niivue/index.ts:1705

Parameters

ParameterType
eTouchEvent

Returns

void


touchMoveListener()

touchMoveListener(e: TouchEvent): void;

Defined in: niivue/index.ts:1960

Parameters

ParameterType
eTouchEvent

Returns

void


touchStartListener()

touchStartListener(e: TouchEvent): void;

Defined in: niivue/index.ts:1667

Parameters

ParameterType
eTouchEvent

Returns

void


translate_labels()

translate_labels(
il: Uint32Array,
dim: Uint32Array,
tt: Uint32Array,
ttn: number): [number, Uint32Array];

Defined in: niivue/index.ts:8216

Parameters

ParameterType
ilUint32Array
dimUint32Array
ttUint32Array
ttnnumber

Returns

[number, Uint32Array]


traverseFileTree()

traverseFileTree(
item: any,
path: string,
fileArray: any): Promise<File[]>;

Defined in: niivue/index.ts:2405

Parameters

ParameterTypeDefault value
itemanyundefined
pathstring''
fileArrayanyundefined

Returns

Promise<File[]>


updateBitmapFromClickToSegment()

updateBitmapFromClickToSegment(): void;

Defined in: niivue/index.ts:9147

Returns

void


updateGLVolume()

updateGLVolume(): void;

Defined in: niivue/index.ts:7083

update the webGL 2.0 scene after making changes to the array of volumes. It's always good to call this method after altering one or more volumes manually (outside of Niivue setter methods)

Returns

void

Example

niivue = new Niivue();
niivue.updateGLVolume();

See

live demo usage


updateInterpolation()

updateInterpolation(layer: number, isForceLinear: boolean): void;

Defined in: niivue/index.ts:10244

Parameters

ParameterTypeDefault value
layernumberundefined
isForceLinearbooleanfalse

Returns

void


useDicomLoader()

useDicomLoader(loader: DicomLoader): void;

Defined in: niivue/index.ts:2577

Parameters

ParameterType
loaderDicomLoader

Returns

void


useLoader()

useLoader(
loader: unknown,
fileExt: string,
toExt: string): void;

Defined in: niivue/index.ts:2567

Parameters

ParameterType
loaderunknown
fileExtstring
toExtstring

Returns

void


vox2frac()

vox2frac(vox: vec3, volIdx: number): vec3;

Defined in: niivue/index.ts:12190

Parameters

ParameterTypeDefault value
voxvec3undefined
volIdxnumber0

Returns

vec3


vox2mm()

vox2mm(XYZ: number[], mtx: mat4): vec3;

Defined in: niivue/index.ts:4339

Parameters

ParameterType
XYZnumber[]
mtxmat4

Returns

vec3


wheelListener()

wheelListener(e: WheelEvent): void;

Defined in: niivue/index.ts:2100

Parameters

ParameterType
eWheelEvent

Returns

void


windowingHandler()

windowingHandler(
x: number,
y: number,
volIdx: number): void;

Defined in: niivue/index.ts:1731

Parameters

ParameterTypeDefault value
xnumberundefined
ynumberundefined
volIdxnumber0

Returns

void


xyMM2xyzMM()

xyMM2xyzMM(axCorSag: SLICE_TYPE, sliceFrac: number): number[];

Defined in: niivue/index.ts:10506

Parameters

ParameterType
axCorSagSLICE_TYPE
sliceFracnumber

Returns

number[]