@niivue/niivue 0.48.1 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.d.ts CHANGED
@@ -392,7 +392,6 @@ declare class NVImage {
392
392
  calculateOblique(): void;
393
393
  THD_daxes_to_NIFTI(xyzDelta: number[], xyzOrigin: number[], orientSpecific: number[]): void;
394
394
  SetPixDimFromSForm(): void;
395
- readDICOM(buf: ArrayBuffer | ArrayBuffer[]): ArrayBuffer;
396
395
  readECAT(buffer: ArrayBuffer): ArrayBuffer;
397
396
  readV16(buffer: ArrayBuffer): ArrayBuffer;
398
397
  readVMR(buffer: ArrayBuffer): ArrayBuffer;
@@ -429,7 +428,10 @@ declare class NVImage {
429
428
  intensityScaled2Raw(scaled: number): number;
430
429
  saveToUint8Array(fnm: string, drawing8?: Uint8Array | null): Uint8Array;
431
430
  saveToDisk(fnm?: string, drawing8?: Uint8Array | null): Uint8Array;
432
- static fetchDicomData(url: string, headers?: Record<string, string>): Promise<ArrayBuffer[]>;
431
+ static fetchDicomData(url: string, headers?: Record<string, string>): Promise<Array<{
432
+ name: string;
433
+ data: ArrayBuffer;
434
+ }>>;
433
435
  static fetchPartial(url: string, bytesToLoad: number, headers?: Record<string, string>): Promise<Response>;
434
436
  /**
435
437
  * factory function to load and return a new NVImage instance from a given URL
@@ -698,6 +700,7 @@ type NVConfigOptions = {
698
700
  measureTextColor: number[];
699
701
  measureLineColor: number[];
700
702
  measureTextHeight: number;
703
+ isAlphaClipDark: boolean;
701
704
  };
702
705
  declare const DEFAULT_OPTIONS: NVConfigOptions;
703
706
  type SceneData = {
@@ -1250,7 +1253,7 @@ declare class NVMesh {
1250
1253
  hierarchicalOrder(): number;
1251
1254
  decimateFaces(n: number, ntarget: number): void;
1252
1255
  decimateHierarchicalMesh(gl: WebGL2RenderingContext, order?: number): boolean;
1253
- setLayerProperty(id: number, key: keyof NVMeshLayer, val: number | string | boolean, gl: WebGL2RenderingContext): void;
1256
+ setLayerProperty(id: number, key: keyof NVMeshLayer, val: number | string | boolean, gl: WebGL2RenderingContext): Promise<void>;
1254
1257
  setProperty(key: keyof this, val: unknown, gl: WebGL2RenderingContext): void;
1255
1258
  generatePosNormClr(pts: Float32Array, tris: Uint32Array, rgba255: Uint8Array): Float32Array;
1256
1259
  static readMesh(buffer: ArrayBuffer, name: string, gl: WebGL2RenderingContext, opacity?: number, rgba255?: Uint8Array, visible?: boolean): NVMesh;
@@ -1516,6 +1519,7 @@ type TypedNumberArray = Float64Array | Float32Array | Uint32Array | Uint16Array
1516
1519
  declare class NVUtilities {
1517
1520
  static arrayBufferToBase64(arrayBuffer: ArrayBuffer): string;
1518
1521
  static readMatV4(buffer: ArrayBuffer): Record<string, TypedNumberArray>;
1522
+ static b64toUint8(base64: string): Uint8Array;
1519
1523
  static uint8tob64(bytes: Uint8Array): string;
1520
1524
  static download(content: string | ArrayBuffer, fileName: string, contentType: string): void;
1521
1525
  static readFileAsync(file: Blob): Promise<ArrayBuffer>;
@@ -1702,6 +1706,14 @@ type SaveImageOptions = {
1702
1706
  isSaveDrawing: boolean;
1703
1707
  volumeByIndex: number;
1704
1708
  };
1709
+ type DicomLoaderInput = ArrayBuffer | ArrayBuffer[] | File[];
1710
+ type DicomLoader = {
1711
+ loader: (data: DicomLoaderInput) => Promise<Array<{
1712
+ name: string;
1713
+ data: ArrayBuffer;
1714
+ }>>;
1715
+ toExt: string;
1716
+ };
1705
1717
  /**
1706
1718
  * Niivue can be attached to a canvas. An instance of Niivue contains methods for
1707
1719
  * loading and rendering NIFTI image data in a WebGL 2.0 context.
@@ -1711,6 +1723,7 @@ type SaveImageOptions = {
1711
1723
  */
1712
1724
  declare class Niivue {
1713
1725
  loaders: {};
1726
+ dicomLoader: DicomLoader | null;
1714
1727
  canvas: HTMLCanvasElement | null;
1715
1728
  _gl: WebGL2RenderingContext | null;
1716
1729
  isBusy: boolean;
@@ -1780,7 +1793,6 @@ declare class Niivue {
1780
1793
  backgroundMasksOverlays: number;
1781
1794
  overlayOutlineWidth: number;
1782
1795
  overlayAlphaShader: number;
1783
- isAlphaClipDark: boolean;
1784
1796
  position?: vec3;
1785
1797
  extentsMin?: vec3;
1786
1798
  extentsMax?: vec3;
@@ -1998,6 +2010,7 @@ declare class Niivue {
1998
2010
  onCustomMeshShaderAdded: (fragmentShaderText: string, name: string) => void;
1999
2011
  onMeshShaderChanged: (meshIndex: number, shaderIndex: number) => void;
2000
2012
  onMeshPropertyChanged: (meshIndex: number, key: string, val: unknown) => void;
2013
+ onDicomLoaderFinishedWithImages: (files: NVImage[] | NVMesh[]) => void;
2001
2014
  /**
2002
2015
  * callback function to run when the user loads a new NiiVue document
2003
2016
  * @example
@@ -2011,6 +2024,8 @@ declare class Niivue {
2011
2024
  get opts(): NVConfigOptions;
2012
2025
  get sliceMosaicString(): string;
2013
2026
  set sliceMosaicString(newSliceMosaicString: string);
2027
+ get isAlphaClipDark(): boolean;
2028
+ set isAlphaClipDark(newVal: boolean);
2014
2029
  mediaUrlMap: Map<NVImage | NVMesh, string>;
2015
2030
  initialized: boolean;
2016
2031
  currentDrawUndoBitmap: number;
@@ -2174,6 +2189,7 @@ declare class Niivue {
2174
2189
  * @see {@link https://niivue.github.io/niivue/features/document.3d.html | live demo usage}
2175
2190
  */
2176
2191
  removeVolumeByUrl(url: string): void;
2192
+ traverseFileTree(item: any, path: string, fileArray: any): Promise<File[]>;
2177
2193
  readDirectory(directory: FileSystemDirectoryEntry): FileSystemEntry[];
2178
2194
  /**
2179
2195
  * Returns boolean: true if filename ends with mesh extension (TRK, pial, etc)
@@ -2193,6 +2209,8 @@ declare class Niivue {
2193
2209
  */
2194
2210
  loadFromFile(file: File): Promise<void>;
2195
2211
  useLoader(loader: unknown, fileExt: string, toExt: string): void;
2212
+ useDicomLoader(loader: DicomLoader): void;
2213
+ getDicomLoader(): DicomLoader;
2196
2214
  dropListener(e: DragEvent): void;
2197
2215
  /**
2198
2216
  * insert a gap between slices of a mutliplanar view.
@@ -2394,7 +2412,7 @@ declare class Niivue {
2394
2412
  * @example niivue.setMeshLayerProperty(niivue.meshes[0].id, 0, 'frame4D', 22)
2395
2413
  * @see {@link https://niivue.github.io/niivue/features/mesh.4D.html | live demo usage}
2396
2414
  */
2397
- setMeshLayerProperty(mesh: number, layer: number, key: keyof NVMeshLayer, val: number): void;
2415
+ setMeshLayerProperty(mesh: number, layer: number, key: keyof NVMeshLayer, val: number): Promise<void>;
2398
2416
  /**
2399
2417
  * adjust offset position and scale of 2D sliceScale
2400
2418
  * @param xyzmmZoom - first three components are spatial, fourth is scaling
@@ -2680,6 +2698,7 @@ declare class Niivue {
2680
2698
  */
2681
2699
  saveDocument(fileName?: string, compress?: boolean): Promise<void>;
2682
2700
  loadImages(images: Array<ImageFromUrlOptions | LoadFromUrlParams>): Promise<this>;
2701
+ loadDicoms(dicomList: ImageFromUrlOptions[]): Promise<this>;
2683
2702
  /**
2684
2703
  * load an array of volume objects
2685
2704
  * @param volumeList - the array of objects to load. each object must have a resolvable "url" property at a minimum
@@ -3157,4 +3176,4 @@ declare class Niivue {
3157
3176
  set gl(gl: WebGL2RenderingContext | null);
3158
3177
  }
3159
3178
 
3160
- export { type Connectome, type ConnectomeOptions, DEFAULT_OPTIONS, DRAG_MODE, type DocumentData, type DragReleaseParams, type ExportDocumentData, INITIAL_SCENE_DATA, LabelAnchorPoint, LabelLineTerminator, LabelTextAlignment, type LegacyConnectome, type LegacyNodes, MULTIPLANAR_TYPE, type NVConfigOptions, type NVConnectomeEdge, type NVConnectomeNode, NVController, NVDocument, NVImage, NVImageFromUrlOptions, NVLabel3D, NVLabel3DStyle, NVMesh, NVMeshFromUrlOptions, NVMeshLayerDefaults, NVMeshLoaders, NVMeshUtilities, NVUtilities, type NiftiHeader, type NiiVueLocation, type NiiVueLocationValue, Niivue, type Point, SHOW_RENDER, SLICE_TYPE, type Scene, type SyncOpts, type Volume, cmapper, ColorTables as colortables };
3179
+ export { type Connectome, type ConnectomeOptions, DEFAULT_OPTIONS, DRAG_MODE, type DicomLoader, type DicomLoaderInput, type DocumentData, type DragReleaseParams, type ExportDocumentData, INITIAL_SCENE_DATA, LabelAnchorPoint, LabelLineTerminator, LabelTextAlignment, type LegacyConnectome, type LegacyNodes, MULTIPLANAR_TYPE, type NVConfigOptions, type NVConnectomeEdge, type NVConnectomeNode, NVController, NVDocument, NVImage, NVImageFromUrlOptions, NVLabel3D, NVLabel3DStyle, NVMesh, NVMeshFromUrlOptions, NVMeshLayerDefaults, NVMeshLoaders, NVMeshUtilities, NVUtilities, type NiftiHeader, type NiiVueLocation, type NiiVueLocationValue, Niivue, type Point, SHOW_RENDER, SLICE_TYPE, type Scene, type SyncOpts, type Volume, cmapper, ColorTables as colortables };