@niivue/niivue 0.51.0 → 0.52.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
@@ -397,7 +397,7 @@ declare class NVImage {
397
397
  readECAT(buffer: ArrayBuffer): ArrayBuffer;
398
398
  readV16(buffer: ArrayBuffer): ArrayBuffer;
399
399
  imageDataFromArrayBuffer(buffer: ArrayBuffer): Promise<ImageData>;
400
- readBMP(buffer: ArrayBuffer): Promise<Uint8Array>;
400
+ readBMP(buffer: ArrayBuffer): Promise<ArrayBuffer>;
401
401
  readVMR(buffer: ArrayBuffer): ArrayBuffer;
402
402
  readMGH(buffer: ArrayBuffer): Promise<ArrayBuffer>;
403
403
  readFIB(buffer: ArrayBuffer): Promise<[ArrayBuffer, Float32Array]>;
@@ -437,7 +437,10 @@ declare class NVImage {
437
437
  name: string;
438
438
  data: ArrayBuffer;
439
439
  }>>;
440
- static fetchPartial(url: string, bytesToLoad: number, headers?: Record<string, string>): Promise<Response>;
440
+ static readFirstDecompressedBytes(stream: ReadableStream<Uint8Array>, minBytes: number): Promise<Uint8Array>;
441
+ static extractFilenameFromUrl(url: string): string | null;
442
+ static loadInitialVolumesGz(url?: string, headers?: {}, limitFrames4D?: number): Promise<ArrayBuffer | null>;
443
+ static loadInitialVolumes(url?: string, headers?: {}, limitFrames4D?: number): Promise<ArrayBuffer | null>;
441
444
  /**
442
445
  * factory function to load and return a new NVImage instance from a given URL
443
446
  * @returns NVImage instance
@@ -682,7 +685,7 @@ type NVConfigOptions = {
682
685
  sagittalNoseLeft: boolean;
683
686
  isSliceMM: boolean;
684
687
  isV1SliceShader: boolean;
685
- isHighResolutionCapable: boolean;
688
+ forceDevicePixelRatio: number;
686
689
  logLevel: 'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'silent';
687
690
  loadingText: string;
688
691
  isForceMouseClickToVoxelCenters: boolean;
@@ -726,6 +729,8 @@ type NVConfigOptions = {
726
729
  measureLineColor: number[];
727
730
  measureTextHeight: number;
728
731
  isAlphaClipDark: boolean;
732
+ gradientOrder: number;
733
+ gradientOpacity: number;
729
734
  };
730
735
  declare const DEFAULT_OPTIONS: NVConfigOptions;
731
736
  type SceneData = {
@@ -1549,6 +1554,7 @@ declare class Niivue {
1549
1554
  volumeTexture: WebGLTexture | null;
1550
1555
  gradientTexture: WebGLTexture | null;
1551
1556
  gradientTextureAmount: number;
1557
+ renderGradientValues: boolean;
1552
1558
  drawTexture: WebGLTexture | null;
1553
1559
  drawUndoBitmaps: Uint8Array[];
1554
1560
  drawLut: LUT;
@@ -1575,6 +1581,7 @@ declare class Niivue {
1575
1581
  line3DShader?: Shader;
1576
1582
  passThroughShader?: Shader;
1577
1583
  renderGradientShader?: Shader;
1584
+ renderGradientValuesShader?: Shader;
1578
1585
  renderSliceShader?: Shader;
1579
1586
  renderVolumeShader?: Shader;
1580
1587
  pickingMeshShader?: Shader;
@@ -1598,7 +1605,9 @@ declare class Niivue {
1598
1605
  orientShaderRGBU: Shader | null;
1599
1606
  surfaceShader: Shader | null;
1600
1607
  blurShader: Shader | null;
1601
- sobelShader: Shader | null;
1608
+ sobelBlurShader: Shader | null;
1609
+ sobelFirstOrderShader: Shader | null;
1610
+ sobelSecondOrderShader: Shader | null;
1602
1611
  genericVAO: WebGLVertexArrayObject | null;
1603
1612
  unusedVAO: any;
1604
1613
  crosshairs3D: NiivueObject3D | null;
@@ -2107,11 +2116,11 @@ declare class Niivue {
2107
2116
  getRadiologicalConvention(): boolean;
2108
2117
  /**
2109
2118
  * Force WebGL canvas to use high resolution display, regardless of browser defaults.
2110
- * @param isHighResolutionCapable - allow high-DPI display
2119
+ * @param forceDevicePixelRatio - -1: block high DPI; 0= allow high DPI: >0 use specified pixel ratio
2111
2120
  * @example niivue.setHighResolutionCapable(true);
2112
2121
  * @see {@link https://niivue.github.io/niivue/features/sync.mesh.html | live demo usage}
2113
2122
  */
2114
- setHighResolutionCapable(isHighResolutionCapable: boolean): void;
2123
+ setHighResolutionCapable(forceDevicePixelRatio: number | boolean): void;
2115
2124
  /**
2116
2125
  * add a new volume to the canvas
2117
2126
  * @param volume - the new volume to add to the canvas
@@ -2280,7 +2289,7 @@ declare class Niivue {
2280
2289
  * @example
2281
2290
  * niivue = new Niivue()
2282
2291
  * niivue.removeMesh(this.meshes[3])
2283
- * @see {@link https://niivue.github.io/niivue/features/multiuser.meshes.html | live demo usage}
2292
+ * @see {@link https://niivue.github.io/niivue/features/connectome.html | live demo usage}
2284
2293
  */
2285
2294
  removeMesh(mesh: NVMesh): void;
2286
2295
  /**
@@ -2444,12 +2453,21 @@ declare class Niivue {
2444
2453
  setClipVolume(low: number[], high: number[]): void;
2445
2454
  /**
2446
2455
  * set proportion of volume rendering influenced by selected matcap.
2447
- * @param gradientAmount - amount of matcap (0..1), default 0 (matte, surface normal does not influence color)
2456
+ * @param gradientAmount - amount of matcap (NaN or 0..1), default 0 (matte, surface normal does not influence color). NaN renders the gradients.
2448
2457
  * @example
2449
2458
  * niivue.setVolumeRenderIllumination(0.6);
2450
2459
  * @see {@link https://niivue.github.io/niivue/features/shiny.volumes.html | live demo usage}
2460
+ * @see {@link https://niivue.github.io/niivue/features/gradient.order.html | live demo usage}
2451
2461
  */
2452
2462
  setVolumeRenderIllumination(gradientAmount?: number): Promise<void>;
2463
+ /**
2464
+ * set volume rendering opacity influence of the gradient magnitude
2465
+ * @param gradientOpacity - amount of gradient magnitude influence on opacity (0..1), default 0 (no-influence)
2466
+ * @example
2467
+ * niivue.setGradientOpacity(0.6);
2468
+ * @see {@link https://niivue.github.io/niivue/features/gradient.opacity.html | live demo usage}
2469
+ */
2470
+ setGradientOpacity(gradientOpacity?: number): Promise<void>;
2453
2471
  overlayRGBA(volume: NVImage): Uint8ClampedArray;
2454
2472
  vox2mm(XYZ: number[], mtx: mat4): vec3;
2455
2473
  /**
@@ -2527,12 +2545,10 @@ declare class Niivue {
2527
2545
  loadVolumes(volumeList: ImageFromUrlOptions[]): Promise<this>;
2528
2546
  /**
2529
2547
  * Add mesh and notify subscribers
2530
- * @see {@link https://niivue.github.io/niivue/features/multiuser.meshes.html | live demo usage}
2531
2548
  */
2532
2549
  addMeshFromUrl(meshOptions: LoadFromUrlParams): Promise<NVMesh>;
2533
2550
  /**
2534
2551
  * Add mesh and notify subscribers
2535
- * @see {@link https://niivue.github.io/niivue/features/multiuser.meshes.html | live demo usage}
2536
2552
  */
2537
2553
  addMeshesFromUrl(meshOptions: LoadFromUrlParams[]): Promise<NVMesh[]>;
2538
2554
  /**
@@ -2620,6 +2636,7 @@ declare class Niivue {
2620
2636
  refreshDrawing(isForceRedraw?: boolean, useClickToSegmentBitmap?: boolean): void;
2621
2637
  r8Tex(texID: WebGLTexture | null, activeID: number, dims: number[], isInit?: boolean): WebGLTexture | null;
2622
2638
  rgbaTex(texID: WebGLTexture | null, activeID: number, dims: number[], isInit?: boolean): WebGLTexture | null;
2639
+ rgba16Tex(texID: WebGLTexture | null, activeID: number, dims: number[], isInit?: boolean): WebGLTexture | null;
2623
2640
  requestCORSIfNotSameOrigin(img: HTMLImageElement, url: string): void;
2624
2641
  loadPngAsTexture(pngUrl: string, textureNum: number): Promise<WebGLTexture | null>;
2625
2642
  loadFontTexture(fontUrl: string): Promise<WebGLTexture | null>;