@niivue/niivue 0.44.0 → 0.44.2-dev.1
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/README.md +9 -0
- package/build/index.d.ts +132 -18
- package/build/index.js +1088 -178
- package/build/index.js.map +1 -1
- package/build/index.min.js +1 -1
- package/dist/index.d.ts +132 -18
- package/dist/index.js +26585 -30810
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/niivue.umd.js +111 -32
- package/package.json +18 -17
- package/src/index.html +46 -7
- package/src/index_segment.html +165 -0
- package/src/index_sync.html +289 -0
- package/src/niivue/index.ts +857 -137
- package/src/nvdocument.ts +36 -5
- package/src/nvimage/index.ts +29 -3
- package/src/nvimage/utils.ts +61 -42
- package/src/nvlabel.ts +34 -1
- package/src/nvmesh-loaders.ts +50 -6
- package/src/nvmesh-utilities.ts +139 -0
- package/src/nvmesh.ts +96 -0
- package/src/shader-srcs.ts +84 -3
- package/src/types.ts +13 -0
package/dist/index.d.ts
CHANGED
|
@@ -107,6 +107,18 @@ declare enum LabelLineTerminator {
|
|
|
107
107
|
CIRCLE = "circle",
|
|
108
108
|
RING = "ring"
|
|
109
109
|
}
|
|
110
|
+
declare enum LabelAnchorPoint {
|
|
111
|
+
NONE = 0,
|
|
112
|
+
TOPLEFT = 9,
|
|
113
|
+
TOPCENTER = 10,
|
|
114
|
+
TOPRIGHT = 12,
|
|
115
|
+
MIDDLELEFT = 17,
|
|
116
|
+
MIDDLECENTER = 18,
|
|
117
|
+
MIDDLERIGHT = 20,
|
|
118
|
+
BOTTOMLEFT = 33,
|
|
119
|
+
BOTTOMCENTER = 34,
|
|
120
|
+
BOTTOMRIGHT = 36
|
|
121
|
+
}
|
|
110
122
|
/**
|
|
111
123
|
* Class representing label style.
|
|
112
124
|
* @ignore
|
|
@@ -140,12 +152,14 @@ declare class NVLabel3D {
|
|
|
140
152
|
text: string;
|
|
141
153
|
style: NVLabel3DStyle;
|
|
142
154
|
points?: number[] | number[][];
|
|
155
|
+
anchor: LabelAnchorPoint;
|
|
156
|
+
onClick?: (label: NVLabel3D) => void;
|
|
143
157
|
/**
|
|
144
158
|
* @param text - The text of the label
|
|
145
159
|
* @param style - The style of the label
|
|
146
160
|
* @param points - An array of points label for label lines
|
|
147
161
|
*/
|
|
148
|
-
constructor(text: string, style: NVLabel3DStyle, points?: number[] | number[][]);
|
|
162
|
+
constructor(text: string, style: NVLabel3DStyle, points?: number[] | number[][], anchor?: LabelAnchorPoint, onClick?: (label: NVLabel3D) => void);
|
|
149
163
|
}
|
|
150
164
|
|
|
151
165
|
/**
|
|
@@ -437,7 +451,7 @@ declare class NVImage {
|
|
|
437
451
|
* read a 3D slab of voxels from a volume
|
|
438
452
|
* @param voxStart - first row, column and slice (RAS order) for selection
|
|
439
453
|
* @param voxEnd - final row, column and slice (RAS order) for selection
|
|
440
|
-
* @param dataType - array data type. Options: 'same' (default), 'uint8', 'float32'
|
|
454
|
+
* @param dataType - array data type. Options: 'same' (default), 'uint8', 'float32', 'scaled', 'normalized', 'windowed'
|
|
441
455
|
* @returns the an array where ret[0] is the voxel values and ret[1] is dimension of selection
|
|
442
456
|
* @see {@link https://niivue.github.io/niivue/features/slab_selection.html | live demo usage}
|
|
443
457
|
*/
|
|
@@ -584,7 +598,8 @@ declare enum DRAG_MODE {
|
|
|
584
598
|
measurement = 2,
|
|
585
599
|
pan = 3,
|
|
586
600
|
slicer3D = 4,
|
|
587
|
-
callbackOnly = 5
|
|
601
|
+
callbackOnly = 5,
|
|
602
|
+
roiSelection = 6
|
|
588
603
|
}
|
|
589
604
|
/**
|
|
590
605
|
* NVConfigOptions
|
|
@@ -619,6 +634,7 @@ type NVConfigOptions = {
|
|
|
619
634
|
isOrientCube: boolean;
|
|
620
635
|
multiplanarPadPixels: number;
|
|
621
636
|
multiplanarForceRender: boolean;
|
|
637
|
+
multiplanarEqualSize: boolean;
|
|
622
638
|
multiplanarShowRender: SHOW_RENDER;
|
|
623
639
|
isRadiologicalConvention: boolean;
|
|
624
640
|
meshThicknessOn2D: number | string;
|
|
@@ -653,13 +669,21 @@ type NVConfigOptions = {
|
|
|
653
669
|
renderOverlayBlend: number;
|
|
654
670
|
sliceMosaicString: string;
|
|
655
671
|
centerMosaic: boolean;
|
|
672
|
+
penSize: number;
|
|
656
673
|
clickToSegment: boolean;
|
|
657
674
|
clickToSegmentRadius: number;
|
|
658
|
-
clickToSegmentSteps: number;
|
|
659
675
|
clickToSegmentBright: boolean;
|
|
676
|
+
clickToSegmentAutoIntensity: boolean;
|
|
677
|
+
clickToSegmentIntensityMax: number;
|
|
678
|
+
clickToSegmentIntensityMin: number;
|
|
679
|
+
clickToSegmentPercent: number;
|
|
680
|
+
clickToSegmentMaxDistanceMM: number;
|
|
681
|
+
selectionBoxLineThickness: number;
|
|
682
|
+
selectionBoxIsOutline: boolean;
|
|
660
683
|
};
|
|
661
684
|
declare const DEFAULT_OPTIONS: NVConfigOptions;
|
|
662
685
|
type SceneData = {
|
|
686
|
+
gamma: number;
|
|
663
687
|
azimuth: number;
|
|
664
688
|
elevation: number;
|
|
665
689
|
crosshairPos: vec3;
|
|
@@ -672,6 +696,7 @@ type SceneData = {
|
|
|
672
696
|
clipVolumeHigh: number[];
|
|
673
697
|
};
|
|
674
698
|
declare const INITIAL_SCENE_DATA: {
|
|
699
|
+
gamma: number;
|
|
675
700
|
azimuth: number;
|
|
676
701
|
elevation: number;
|
|
677
702
|
crosshairPos: vec3;
|
|
@@ -696,6 +721,7 @@ type Scene = {
|
|
|
696
721
|
pan2Dxyzmm: vec4;
|
|
697
722
|
_elevation?: number;
|
|
698
723
|
_azimuth?: number;
|
|
724
|
+
gamma?: number;
|
|
699
725
|
};
|
|
700
726
|
type DocumentData = {
|
|
701
727
|
title: string;
|
|
@@ -958,6 +984,18 @@ type NiiVueLocation = {
|
|
|
958
984
|
vox: vec3;
|
|
959
985
|
xy: [number, number];
|
|
960
986
|
};
|
|
987
|
+
type SyncOpts = {
|
|
988
|
+
'3d'?: boolean;
|
|
989
|
+
'2d'?: boolean;
|
|
990
|
+
zoomPan?: boolean;
|
|
991
|
+
cal_min?: boolean;
|
|
992
|
+
cal_max?: boolean;
|
|
993
|
+
gamma?: boolean;
|
|
994
|
+
useSliceOffset?: boolean;
|
|
995
|
+
sliceType?: boolean;
|
|
996
|
+
crosshair?: boolean;
|
|
997
|
+
clipPlane?: boolean;
|
|
998
|
+
};
|
|
961
999
|
|
|
962
1000
|
type ValuesArray = Array<{
|
|
963
1001
|
id: string;
|
|
@@ -1191,6 +1229,9 @@ declare class NVMesh {
|
|
|
1191
1229
|
unloadMesh(gl: WebGL2RenderingContext): void;
|
|
1192
1230
|
updateMesh(gl: WebGL2RenderingContext): void;
|
|
1193
1231
|
reverseFaces(gl: WebGL2RenderingContext): void;
|
|
1232
|
+
hierarchicalOrder(): number;
|
|
1233
|
+
decimateFaces(n: number, ntarget: number): void;
|
|
1234
|
+
decimateHierarchicalMesh(gl: WebGL2RenderingContext, order?: number): boolean;
|
|
1194
1235
|
setLayerProperty(id: number, key: keyof NVMeshLayer, val: number | string | boolean, gl: WebGL2RenderingContext): void;
|
|
1195
1236
|
setProperty(key: keyof this, val: unknown, gl: WebGL2RenderingContext): void;
|
|
1196
1237
|
generatePosNormClr(pts: Float32Array, tris: Uint32Array, rgba255: Uint8Array): Float32Array;
|
|
@@ -1503,6 +1544,7 @@ declare class NVMeshLoaders {
|
|
|
1503
1544
|
static readLayer(name: string, buffer: ArrayBuffer, nvmesh: NVMesh, opacity?: number, colormap?: string, colormapNegative?: string, useNegativeCmap?: boolean, cal_min?: number | null, cal_max?: number | null, outlineBorder?: number): NVMeshLayer | undefined;
|
|
1504
1545
|
static readSMP(buffer: ArrayBuffer, n_vert: number): Float32Array;
|
|
1505
1546
|
static readSTC(buffer: ArrayBuffer, n_vert: number): Float32Array;
|
|
1547
|
+
static isCurv(buffer: ArrayBuffer): boolean;
|
|
1506
1548
|
static readCURV(buffer: ArrayBuffer, n_vert: number): Float32Array;
|
|
1507
1549
|
static readANNOT(buffer: ArrayBuffer, n_vert: number, isReadColortables?: boolean): ANNOT;
|
|
1508
1550
|
static readNV(buffer: ArrayBuffer): DefaultMeshType;
|
|
@@ -1520,6 +1562,7 @@ declare class NVMeshLoaders {
|
|
|
1520
1562
|
static readSRF(buffer: ArrayBuffer): DefaultMeshType;
|
|
1521
1563
|
static readTxtSTL(buffer: ArrayBuffer): DefaultMeshType;
|
|
1522
1564
|
static readSTL(buffer: ArrayBuffer): DefaultMeshType;
|
|
1565
|
+
static decimateLayerVertices(nVertLayer: number, nVertMesh: number): number;
|
|
1523
1566
|
static readNII2(buffer: ArrayBuffer, n_vert?: number, anatomicalStructurePrimary?: string): Int32Array | Float32Array | Int16Array | Uint8Array;
|
|
1524
1567
|
static readNII(buffer: ArrayBuffer, n_vert?: number, anatomicalStructurePrimary?: string): Float32Array | Uint8Array | Int32Array | Int16Array;
|
|
1525
1568
|
static readMGH(buffer: ArrayBuffer, n_vert?: number, isReadColortables?: boolean): MGH;
|
|
@@ -1527,6 +1570,26 @@ declare class NVMeshLoaders {
|
|
|
1527
1570
|
static readGII(buffer: ArrayBuffer, n_vert?: number): GII;
|
|
1528
1571
|
}
|
|
1529
1572
|
|
|
1573
|
+
type Extents = {
|
|
1574
|
+
mxDx: number;
|
|
1575
|
+
extentsMin: number | number[];
|
|
1576
|
+
extentsMax: number | number[];
|
|
1577
|
+
};
|
|
1578
|
+
/**
|
|
1579
|
+
* Utilities class for common mesh functions
|
|
1580
|
+
*/
|
|
1581
|
+
declare class NVMeshUtilities {
|
|
1582
|
+
static getClusterBoundaryU8(u8: Uint8Array, faces: number[] | Uint32Array): boolean[];
|
|
1583
|
+
static createMZ3(vertices: Float32Array, indices: Uint32Array, compress?: boolean): ArrayBuffer;
|
|
1584
|
+
static createOBJ(vertices: Float32Array, indices: Uint32Array): ArrayBuffer;
|
|
1585
|
+
static createSTL(vertices: Float32Array, indices: Uint32Array): ArrayBuffer;
|
|
1586
|
+
static downloadArrayBuffer(buffer: ArrayBuffer, filename: string): void;
|
|
1587
|
+
static saveMesh(vertices: Float32Array, indices: Uint32Array, filename?: string, compress?: boolean): ArrayBuffer;
|
|
1588
|
+
static getClusterBoundary(rgba8: Uint8Array, faces: number[] | Uint32Array): boolean[];
|
|
1589
|
+
static getExtents(pts: number[] | Float32Array): Extents;
|
|
1590
|
+
static generateNormals(pts: number[] | Float32Array, tris: number[] | Uint32Array): Float32Array;
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1530
1593
|
type ColormapListEntry = {
|
|
1531
1594
|
name: string;
|
|
1532
1595
|
min: number;
|
|
@@ -1569,6 +1632,7 @@ type Descriptive = {
|
|
|
1569
1632
|
cal_max: number;
|
|
1570
1633
|
robust_min: number;
|
|
1571
1634
|
robust_max: number;
|
|
1635
|
+
area: number | null;
|
|
1572
1636
|
};
|
|
1573
1637
|
type SliceScale = {
|
|
1574
1638
|
volScale: number[];
|
|
@@ -1653,6 +1717,7 @@ declare class Niivue {
|
|
|
1653
1717
|
orientCubeShader?: Shader;
|
|
1654
1718
|
orientCubeShaderVAO: WebGLVertexArrayObject | null;
|
|
1655
1719
|
rectShader?: Shader;
|
|
1720
|
+
rectOutlineShader?: Shader;
|
|
1656
1721
|
renderShader?: Shader;
|
|
1657
1722
|
lineShader?: Shader;
|
|
1658
1723
|
line3DShader?: Shader;
|
|
@@ -1697,7 +1762,7 @@ declare class Niivue {
|
|
|
1697
1762
|
extentsMin?: vec3;
|
|
1698
1763
|
extentsMax?: vec3;
|
|
1699
1764
|
private resizeObserver;
|
|
1700
|
-
syncOpts:
|
|
1765
|
+
syncOpts: SyncOpts;
|
|
1701
1766
|
readyForSync: boolean;
|
|
1702
1767
|
uiData: UIData;
|
|
1703
1768
|
back: NVImage | null;
|
|
@@ -1718,7 +1783,7 @@ declare class Niivue {
|
|
|
1718
1783
|
screen2frac?: number[];
|
|
1719
1784
|
}>;
|
|
1720
1785
|
cuboidVertexBuffer?: WebGLBuffer;
|
|
1721
|
-
otherNV: Niivue
|
|
1786
|
+
otherNV: Niivue[] | null;
|
|
1722
1787
|
volumeObject3D: NiivueObject3D | null;
|
|
1723
1788
|
pivot3D: number[];
|
|
1724
1789
|
furthestFromPivot: number;
|
|
@@ -1973,7 +2038,7 @@ declare class Niivue {
|
|
|
1973
2038
|
* @deprecated use broadcastTo instead
|
|
1974
2039
|
* @see {@link https://niivue.github.io/niivue/features/sync.mesh.html | live demo usage}
|
|
1975
2040
|
*/
|
|
1976
|
-
syncWith(otherNV: Niivue, syncOpts?: {
|
|
2041
|
+
syncWith(otherNV: Niivue | Niivue[], syncOpts?: {
|
|
1977
2042
|
'2d': boolean;
|
|
1978
2043
|
'3d': boolean;
|
|
1979
2044
|
}): void;
|
|
@@ -1992,6 +2057,15 @@ declare class Niivue {
|
|
|
1992
2057
|
'2d': boolean;
|
|
1993
2058
|
'3d': boolean;
|
|
1994
2059
|
}): void;
|
|
2060
|
+
doSync3d(otherNV: Niivue): void;
|
|
2061
|
+
doSync2d(otherNV: Niivue): void;
|
|
2062
|
+
doSyncGamma(otherNV: Niivue): void;
|
|
2063
|
+
doSyncZoomPan(otherNV: Niivue): void;
|
|
2064
|
+
doSyncCrosshair(otherNV: Niivue): void;
|
|
2065
|
+
doSyncCalMin(otherNV: Niivue): void;
|
|
2066
|
+
doSyncCalMax(otherNV: Niivue): void;
|
|
2067
|
+
doSyncSliceType(otherNV: Niivue): void;
|
|
2068
|
+
doSyncClipPlane(otherNV: Niivue): void;
|
|
1995
2069
|
/**
|
|
1996
2070
|
* Sync the scene controls (orientation, crosshair location, etc.) from one Niivue instance to another. useful for using one canvas to drive another.
|
|
1997
2071
|
* @internal
|
|
@@ -2264,6 +2338,15 @@ declare class Niivue {
|
|
|
2264
2338
|
* @see {@link https://niivue.github.io/niivue/features/clipplanes.html | live demo usage}
|
|
2265
2339
|
*/
|
|
2266
2340
|
indexNearestXYZmm(mesh: number, Xmm: number, Ymm: number, Zmm: number): number[];
|
|
2341
|
+
/**
|
|
2342
|
+
* reduce complexity of FreeSurfer mesh
|
|
2343
|
+
* @param mesh - identity of mesh to change
|
|
2344
|
+
* @param order - decimation order 0..6
|
|
2345
|
+
* @example niivue.decimateHierarchicalMesh(niivue.meshes[0].id, 4)
|
|
2346
|
+
* @returns boolean false if mesh is not hierarchical or of lower order
|
|
2347
|
+
* @see {@link https://niivue.github.io/niivue/features/meshes.html | live demo usage}
|
|
2348
|
+
*/
|
|
2349
|
+
decimateHierarchicalMesh(mesh: number, order?: number): boolean;
|
|
2267
2350
|
/**
|
|
2268
2351
|
* reverse triangle winding of mesh (swap front and back faces)
|
|
2269
2352
|
* @param id - identity of mesh to change
|
|
@@ -2643,9 +2726,17 @@ declare class Niivue {
|
|
|
2643
2726
|
drawGrowCut(): void;
|
|
2644
2727
|
drawPt(x: number, y: number, z: number, penValue: number): void;
|
|
2645
2728
|
drawPenLine(ptA: number[], ptB: number[], penValue: number): void;
|
|
2729
|
+
/**
|
|
2730
|
+
* Performs a 1-voxel binary dilation on a connected cluster within the drawing mask using the drawFloodFillCore function.
|
|
2731
|
+
*
|
|
2732
|
+
* @param seedXYZ - voxel index of the seed voxel in the mask array.
|
|
2733
|
+
* @param neighbors - Number of neighbors to consider for connectivity and dilation (6, 18, or 26).
|
|
2734
|
+
*/
|
|
2735
|
+
drawingBinaryDilationWithSeed(seedXYZ: number[], // seed voxel x,y,z
|
|
2736
|
+
neighbors?: 6 | 18 | 26): void;
|
|
2646
2737
|
drawFloodFillCore(img: Uint8Array, seedVx: number, neighbors?: number): void;
|
|
2647
2738
|
drawFloodFill(seedXYZ: number[], newColor?: number, growSelectedCluster?: number, // if non-zero, growth based on background intensity POSITIVE_INFINITY for selected or bright, NEGATIVE_INFINITY for selected or darker
|
|
2648
|
-
forceMin?: number, forceMax?: number, neighbors?: number): void;
|
|
2739
|
+
forceMin?: number, forceMax?: number, neighbors?: number, maxDistanceMM?: number): void;
|
|
2649
2740
|
drawPenFilled(): void;
|
|
2650
2741
|
/**
|
|
2651
2742
|
* close drawing: make sure you have saved any changes before calling this!
|
|
@@ -2774,13 +2865,33 @@ declare class Niivue {
|
|
|
2774
2865
|
updateGLVolume(): void;
|
|
2775
2866
|
/**
|
|
2776
2867
|
* basic statistics for selected voxel-based image
|
|
2777
|
-
* @param
|
|
2778
|
-
*
|
|
2779
|
-
*
|
|
2780
|
-
*
|
|
2868
|
+
* @param options - an object containing the following properties:
|
|
2869
|
+
* - layer: selects image to describe
|
|
2870
|
+
* - masks: optional binary images to filter voxels
|
|
2871
|
+
* - drawingIsMask: a boolean indicating if the drawing is used as a mask
|
|
2872
|
+
* - roiIsMask: a boolean indicating if the ROI is used as a mask
|
|
2873
|
+
* - startVox: the starting voxel coordinates
|
|
2874
|
+
* - endVox: the ending voxel coordinates
|
|
2875
|
+
* @returns numeric values to describe image or regions of images
|
|
2876
|
+
* @example
|
|
2877
|
+
* niivue.getDescriptives({
|
|
2878
|
+
* layer: 0,
|
|
2879
|
+
* masks: [],
|
|
2880
|
+
* drawingIsMask: true, // drawingIsMask and roiIsMask are mutually exclusive
|
|
2881
|
+
* roiIsMask: false,
|
|
2882
|
+
* startVox: [10, 20, 30], // ignored if roiIsMask is false
|
|
2883
|
+
* endVox: [40, 50, 60] // ignored if roiIsMask is false
|
|
2884
|
+
* });
|
|
2781
2885
|
* @see {@link https://niivue.github.io/niivue/features/draw2.html | live demo usage}
|
|
2782
2886
|
*/
|
|
2783
|
-
getDescriptives(
|
|
2887
|
+
getDescriptives(options: {
|
|
2888
|
+
layer?: number;
|
|
2889
|
+
masks?: number[];
|
|
2890
|
+
drawingIsMask?: boolean;
|
|
2891
|
+
roiIsMask?: boolean;
|
|
2892
|
+
startVox?: number[];
|
|
2893
|
+
endVox?: number[];
|
|
2894
|
+
}): Descriptive;
|
|
2784
2895
|
refreshLayers(overlayItem: NVImage, layer: number): void;
|
|
2785
2896
|
/**
|
|
2786
2897
|
* query all available color maps that can be applied to volumes
|
|
@@ -2912,6 +3023,7 @@ declare class Niivue {
|
|
|
2912
3023
|
effectiveCanvasHeight(): number;
|
|
2913
3024
|
effectiveCanvasWidth(): number;
|
|
2914
3025
|
getAllLabels(): NVLabel3D[];
|
|
3026
|
+
getConnectomeLabels(): NVLabel3D[];
|
|
2915
3027
|
getBulletMarginWidth(): number;
|
|
2916
3028
|
getLegendPanelWidth(): number;
|
|
2917
3029
|
getLegendPanelHeight(): number;
|
|
@@ -2943,9 +3055,10 @@ declare class Niivue {
|
|
|
2943
3055
|
screenFieldOfViewMM(axCorSag?: number, forceSliceMM?: boolean): vec3;
|
|
2944
3056
|
screenFieldOfViewExtendedVox(axCorSag?: number): MM;
|
|
2945
3057
|
screenFieldOfViewExtendedMM(axCorSag?: number): MM;
|
|
2946
|
-
drawSliceOrientationText(leftTopWidthHeight: number[], axCorSag: SLICE_TYPE): void;
|
|
3058
|
+
drawSliceOrientationText(leftTopWidthHeight: number[], axCorSag: SLICE_TYPE, padLeftTop?: number[]): void;
|
|
2947
3059
|
xyMM2xyzMM(axCorSag: SLICE_TYPE, sliceFrac: number): number[];
|
|
2948
|
-
|
|
3060
|
+
draw2DMain(leftTopWidthHeight: number[], axCorSag: SLICE_TYPE, customMM?: number): void;
|
|
3061
|
+
draw2D(leftTopWidthHeight: number[], axCorSag: SLICE_TYPE, customMM?: number, imageWidthHeight?: number[]): void;
|
|
2949
3062
|
calculateMvpMatrix(_unused: unknown, leftTopWidthHeight: number[], azimuth: number, elevation: number): mat4[];
|
|
2950
3063
|
calculateModelMatrix(azimuth: number, elevation: number): mat4;
|
|
2951
3064
|
calculateRayDirection(azimuth: number, elevation: number): vec3;
|
|
@@ -2964,12 +3077,13 @@ declare class Niivue {
|
|
|
2964
3077
|
* @param style - label style
|
|
2965
3078
|
* @param point - 3D point on the model
|
|
2966
3079
|
*/
|
|
2967
|
-
addLabel(text: string, style: NVLabel3DStyle, points?: number[] | number[][]): NVLabel3D;
|
|
3080
|
+
addLabel(text: string, style: NVLabel3DStyle, points?: number[] | number[][], anchor?: LabelAnchorPoint, onClick?: (label: NVLabel3D) => void): NVLabel3D;
|
|
2968
3081
|
calculateScreenPoint(point: [number, number, number], mvpMatrix: mat4, leftTopWidthHeight: number[]): vec4;
|
|
2969
3082
|
getLabelAtPoint(screenPoint: [number, number]): NVLabel3D | null;
|
|
2970
3083
|
drawLabelLine(label: NVLabel3D, pos: vec2, mvpMatrix: mat4, leftTopWidthHeight: number[], secondPass?: boolean): void;
|
|
2971
|
-
draw3DLabel(label: NVLabel3D, pos: vec2, mvpMatrix
|
|
3084
|
+
draw3DLabel(label: NVLabel3D, pos: vec2, mvpMatrix?: mat4, leftTopWidthHeight?: number[], bulletMargin?: number, legendWidth?: number, secondPass?: boolean): void;
|
|
2972
3085
|
draw3DLabels(mvpMatrix: mat4, leftTopWidthHeight: number[], secondPass?: boolean): void;
|
|
3086
|
+
drawAnchoredLabels(): void;
|
|
2973
3087
|
draw3D(leftTopWidthHeight?: number[], mvpMatrix?: mat4 | null, modelMatrix?: mat4 | null, normalMatrix?: mat4 | null, azimuth?: number | null, elevation?: number): string | undefined;
|
|
2974
3088
|
drawMesh3D(isDepthTest?: boolean, alpha?: number, m?: mat4, modelMtx?: mat4, normMtx?: mat4): void;
|
|
2975
3089
|
drawCrosshairs3D(isDepthTest?: boolean, alpha?: number, mvpMtx?: mat4 | null, is2DView?: boolean, isSliceMM?: boolean): void;
|
|
@@ -3009,4 +3123,4 @@ declare class Niivue {
|
|
|
3009
3123
|
set gl(gl: WebGL2RenderingContext | null);
|
|
3010
3124
|
}
|
|
3011
3125
|
|
|
3012
|
-
export { type Connectome, type ConnectomeOptions, DEFAULT_OPTIONS, DRAG_MODE, type DocumentData, type DragReleaseParams, type ExportDocumentData, INITIAL_SCENE_DATA, LabelLineTerminator, LabelTextAlignment, type LegacyConnectome, type LegacyNodes, MULTIPLANAR_TYPE, type NVConfigOptions, type NVConnectomeEdge, type NVConnectomeNode, NVController, NVDocument, NVImage, NVImageFromUrlOptions, NVLabel3D, NVLabel3DStyle, NVMesh, NVMeshFromUrlOptions, NVMeshLayerDefaults, NVMeshLoaders, NVUtilities, type NiftiHeader, type NiiVueLocation, type NiiVueLocationValue, Niivue, type Point, SHOW_RENDER, SLICE_TYPE, type Scene, type Volume, cmapper, ColorTables as colortables };
|
|
3126
|
+
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 };
|