@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 +27 -10
- package/build/index.js +496 -137
- package/build/index.js.map +1 -1
- package/build/index.min.js +1 -1
- package/build/metafile-esm.json +1 -1
- package/dist/index.d.ts +27 -10
- package/dist/index.js +562 -137
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/niivue.umd.js +201 -83
- package/package.json +3 -2
- package/src/niivue/index.ts +145 -47
- package/src/niivue/utils.ts +34 -0
- package/src/nvdocument.ts +7 -3
- package/src/nvimage/index.ts +230 -122
- package/src/shader-srcs.ts +142 -8
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<
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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(
|
|
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/
|
|
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>;
|