Class: Niivue
Defined in: niivue/index.ts:364
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:889
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
options | Partial <NVConfigOptions > | DEFAULT_OPTIONS | options object to set modifiable Niivue properties |
Returns
Niivue
Properties
Property | Type | Default value | Description | Defined in |
---|---|---|---|---|
_gl | WebGL2RenderingContext | null | - | niivue/index.ts:377 |
back | NVImage | null | - | niivue/index.ts:514 |
backgroundMasksOverlays | number | 0 | - | niivue/index.ts:456 |
blurShader | Shader | null | - | niivue/index.ts:443 |
bmpShader | Shader | null | - | niivue/index.ts:430 |
bmpTexture | WebGLTexture | null | - | niivue/index.ts:431 |
bmpTextureWH | number | 1.0 | - | niivue/index.ts:433 |
canvas | HTMLCanvasElement | null | - | niivue/index.ts:376 |
circleShader? | Shader | undefined | - | niivue/index.ts:428 |
clickToSegmentGrowingBitmap | Uint8Array | null | - | niivue/index.ts:394 |
clickToSegmentIsGrowing | boolean | false | - | niivue/index.ts:393 |
clickToSegmentXY | number [] | undefined | - | niivue/index.ts:395 |
CLIP_PLANE_ID | number | 1 | - | niivue/index.ts:543 |
colorbarHeight | number | 0 | - | niivue/index.ts:397 |
colorbarShader? | Shader | undefined | - | niivue/index.ts:423 |
colormapLists | ColormapListEntry [] | [] | - | niivue/index.ts:381 |
colormapTexture | WebGLTexture | null | - | niivue/index.ts:380 |
crosshairs3D | NiivueObject3D | null | - | niivue/index.ts:449 |
cuboidVertexBuffer? | WebGLBuffer | undefined | - | niivue/index.ts:532 |
currentClipPlaneIndex | number | 0 | - | niivue/index.ts:539 |
currentDrawUndoBitmap | number | undefined | - | niivue/index.ts:884 |
customLayout | object [] | [] | - | niivue/index.ts:555 |
customSliceShader | Shader | null | - | niivue/index.ts:424 |
deferredMeshes | LoadFromUrlParams [] | [] | - | niivue/index.ts:517 |
deferredVolumes | ImageFromUrlOptions [] | [] | - | niivue/index.ts:516 |
dicomLoader | DicomLoader | null | - | niivue/index.ts:367 |
DISTANCE_FROM_CAMERA | number | -0.54 | - | niivue/index.ts:545 |
document | NVDocument | undefined | - | niivue/index.ts:843 |
dragModes | object | undefined | - | niivue/index.ts:621 |
dragModes.angle | DRAG_MODE | DRAG_MODE.angle | - | niivue/index.ts:624 |
dragModes.callbackOnly | DRAG_MODE | DRAG_MODE.callbackOnly | - | niivue/index.ts:628 |
dragModes.contrast | DRAG_MODE | DRAG_MODE.contrast | - | niivue/index.ts:622 |
dragModes.measurement | DRAG_MODE | DRAG_MODE.measurement | - | niivue/index.ts:623 |
dragModes.none | DRAG_MODE | DRAG_MODE.none | - | niivue/index.ts:625 |
dragModes.pan | DRAG_MODE | DRAG_MODE.pan | - | niivue/index.ts:626 |
dragModes.slicer3D | DRAG_MODE | DRAG_MODE.slicer3D | - | niivue/index.ts:627 |
drawFillOverwrites | boolean | true | - | niivue/index.ts:400 |
drawLut | LUT | undefined | - | niivue/index.ts:390 |
drawOpacity | number | 0.8 | - | niivue/index.ts:391 |
drawPenAxCorSag | number | -1 | - | niivue/index.ts:399 |
drawPenFillPts | number [][] | [] | - | niivue/index.ts:401 |
drawPenLocation | number [] | undefined | - | niivue/index.ts:398 |
drawRimOpacity | number | -1.0 | - | niivue/index.ts:392 |
drawShapePreviewBitmap | Uint8Array | null | - | niivue/index.ts:403 |
drawShapeStartLocation | number [] | undefined | - | niivue/index.ts:402 |
drawTexture | WebGLTexture | null | - | niivue/index.ts:387 |
drawUndoBitmaps | Uint8Array [] | [] | - | niivue/index.ts:389 |
extentsMax? | vec3 | undefined | - | niivue/index.ts:461 |
extentsMin? | vec3 | undefined | - | niivue/index.ts:460 |
fiberShader? | Shader | undefined | - | niivue/index.ts:426 |
fontShader | Shader | null | - | niivue/index.ts:425 |
fontTexture | WebGLTexture | null | - | niivue/index.ts:427 |
furthestFromPivot | number | 10.0 | - | niivue/index.ts:537 |
furthestVertexFromOrigin | number | 100 | - | niivue/index.ts:518 |
genericVAO | WebGLVertexArrayObject | null | - | niivue/index.ts:447 |
gradientTexture | WebGLTexture | null | - | niivue/index.ts:383 |
gradientTextureAmount | number | 0.0 | - | niivue/index.ts:384 |
graph | Graph | undefined | - | niivue/index.ts:546 |
growCutShader? | Shader | undefined | - | niivue/index.ts:434 |
initialized | boolean | false | - | niivue/index.ts:883 |
isBusy | boolean | false | - | niivue/index.ts:378 |
lastCalled | number | undefined | - | niivue/index.ts:540 |
line3DShader? | Shader | undefined | - | niivue/index.ts:415 |
lineShader? | Shader | undefined | - | niivue/index.ts:414 |
loaders | object | {} | - | niivue/index.ts:365 |
matCapTexture | WebGLTexture | null | - | niivue/index.ts:429 |
mediaUrlMap | Map < | NVMesh | NVImage , string > | undefined | - | niivue/index.ts:882 |
meshShaders | object [] | undefined | - | niivue/index.ts:561 |
mousePos | number [] | undefined | - | niivue/index.ts:521 |
needsRefresh | boolean | false | - | niivue/index.ts:379 |
onAzimuthElevationChange | (azimuth : number , elevation : number ) => void | undefined | callback 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:806 |
onClickToSegment | (data : object ) => void | undefined | callback 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:687 |
onClipPlaneChange | (clipPlane : number []) => void | undefined | callback function to run when the user changes the clip plane Example niivue.onClipPlaneChange = (clipPlane) => { console.log('clipPlane: ', clipPlane) } | niivue/index.ts:815 |
onColormapChange | () => void | undefined | - | niivue/index.ts:730 |
onCustomMeshShaderAdded | (fragmentShaderText : string , name : string ) => void | undefined | - | niivue/index.ts:816 |
onDebug | () => void | undefined | callback function to run when niivue reports a debug message Example niivue.onDebug = (debug) => { console.log('debug: ', debug) } | niivue/index.ts:757 |
onDicomLoaderFinishedWithImages | (files : | NVImage [] | NVMesh []) => void | undefined | - | niivue/index.ts:820 |
onDocumentLoaded | (document : NVDocument ) => void | undefined | callback function to run when the user loads a new NiiVue document Example niivue.onDocumentLoaded = (document) => { console.log('document: ', document) } | niivue/index.ts:829 |
onDragRelease | (params : DragReleaseParams ) => void | undefined | callback function to run when the right mouse button is released after dragging Example niivue.onDragRelease = () => { console.log('drag ended') } | niivue/index.ts:646 |
onError | () => void | undefined | callback function to run when niivue reports an error Example niivue.onError = (error) => { console.log('error: ', error) } | niivue/index.ts:727 |
onFrameChange | (volume : NVImage , index : number ) => void | undefined | callback 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:718 |
onImageLoaded | (volume : NVImage ) => void | undefined | callback function to run when a new volume is loaded Example niivue.onImageLoaded = (volume) => { console.log('volume loaded') console.log('volume: ', volume) } | niivue/index.ts:697 |
onInfo | () => void | undefined | callback function to run when niivue reports detailed info Example niivue.onInfo = (info) => { console.log('info: ', info) } | niivue/index.ts:739 |
onIntensityChange | (volume : NVImage ) => void | undefined | callback 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:676 |
onLocationChange | (location : unknown ) => void | undefined | callback 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:667 |
onMeshAdded | () => void | undefined | - | niivue/index.ts:792 |
onMeshAddedFromUrl | (meshOptions : LoadFromUrlParams , mesh : NVMesh ) => void | undefined | callback 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:789 |
onMeshLoaded | (mesh : NVMesh ) => void | undefined | callback function to run when a new mesh is loaded Example niivue.onMeshLoaded = (mesh) => { console.log('mesh loaded') console.log('mesh: ', mesh) } | niivue/index.ts:707 |
onMeshPropertyChanged | (meshIndex : number , key : string , val : unknown ) => void | undefined | - | niivue/index.ts:818 |
onMeshShaderChanged | (meshIndex : number , shaderIndex : number ) => void | undefined | - | niivue/index.ts:817 |
onMeshWithUrlRemoved | (url : string ) => void | undefined | - | niivue/index.ts:793 |
onMouseUp | (data : Partial <UIData >) => void | undefined | callback function to run when the left mouse button is released Example niivue.onMouseUp = () => { console.log('mouse up') } | niivue/index.ts:655 |
onOptsChange | (propertyName : keyof NVConfigOptions , newValue : | string | number | boolean | number [] | Float32Array | MouseEventConfig | TouchEventConfig | number [], oldValue : | string | number | boolean | number [] | Float32Array | MouseEventConfig | TouchEventConfig | number []) => void | undefined | Callback for when any configuration option changes. | niivue/index.ts:837 |
onVolumeAddedFromUrl | (imageOptions : ImageFromUrlOptions , volume : NVImage ) => void | undefined | callback 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:768 |
onVolumeUpdated | () => void | undefined | callback function to run when updateGLVolume is called (most users will not need to use Example niivue.onVolumeUpdated = () => { console.log('volume updated') } | niivue/index.ts:778 |
onVolumeWithUrlRemoved | (url : string ) => void | undefined | - | niivue/index.ts:769 |
onWarn | () => void | undefined | callback function to run when niivue reports a warning Example niivue.onWarn = (warn) => { console.log('warn: ', warn) } | niivue/index.ts:748 |
onZoom3DChange | (zoom : number ) => void | undefined | - | niivue/index.ts:796 |
orientCubeShader? | Shader | undefined | - | niivue/index.ts:409 |
orientCubeShaderVAO | WebGLVertexArrayObject | null | - | niivue/index.ts:410 |
orientShaderAtlasI | Shader | null | - | niivue/index.ts:436 |
orientShaderAtlasU | Shader | null | - | niivue/index.ts:435 |
orientShaderF | Shader | null | - | niivue/index.ts:439 |
orientShaderI | Shader | null | - | niivue/index.ts:438 |
orientShaderPAQD | Shader | null | - | niivue/index.ts:441 |
orientShaderRGBU | Shader | null | - | niivue/index.ts:440 |
orientShaderU | Shader | null | - | niivue/index.ts:437 |
otherNV | Niivue [] | null | - | niivue/index.ts:534 |
overlayAlphaShader | number | 1 | - | niivue/index.ts:458 |
overlayOutlineWidth | number | 0 | - | niivue/index.ts:457 |
overlays | NVImage [] | [] | - | niivue/index.ts:515 |
overlayTexture | WebGLTexture | null | - | niivue/index.ts:404 |
overlayTextureID | WebGLTexture | null | - | niivue/index.ts:405 |
paqdTexture | WebGLTexture | null | - | niivue/index.ts:388 |
passThroughShader? | Shader | undefined | - | niivue/index.ts:416 |
pickingImageShader? | Shader | undefined | - | niivue/index.ts:422 |
pickingMeshShader? | Shader | undefined | - | niivue/index.ts:421 |
pivot3D | number [] | undefined | - | niivue/index.ts:536 |
position? | vec3 | undefined | - | niivue/index.ts:459 |
readyForSync | boolean | false | - | niivue/index.ts:479 |
rectOutlineShader? | Shader | undefined | - | niivue/index.ts:412 |
rectShader? | Shader | undefined | - | niivue/index.ts:411 |
renderDrawAmbientOcclusion | number | 0.4 | - | niivue/index.ts:396 |
renderGradientShader? | Shader | undefined | - | niivue/index.ts:417 |
renderGradientValues | boolean | false | - | niivue/index.ts:386 |
renderGradientValuesShader? | Shader | undefined | - | niivue/index.ts:418 |
renderShader? | Shader | undefined | - | niivue/index.ts:413 |
renderSliceShader? | Shader | undefined | - | niivue/index.ts:419 |
renderVolumeShader? | Shader | undefined | - | niivue/index.ts:420 |
screenSlices | object [] | [] | - | niivue/index.ts:522 |
selectedObjectId | number | -1 | - | niivue/index.ts:542 |
slice2DShader? | Shader | undefined | - | niivue/index.ts:407 |
sliceMMShader? | Shader | undefined | - | niivue/index.ts:406 |
sliceTypeAxial | SLICE_TYPE | SLICE_TYPE.AXIAL | - | niivue/index.ts:632 |
sliceTypeCoronal | SLICE_TYPE | SLICE_TYPE.CORONAL | - | niivue/index.ts:633 |
sliceTypeMultiplanar | SLICE_TYPE | SLICE_TYPE.MULTIPLANAR | - | niivue/index.ts:635 |
sliceTypeRender | SLICE_TYPE | SLICE_TYPE.RENDER | - | niivue/index.ts:636 |
sliceTypeSagittal | SLICE_TYPE | SLICE_TYPE.SAGITTAL | - | niivue/index.ts:634 |
sliceV1Shader? | Shader | undefined | - | niivue/index.ts:408 |
sobelBlurShader | Shader | null | - | niivue/index.ts:444 |
sobelFirstOrderShader | Shader | null | - | niivue/index.ts:445 |
sobelSecondOrderShader | Shader | null | - | niivue/index.ts:446 |
surfaceShader | Shader | null | - | niivue/index.ts:442 |
syncOpts | SyncOpts | undefined | - | niivue/index.ts:467 |
thumbnailVisible | boolean | false | - | niivue/index.ts:432 |
uiData | UIData | undefined | - | niivue/index.ts:482 |
unusedVAO | any | null | - | niivue/index.ts:448 |
useCustomGradientTexture | boolean | false | - | niivue/index.ts:385 |
volScale | number [] | [] | - | niivue/index.ts:519 |
VOLUME_ID | number | 254 | - | niivue/index.ts:544 |
volumeObject3D | NiivueObject3D | null | - | niivue/index.ts:535 |
volumeTexture | WebGLTexture | null | - | niivue/index.ts:382 |
vox | number [] | [] | - | niivue/index.ts:520 |
Accessors
drawBitmap
Get Signature
get drawBitmap(): Uint8Array;
Defined in: niivue/index.ts:1000
Returns
Uint8Array
Set Signature
set drawBitmap(drawBitmap: Uint8Array): void;
Defined in: niivue/index.ts:1004
Parameters
Parameter | Type |
---|---|
drawBitmap | Uint8Array |
Returns
void
isAlphaClipDark
Get Signature
get isAlphaClipDark(): boolean;
Defined in: niivue/index.ts:869
Get whether voxels below minimum intensity are drawn as dark or transparent.
Returns
boolean
True if dark voxels are opaque, false if transparent.
Set Signature
set isAlphaClipDark(newVal: boolean): void;
Defined in: niivue/index.ts:878
Set whether voxels below minimum intensity are drawn as dark or transparent.
See
Parameters
Parameter | Type | Description |
---|---|---|
newVal | boolean | True to make dark voxels opaque, false for transparent. |
Returns
void
meshes
Get Signature
get meshes(): NVMesh[];
Defined in: niivue/index.ts:992
Returns
NVMesh
[]
Set Signature
set meshes(meshes: NVMesh[]): void;
Defined in: niivue/index.ts:996