@fideus-labs/fidnii 0.7.1 → 0.7.3
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/dist/OMEZarrNVImage.d.ts +49 -2
- package/dist/OMEZarrNVImage.d.ts.map +1 -1
- package/dist/OMEZarrNVImage.js +185 -20
- package/dist/OMEZarrNVImage.js.map +1 -1
- package/package.json +1 -1
- package/src/OMEZarrNVImage.ts +239 -22
package/dist/OMEZarrNVImage.d.ts
CHANGED
|
@@ -68,6 +68,16 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
68
68
|
* so that NiiVue renders them right-side up.
|
|
69
69
|
*/
|
|
70
70
|
private readonly _flipY2D;
|
|
71
|
+
/**
|
|
72
|
+
* Whether the y-flip for 2D images should be applied in the pixel
|
|
73
|
+
* data rather than the NIfTI affine.
|
|
74
|
+
*
|
|
75
|
+
* NiiVue uses a fast Texture2D code path for RGBA 2D images that
|
|
76
|
+
* bypasses the orient shader entirely, so affine-based y-flips have
|
|
77
|
+
* no visual effect. For these images we reverse the row order in the
|
|
78
|
+
* buffer instead.
|
|
79
|
+
*/
|
|
80
|
+
private readonly _flipY2DInData;
|
|
71
81
|
/** Full volume bounds in world space */
|
|
72
82
|
private readonly _volumeBounds;
|
|
73
83
|
/** Current buffer bounds in world space (may differ from full volume when clipped) */
|
|
@@ -217,6 +227,17 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
217
227
|
* @param signal - Optional AbortSignal to cancel the fetch
|
|
218
228
|
*/
|
|
219
229
|
private loadResolutionLevel;
|
|
230
|
+
/**
|
|
231
|
+
* Build an oriented affine for any resolution level, falling back
|
|
232
|
+
* to the base level's `axesOrientations` when the current level
|
|
233
|
+
* lacks orientation metadata.
|
|
234
|
+
*
|
|
235
|
+
* The `@fideus-labs/ngff-zarr` downsampling code currently omits
|
|
236
|
+
* `axesOrientations` on generated levels, so only level 0 carries
|
|
237
|
+
* orientation. Since orientation is a property of the physical
|
|
238
|
+
* space (not the resolution), it is correct to propagate it.
|
|
239
|
+
*/
|
|
240
|
+
private _createOrientedAffine;
|
|
220
241
|
/**
|
|
221
242
|
* Update NVImage header for a loaded region.
|
|
222
243
|
*
|
|
@@ -229,12 +250,38 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
229
250
|
* @param fetchedShape - The shape of the fetched data [z, y, x]
|
|
230
251
|
*/
|
|
231
252
|
private updateHeaderForRegion;
|
|
253
|
+
/**
|
|
254
|
+
* Reverse the row order of a 2D pixel buffer in place.
|
|
255
|
+
*
|
|
256
|
+
* Used for RGBA 2D images where NiiVue's Texture2D fast path
|
|
257
|
+
* bypasses the orient shader and the affine-based y-flip has no
|
|
258
|
+
* visual effect. Instead we physically reverse the scanlines so
|
|
259
|
+
* the top-to-bottom PNG row order becomes bottom-to-top, matching
|
|
260
|
+
* WebGL's texture coordinate convention.
|
|
261
|
+
*
|
|
262
|
+
* @param data - Typed array containing the pixel data
|
|
263
|
+
* @param width - Number of pixels per row (x dimension)
|
|
264
|
+
* @param height - Number of rows (y dimension)
|
|
265
|
+
* @param bytesPerPixel - Bytes per pixel (e.g. 4 for RGBA)
|
|
266
|
+
*/
|
|
267
|
+
private _flipRowsInPlace;
|
|
232
268
|
/**
|
|
233
269
|
* Update NiiVue clip planes from current _clipPlanes.
|
|
234
270
|
*
|
|
271
|
+
* NiiVue's orient shader physically reorders the 3D texture data so
|
|
272
|
+
* that its axes align with RAS (texture axis 0 = L→R, 1 = P→A,
|
|
273
|
+
* 2 = I→S). The clip plane shader then evaluates in this
|
|
274
|
+
* RAS-reoriented texture space.
|
|
275
|
+
*
|
|
276
|
+
* Clip planes are stored in OME-Zarr world space, where the axis
|
|
277
|
+
* order may differ from RAS (e.g. the y axis may encode S/I instead
|
|
278
|
+
* of A/P). We must permute clip plane normals, points, and buffer
|
|
279
|
+
* bounds from OME-Zarr axis order to the RAS physical row order that
|
|
280
|
+
* NiiVue's texture uses.
|
|
281
|
+
*
|
|
235
282
|
* Clip planes are converted relative to the CURRENT BUFFER bounds,
|
|
236
|
-
* not the full volume bounds
|
|
237
|
-
*
|
|
283
|
+
* not the full volume bounds, because NiiVue's shader works in
|
|
284
|
+
* texture coordinates of the currently loaded data.
|
|
238
285
|
*/
|
|
239
286
|
private updateNiivueClipPlanes;
|
|
240
287
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OMEZarrNVImage.d.ts","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAa,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAM3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAc,MAAM,gBAAgB,CAAA;AAcpD,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,aAAa,CAAA;AAWpB,OAAO,KAAK,EAMV,SAAS,EACT,UAAU,EACV,qBAAqB,EAErB,eAAe,EACf,aAAa,EACb,YAAY,EAGZ,YAAY,EAEb,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"OMEZarrNVImage.d.ts","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"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"}
|
package/dist/OMEZarrNVImage.js
CHANGED
|
@@ -12,9 +12,9 @@ import { computeChannelMinMax, normalizeToUint8 } from "./normalize.js";
|
|
|
12
12
|
import { RegionCoalescer } from "./RegionCoalescer.js";
|
|
13
13
|
import { getChunkShape, getVolumeShape, select2DResolution, selectResolution, } from "./ResolutionSelector.js";
|
|
14
14
|
import { getBytesPerPixel, getChannelInfo, getNiftiDataType, getRGBNiftiDataType, isRGBImage, NiftiDataType, needsRGBNormalization, parseZarritaDtype, } from "./types.js";
|
|
15
|
-
import { affineToNiftiSrows, calculateWorldBounds,
|
|
16
|
-
import { worldToPixelAffine } from "./utils/coordinates.js";
|
|
17
|
-
import { getOrientationMapping } from "./utils/orientation.js";
|
|
15
|
+
import { affineToNiftiSrows, calculateWorldBounds, createAffineFromOMEZarr, } from "./utils/affine.js";
|
|
16
|
+
import { pixelToWorldAffine, worldToPixelAffine } from "./utils/coordinates.js";
|
|
17
|
+
import { applyOrientationToAffine, getOrientationMapping, } from "./utils/orientation.js";
|
|
18
18
|
import { boundsApproxEqual, computeViewportBounds2D, computeViewportBounds3D, } from "./ViewportBounds.js";
|
|
19
19
|
const DEFAULT_MAX_PIXELS = 50_000_000;
|
|
20
20
|
const DEFAULT_MAX_CACHE_ENTRIES = 200;
|
|
@@ -97,6 +97,16 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
97
97
|
* so that NiiVue renders them right-side up.
|
|
98
98
|
*/
|
|
99
99
|
_flipY2D;
|
|
100
|
+
/**
|
|
101
|
+
* Whether the y-flip for 2D images should be applied in the pixel
|
|
102
|
+
* data rather than the NIfTI affine.
|
|
103
|
+
*
|
|
104
|
+
* NiiVue uses a fast Texture2D code path for RGBA 2D images that
|
|
105
|
+
* bypasses the orient shader entirely, so affine-based y-flips have
|
|
106
|
+
* no visual effect. For these images we reverse the row order in the
|
|
107
|
+
* buffer instead.
|
|
108
|
+
*/
|
|
109
|
+
_flipY2DInData;
|
|
100
110
|
/** Full volume bounds in world space */
|
|
101
111
|
_volumeBounds;
|
|
102
112
|
/** Current buffer bounds in world space (may differ from full volume when clipped) */
|
|
@@ -240,6 +250,11 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
240
250
|
// Detect 2D images (no z axis) and store y-flip preference
|
|
241
251
|
this._is2D = highResImage.dims.indexOf("z") === -1;
|
|
242
252
|
this._flipY2D = options.flipY2D ?? true;
|
|
253
|
+
// NiiVue uses a Texture2D fast path for RGBA 2D images that
|
|
254
|
+
// bypasses the orient shader. Affine-based y-flips have no
|
|
255
|
+
// visual effect in that path, so we flip the pixel data instead.
|
|
256
|
+
this._flipY2DInData =
|
|
257
|
+
this._flipY2D && this._is2D && this._channelInfo !== null;
|
|
243
258
|
// Detect time dimension from the zarr axes
|
|
244
259
|
const tDimIndex = highResImage.dims.indexOf("t");
|
|
245
260
|
if (tDimIndex !== -1) {
|
|
@@ -365,7 +380,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
365
380
|
];
|
|
366
381
|
placeholderAffine[mapping.x.physicalRow][0] = mapping.x.sign;
|
|
367
382
|
let ySign = mapping.y.sign;
|
|
368
|
-
if (this._flipY2D && this._is2D) {
|
|
383
|
+
if (this._flipY2D && this._is2D && !this._flipY2DInData) {
|
|
369
384
|
ySign = (ySign * -1);
|
|
370
385
|
}
|
|
371
386
|
placeholderAffine[mapping.y.physicalRow][1] = ySign;
|
|
@@ -548,6 +563,16 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
548
563
|
// uint8 RGB or scalar: direct copy
|
|
549
564
|
targetData.set(result.data);
|
|
550
565
|
}
|
|
566
|
+
// For RGBA 2D images, reverse the row order so the top-to-bottom
|
|
567
|
+
// pixel data matches WebGL's bottom-to-top texture convention.
|
|
568
|
+
// NiiVue's Texture2D fast path for RGBA 2D images skips the orient
|
|
569
|
+
// shader, so the affine-based y-flip has no effect on rendering.
|
|
570
|
+
if (this._flipY2DInData) {
|
|
571
|
+
const components = this._channelInfo?.components ?? 1;
|
|
572
|
+
this._flipRowsInPlace(targetData, fetchedShape[2], // x dimension (width)
|
|
573
|
+
fetchedShape[1], // y dimension (height)
|
|
574
|
+
components * this.bufferManager.getBytesPerPixel());
|
|
575
|
+
}
|
|
551
576
|
// Update this.img to point to the (possibly new) buffer
|
|
552
577
|
this.img = this.bufferManager.getTypedArray();
|
|
553
578
|
// Update NVImage header with correct dimensions and transforms
|
|
@@ -588,6 +613,21 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
588
613
|
trigger: this._currentPopulateTrigger,
|
|
589
614
|
});
|
|
590
615
|
}
|
|
616
|
+
/**
|
|
617
|
+
* Build an oriented affine for any resolution level, falling back
|
|
618
|
+
* to the base level's `axesOrientations` when the current level
|
|
619
|
+
* lacks orientation metadata.
|
|
620
|
+
*
|
|
621
|
+
* The `@fideus-labs/ngff-zarr` downsampling code currently omits
|
|
622
|
+
* `axesOrientations` on generated levels, so only level 0 carries
|
|
623
|
+
* orientation. Since orientation is a property of the physical
|
|
624
|
+
* space (not the resolution), it is correct to propagate it.
|
|
625
|
+
*/
|
|
626
|
+
_createOrientedAffine(ngffImage) {
|
|
627
|
+
const affine = createAffineFromOMEZarr(ngffImage.scale, ngffImage.translation);
|
|
628
|
+
const orientations = ngffImage.axesOrientations ?? this.multiscales.images[0]?.axesOrientations;
|
|
629
|
+
return applyOrientationToAffine(affine, orientations);
|
|
630
|
+
}
|
|
591
631
|
/**
|
|
592
632
|
* Update NVImage header for a loaded region.
|
|
593
633
|
*
|
|
@@ -640,7 +680,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
640
680
|
// and sign flips), then apply the region offset in world space.
|
|
641
681
|
// The offset goes through the oriented 3x3 rotation matrix so it
|
|
642
682
|
// lands on the correct world axis even when NGFF axes are permuted.
|
|
643
|
-
const affine =
|
|
683
|
+
const affine = this._createOrientedAffine(ngffImage);
|
|
644
684
|
// regionStart is [z, y, x]; affine columns map NIfTI [i=x, j=y, k=z]
|
|
645
685
|
const offsetX = regionStart[2]; // NIfTI i = NGFF x
|
|
646
686
|
const offsetY = regionStart[1]; // NIfTI j = NGFF y
|
|
@@ -655,9 +695,16 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
655
695
|
// top-to-bottom pixel storage order. We shift the translation so
|
|
656
696
|
// the last row maps to where the first row was, then negate the
|
|
657
697
|
// y column. This composes correctly with any orientation sign.
|
|
658
|
-
|
|
698
|
+
//
|
|
699
|
+
// Skip the affine flip when _flipY2DInData is set: NiiVue's RGBA
|
|
700
|
+
// 2D Texture2D fast path ignores the orient shader, so the affine
|
|
701
|
+
// y-flip has no visual effect. In that case the rows are reversed
|
|
702
|
+
// in the pixel buffer instead (see _flipRowsInPlace).
|
|
703
|
+
if (this._flipY2D && this._is2D && !this._flipY2DInData) {
|
|
659
704
|
// Get the y axis orientation mapping to find where the y scale is stored
|
|
660
|
-
const
|
|
705
|
+
const orientations = ngffImage.axesOrientations ??
|
|
706
|
+
this.multiscales.images[0]?.axesOrientations;
|
|
707
|
+
const mapping = getOrientationMapping(orientations);
|
|
661
708
|
// The y scale is at affine[4 + physicalRow] (column 1, appropriate row)
|
|
662
709
|
const yScaleIndex = 4 + mapping.y.physicalRow;
|
|
663
710
|
affine[13] += affine[yScaleIndex] * (fetchedShape[1] - 1);
|
|
@@ -669,17 +716,84 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
669
716
|
// Recalculate RAS orientation
|
|
670
717
|
this.calculateRAS();
|
|
671
718
|
}
|
|
719
|
+
/**
|
|
720
|
+
* Reverse the row order of a 2D pixel buffer in place.
|
|
721
|
+
*
|
|
722
|
+
* Used for RGBA 2D images where NiiVue's Texture2D fast path
|
|
723
|
+
* bypasses the orient shader and the affine-based y-flip has no
|
|
724
|
+
* visual effect. Instead we physically reverse the scanlines so
|
|
725
|
+
* the top-to-bottom PNG row order becomes bottom-to-top, matching
|
|
726
|
+
* WebGL's texture coordinate convention.
|
|
727
|
+
*
|
|
728
|
+
* @param data - Typed array containing the pixel data
|
|
729
|
+
* @param width - Number of pixels per row (x dimension)
|
|
730
|
+
* @param height - Number of rows (y dimension)
|
|
731
|
+
* @param bytesPerPixel - Bytes per pixel (e.g. 4 for RGBA)
|
|
732
|
+
*/
|
|
733
|
+
_flipRowsInPlace(data, width, height, bytesPerPixel) {
|
|
734
|
+
const rowBytes = width * bytesPerPixel;
|
|
735
|
+
const buf = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
736
|
+
const tmp = new Uint8Array(rowBytes);
|
|
737
|
+
for (let y = 0; y < height >>> 1; y++) {
|
|
738
|
+
const topOffset = y * rowBytes;
|
|
739
|
+
const botOffset = (height - 1 - y) * rowBytes;
|
|
740
|
+
// Swap top row ↔ bottom row via tmp
|
|
741
|
+
tmp.set(buf.subarray(topOffset, topOffset + rowBytes));
|
|
742
|
+
buf.copyWithin(topOffset, botOffset, botOffset + rowBytes);
|
|
743
|
+
buf.set(tmp, botOffset);
|
|
744
|
+
}
|
|
745
|
+
}
|
|
672
746
|
/**
|
|
673
747
|
* Update NiiVue clip planes from current _clipPlanes.
|
|
674
748
|
*
|
|
749
|
+
* NiiVue's orient shader physically reorders the 3D texture data so
|
|
750
|
+
* that its axes align with RAS (texture axis 0 = L→R, 1 = P→A,
|
|
751
|
+
* 2 = I→S). The clip plane shader then evaluates in this
|
|
752
|
+
* RAS-reoriented texture space.
|
|
753
|
+
*
|
|
754
|
+
* Clip planes are stored in OME-Zarr world space, where the axis
|
|
755
|
+
* order may differ from RAS (e.g. the y axis may encode S/I instead
|
|
756
|
+
* of A/P). We must permute clip plane normals, points, and buffer
|
|
757
|
+
* bounds from OME-Zarr axis order to the RAS physical row order that
|
|
758
|
+
* NiiVue's texture uses.
|
|
759
|
+
*
|
|
675
760
|
* Clip planes are converted relative to the CURRENT BUFFER bounds,
|
|
676
|
-
* not the full volume bounds
|
|
677
|
-
*
|
|
761
|
+
* not the full volume bounds, because NiiVue's shader works in
|
|
762
|
+
* texture coordinates of the currently loaded data.
|
|
678
763
|
*/
|
|
679
764
|
updateNiivueClipPlanes() {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
765
|
+
const orientations = this.multiscales.images[0]?.axesOrientations;
|
|
766
|
+
const mapping = getOrientationMapping(orientations);
|
|
767
|
+
// Permute a 3-vector from OME-Zarr axis order to RAS physical
|
|
768
|
+
// row order, applying sign flips for axis direction.
|
|
769
|
+
const permuteVec = (v) => {
|
|
770
|
+
const out = [0, 0, 0];
|
|
771
|
+
out[mapping.x.physicalRow] = mapping.x.sign * v[0];
|
|
772
|
+
out[mapping.y.physicalRow] = mapping.y.sign * v[1];
|
|
773
|
+
out[mapping.z.physicalRow] = mapping.z.sign * v[2];
|
|
774
|
+
return out;
|
|
775
|
+
};
|
|
776
|
+
// Transform clip planes from OME-Zarr space to RAS-oriented space
|
|
777
|
+
const orientedPlanes = this._clipPlanes.map((p) => ({
|
|
778
|
+
point: permuteVec(p.point),
|
|
779
|
+
normal: permuteVec(p.normal),
|
|
780
|
+
}));
|
|
781
|
+
// Transform buffer bounds to RAS-oriented space
|
|
782
|
+
const bMin = permuteVec(this._currentBufferBounds.min);
|
|
783
|
+
const bMax = permuteVec(this._currentBufferBounds.max);
|
|
784
|
+
const orientedBounds = {
|
|
785
|
+
min: [
|
|
786
|
+
Math.min(bMin[0], bMax[0]),
|
|
787
|
+
Math.min(bMin[1], bMax[1]),
|
|
788
|
+
Math.min(bMin[2], bMax[2]),
|
|
789
|
+
],
|
|
790
|
+
max: [
|
|
791
|
+
Math.max(bMin[0], bMax[0]),
|
|
792
|
+
Math.max(bMin[1], bMax[1]),
|
|
793
|
+
Math.max(bMin[2], bMax[2]),
|
|
794
|
+
],
|
|
795
|
+
};
|
|
796
|
+
const niivueClipPlanes = clipPlanesToNiivue(orientedPlanes, orientedBounds);
|
|
683
797
|
if (niivueClipPlanes.length > 0) {
|
|
684
798
|
this.niivue.scene.clipPlaneDepthAziElevs = niivueClipPlanes;
|
|
685
799
|
}
|
|
@@ -912,6 +1026,10 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
912
1026
|
this._invalidateTimeFrameCache();
|
|
913
1027
|
this.populateVolume(true, "clipPlanesChanged"); // Skip preview for clip plane updates
|
|
914
1028
|
}
|
|
1029
|
+
// Reload active slabs so 2D views respect the updated clip planes.
|
|
1030
|
+
// Slab loading already uses _clipPlanes to compute the fetch region,
|
|
1031
|
+
// so reloading constrains the visible 2D data to the ROI.
|
|
1032
|
+
this._reloadAllSlabs("clipPlanesChanged");
|
|
915
1033
|
// Emit clipPlanesChange event (after debounce)
|
|
916
1034
|
this._emitEvent("clipPlanesChange", {
|
|
917
1035
|
clipPlanes: this.copyClipPlanes(this._clipPlanes),
|
|
@@ -1863,11 +1981,38 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1863
1981
|
// Must use the full oriented affine (not the naive scale+translation)
|
|
1864
1982
|
// because worldCoord is in oriented (NIfTI RAS) space.
|
|
1865
1983
|
const ngffImage = this.multiscales.images[slabState.levelIndex];
|
|
1866
|
-
const orientedAffine =
|
|
1984
|
+
const orientedAffine = this._createOrientedAffine(ngffImage);
|
|
1867
1985
|
const pixelCoord = worldToPixelAffine(worldCoord, orientedAffine);
|
|
1868
1986
|
// Check the orthogonal axis
|
|
1869
1987
|
const orthAxis = this._getOrthogonalAxis(sliceType);
|
|
1870
1988
|
const pixelPos = pixelCoord[orthAxis];
|
|
1989
|
+
// Clamp crosshair to clip plane bounds on the orthogonal axis so the
|
|
1990
|
+
// user cannot scroll past the ROI boundary in 2D slice views.
|
|
1991
|
+
if (this._clipPlanes.length > 0) {
|
|
1992
|
+
const pixelRegion = clipPlanesToPixelRegion(this._clipPlanes, this._volumeBounds, ngffImage);
|
|
1993
|
+
const orthMin = pixelRegion.start[orthAxis];
|
|
1994
|
+
const orthMax = pixelRegion.end[orthAxis];
|
|
1995
|
+
if (pixelPos < orthMin || pixelPos >= orthMax) {
|
|
1996
|
+
// Clamp to the nearest edge of the clip plane region
|
|
1997
|
+
const clampedPixel = [...pixelCoord];
|
|
1998
|
+
clampedPixel[orthAxis] = Math.max(orthMin, Math.min(orthMax - 1, pixelPos));
|
|
1999
|
+
// Convert clamped pixel back to world → normalized mm → frac
|
|
2000
|
+
const clampedWorld = pixelToWorldAffine(clampedPixel, orientedAffine);
|
|
2001
|
+
const ns = slabState.normalizationScale;
|
|
2002
|
+
const normalizedMM = [
|
|
2003
|
+
clampedWorld[0] * ns,
|
|
2004
|
+
clampedWorld[1] * ns,
|
|
2005
|
+
clampedWorld[2] * ns,
|
|
2006
|
+
];
|
|
2007
|
+
const frac = nv.mm2frac(normalizedMM);
|
|
2008
|
+
frac[0] = Math.max(0, Math.min(1, frac[0]));
|
|
2009
|
+
frac[1] = Math.max(0, Math.min(1, frac[1]));
|
|
2010
|
+
frac[2] = Math.max(0, Math.min(1, frac[2]));
|
|
2011
|
+
nv.scene.crosshairPos = frac;
|
|
2012
|
+
nv.drawScene();
|
|
2013
|
+
return; // Repositioning fires a new locationChange event
|
|
2014
|
+
}
|
|
2015
|
+
}
|
|
1871
2016
|
// Is the pixel position outside the currently loaded slab?
|
|
1872
2017
|
if (pixelPos < slabState.slabStart || pixelPos >= slabState.slabEnd) {
|
|
1873
2018
|
// Need to reload the slab for the new position
|
|
@@ -2135,13 +2280,13 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2135
2280
|
// Convert world position to pixel position at this level.
|
|
2136
2281
|
// Must use the full oriented affine because worldCoord is in oriented
|
|
2137
2282
|
// (NIfTI RAS) space, not raw NGFF scale+translation space.
|
|
2138
|
-
const orientedAffine =
|
|
2283
|
+
const orientedAffine = this._createOrientedAffine(ngffImage);
|
|
2139
2284
|
const pixelCoord = worldToPixelAffine(worldCoord, orientedAffine);
|
|
2140
2285
|
const orthPixel = pixelCoord[orthAxis];
|
|
2141
2286
|
// Find the chunk-aligned slab in the orthogonal axis
|
|
2142
2287
|
const chunkSize = chunkShape[orthAxis];
|
|
2143
|
-
|
|
2144
|
-
|
|
2288
|
+
let slabStart = Math.max(0, Math.floor(orthPixel / chunkSize) * chunkSize);
|
|
2289
|
+
let slabEnd = Math.min(slabStart + chunkSize, volumeShape[orthAxis]);
|
|
2145
2290
|
// Get the full in-plane region (respecting clip planes only).
|
|
2146
2291
|
// Viewport bounds are intentionally NOT passed here — they are used only
|
|
2147
2292
|
// for resolution selection (in _loadSlab → select2DResolution) so that a
|
|
@@ -2149,7 +2294,19 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2149
2294
|
// covers the full in-plane extent so the slab fills the entire viewport.
|
|
2150
2295
|
const pixelRegion = clipPlanesToPixelRegion(this._clipPlanes, this._volumeBounds, ngffImage);
|
|
2151
2296
|
const alignedRegion = alignToChunks(pixelRegion, ngffImage);
|
|
2152
|
-
//
|
|
2297
|
+
// Clamp the orthogonal slab extent to clip plane bounds so 2D views
|
|
2298
|
+
// never fetch data outside the ROI on the perpendicular axis.
|
|
2299
|
+
if (this._clipPlanes.length > 0) {
|
|
2300
|
+
slabStart = Math.max(slabStart, alignedRegion.chunkAlignedStart[orthAxis]);
|
|
2301
|
+
slabEnd = Math.min(slabEnd, alignedRegion.chunkAlignedEnd[orthAxis]);
|
|
2302
|
+
if (slabEnd <= slabStart) {
|
|
2303
|
+
// Crosshair is entirely outside the clip plane region on this
|
|
2304
|
+
// axis — snap to the first chunk of the clipped region.
|
|
2305
|
+
slabStart = alignedRegion.chunkAlignedStart[orthAxis];
|
|
2306
|
+
slabEnd = Math.min(slabStart + chunkSize, alignedRegion.chunkAlignedEnd[orthAxis]);
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
2309
|
+
// Override the orthogonal axis with our (clamped) slab extent
|
|
2153
2310
|
const fetchStart = [
|
|
2154
2311
|
alignedRegion.chunkAlignedStart[0],
|
|
2155
2312
|
alignedRegion.chunkAlignedStart[1],
|
|
@@ -2183,6 +2340,13 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2183
2340
|
// uint8 RGB or scalar: direct copy
|
|
2184
2341
|
targetData.set(result.data);
|
|
2185
2342
|
}
|
|
2343
|
+
// Reverse row order for RGBA 2D images (see populateVolume).
|
|
2344
|
+
if (this._flipY2DInData) {
|
|
2345
|
+
const components = this._channelInfo?.components ?? 1;
|
|
2346
|
+
this._flipRowsInPlace(targetData, fetchedShape[2], // x dimension (width)
|
|
2347
|
+
fetchedShape[1], // y dimension (height)
|
|
2348
|
+
components * targetData.BYTES_PER_ELEMENT);
|
|
2349
|
+
}
|
|
2186
2350
|
slabState.nvImage.img =
|
|
2187
2351
|
slabState.bufferManager.getTypedArray();
|
|
2188
2352
|
// Update slab position tracking
|
|
@@ -2280,7 +2444,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2280
2444
|
// matrix is needed to transform that voxel offset into world coordinates.
|
|
2281
2445
|
// Previously, the offset was applied before orientation which broke when
|
|
2282
2446
|
// NGFF axes were permuted (e.g. NGFF z → physical A/P axis).
|
|
2283
|
-
const affine =
|
|
2447
|
+
const affine = this._createOrientedAffine(ngffImage);
|
|
2284
2448
|
// Transform the NGFF voxel offset through the oriented 3x3 rotation.
|
|
2285
2449
|
// fetchStart is [z, y, x]; affine columns map NIfTI [i=x, j=y, k=z]
|
|
2286
2450
|
// to world, so we need offset in NIfTI [x, y, z] order.
|
|
@@ -2294,8 +2458,9 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2294
2458
|
affine[1] * offsetX + affine[5] * offsetY + affine[9] * offsetZ;
|
|
2295
2459
|
affine[14] +=
|
|
2296
2460
|
affine[2] * offsetX + affine[6] * offsetY + affine[10] * offsetZ;
|
|
2297
|
-
// For 2D images, flip y before normalization (composes with orientation)
|
|
2298
|
-
|
|
2461
|
+
// For 2D images, flip y before normalization (composes with orientation).
|
|
2462
|
+
// Skip when _flipY2DInData: rows are already reversed in the buffer.
|
|
2463
|
+
if (this._flipY2D && this._is2D && !this._flipY2DInData) {
|
|
2299
2464
|
// Get the y axis orientation mapping to find where the y scale is stored
|
|
2300
2465
|
const mapping = getOrientationMapping(ngffImage.axesOrientations);
|
|
2301
2466
|
// The y scale is at affine[4 + physicalRow] (column 1, appropriate row)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OMEZarrNVImage.js","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OMEZarrNVImage.js","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/OMEZarrNVImage.ts
CHANGED
|
@@ -70,11 +70,13 @@ import {
|
|
|
70
70
|
import {
|
|
71
71
|
affineToNiftiSrows,
|
|
72
72
|
calculateWorldBounds,
|
|
73
|
-
createAffineFromNgffImage,
|
|
74
73
|
createAffineFromOMEZarr,
|
|
75
74
|
} from "./utils/affine.js"
|
|
76
|
-
import { worldToPixelAffine } from "./utils/coordinates.js"
|
|
77
|
-
import {
|
|
75
|
+
import { pixelToWorldAffine, worldToPixelAffine } from "./utils/coordinates.js"
|
|
76
|
+
import {
|
|
77
|
+
applyOrientationToAffine,
|
|
78
|
+
getOrientationMapping,
|
|
79
|
+
} from "./utils/orientation.js"
|
|
78
80
|
import {
|
|
79
81
|
boundsApproxEqual,
|
|
80
82
|
computeViewportBounds2D,
|
|
@@ -181,6 +183,17 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
181
183
|
*/
|
|
182
184
|
private readonly _flipY2D: boolean
|
|
183
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Whether the y-flip for 2D images should be applied in the pixel
|
|
188
|
+
* data rather than the NIfTI affine.
|
|
189
|
+
*
|
|
190
|
+
* NiiVue uses a fast Texture2D code path for RGBA 2D images that
|
|
191
|
+
* bypasses the orient shader entirely, so affine-based y-flips have
|
|
192
|
+
* no visual effect. For these images we reverse the row order in the
|
|
193
|
+
* buffer instead.
|
|
194
|
+
*/
|
|
195
|
+
private readonly _flipY2DInData: boolean
|
|
196
|
+
|
|
184
197
|
/** Full volume bounds in world space */
|
|
185
198
|
private readonly _volumeBounds: VolumeBounds
|
|
186
199
|
|
|
@@ -381,6 +394,12 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
381
394
|
this._is2D = highResImage.dims.indexOf("z") === -1
|
|
382
395
|
this._flipY2D = options.flipY2D ?? true
|
|
383
396
|
|
|
397
|
+
// NiiVue uses a Texture2D fast path for RGBA 2D images that
|
|
398
|
+
// bypasses the orient shader. Affine-based y-flips have no
|
|
399
|
+
// visual effect in that path, so we flip the pixel data instead.
|
|
400
|
+
this._flipY2DInData =
|
|
401
|
+
this._flipY2D && this._is2D && this._channelInfo !== null
|
|
402
|
+
|
|
384
403
|
// Detect time dimension from the zarr axes
|
|
385
404
|
const tDimIndex = highResImage.dims.indexOf("t")
|
|
386
405
|
if (tDimIndex !== -1) {
|
|
@@ -544,7 +563,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
544
563
|
]
|
|
545
564
|
placeholderAffine[mapping.x.physicalRow][0] = mapping.x.sign
|
|
546
565
|
let ySign = mapping.y.sign
|
|
547
|
-
if (this._flipY2D && this._is2D) {
|
|
566
|
+
if (this._flipY2D && this._is2D && !this._flipY2DInData) {
|
|
548
567
|
ySign = (ySign * -1) as 1 | -1
|
|
549
568
|
}
|
|
550
569
|
placeholderAffine[mapping.y.physicalRow][1] = ySign
|
|
@@ -790,6 +809,20 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
790
809
|
targetData.set(result.data)
|
|
791
810
|
}
|
|
792
811
|
|
|
812
|
+
// For RGBA 2D images, reverse the row order so the top-to-bottom
|
|
813
|
+
// pixel data matches WebGL's bottom-to-top texture convention.
|
|
814
|
+
// NiiVue's Texture2D fast path for RGBA 2D images skips the orient
|
|
815
|
+
// shader, so the affine-based y-flip has no effect on rendering.
|
|
816
|
+
if (this._flipY2DInData) {
|
|
817
|
+
const components = this._channelInfo?.components ?? 1
|
|
818
|
+
this._flipRowsInPlace(
|
|
819
|
+
targetData,
|
|
820
|
+
fetchedShape[2], // x dimension (width)
|
|
821
|
+
fetchedShape[1], // y dimension (height)
|
|
822
|
+
components * this.bufferManager.getBytesPerPixel(),
|
|
823
|
+
)
|
|
824
|
+
}
|
|
825
|
+
|
|
793
826
|
// Update this.img to point to the (possibly new) buffer
|
|
794
827
|
this.img = this.bufferManager.getTypedArray() as NVImage["img"]
|
|
795
828
|
|
|
@@ -838,6 +871,26 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
838
871
|
})
|
|
839
872
|
}
|
|
840
873
|
|
|
874
|
+
/**
|
|
875
|
+
* Build an oriented affine for any resolution level, falling back
|
|
876
|
+
* to the base level's `axesOrientations` when the current level
|
|
877
|
+
* lacks orientation metadata.
|
|
878
|
+
*
|
|
879
|
+
* The `@fideus-labs/ngff-zarr` downsampling code currently omits
|
|
880
|
+
* `axesOrientations` on generated levels, so only level 0 carries
|
|
881
|
+
* orientation. Since orientation is a property of the physical
|
|
882
|
+
* space (not the resolution), it is correct to propagate it.
|
|
883
|
+
*/
|
|
884
|
+
private _createOrientedAffine(ngffImage: NgffImage) {
|
|
885
|
+
const affine = createAffineFromOMEZarr(
|
|
886
|
+
ngffImage.scale,
|
|
887
|
+
ngffImage.translation,
|
|
888
|
+
)
|
|
889
|
+
const orientations =
|
|
890
|
+
ngffImage.axesOrientations ?? this.multiscales.images[0]?.axesOrientations
|
|
891
|
+
return applyOrientationToAffine(affine, orientations)
|
|
892
|
+
}
|
|
893
|
+
|
|
841
894
|
/**
|
|
842
895
|
* Update NVImage header for a loaded region.
|
|
843
896
|
*
|
|
@@ -899,7 +952,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
899
952
|
// and sign flips), then apply the region offset in world space.
|
|
900
953
|
// The offset goes through the oriented 3x3 rotation matrix so it
|
|
901
954
|
// lands on the correct world axis even when NGFF axes are permuted.
|
|
902
|
-
const affine =
|
|
955
|
+
const affine = this._createOrientedAffine(ngffImage)
|
|
903
956
|
|
|
904
957
|
// regionStart is [z, y, x]; affine columns map NIfTI [i=x, j=y, k=z]
|
|
905
958
|
const offsetX = regionStart[2] // NIfTI i = NGFF x
|
|
@@ -916,9 +969,17 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
916
969
|
// top-to-bottom pixel storage order. We shift the translation so
|
|
917
970
|
// the last row maps to where the first row was, then negate the
|
|
918
971
|
// y column. This composes correctly with any orientation sign.
|
|
919
|
-
|
|
972
|
+
//
|
|
973
|
+
// Skip the affine flip when _flipY2DInData is set: NiiVue's RGBA
|
|
974
|
+
// 2D Texture2D fast path ignores the orient shader, so the affine
|
|
975
|
+
// y-flip has no visual effect. In that case the rows are reversed
|
|
976
|
+
// in the pixel buffer instead (see _flipRowsInPlace).
|
|
977
|
+
if (this._flipY2D && this._is2D && !this._flipY2DInData) {
|
|
920
978
|
// Get the y axis orientation mapping to find where the y scale is stored
|
|
921
|
-
const
|
|
979
|
+
const orientations =
|
|
980
|
+
ngffImage.axesOrientations ??
|
|
981
|
+
this.multiscales.images[0]?.axesOrientations
|
|
982
|
+
const mapping = getOrientationMapping(orientations)
|
|
922
983
|
// The y scale is at affine[4 + physicalRow] (column 1, appropriate row)
|
|
923
984
|
const yScaleIndex = 4 + mapping.y.physicalRow
|
|
924
985
|
affine[13] += affine[yScaleIndex] * (fetchedShape[1] - 1)
|
|
@@ -933,20 +994,106 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
933
994
|
this.calculateRAS()
|
|
934
995
|
}
|
|
935
996
|
|
|
997
|
+
/**
|
|
998
|
+
* Reverse the row order of a 2D pixel buffer in place.
|
|
999
|
+
*
|
|
1000
|
+
* Used for RGBA 2D images where NiiVue's Texture2D fast path
|
|
1001
|
+
* bypasses the orient shader and the affine-based y-flip has no
|
|
1002
|
+
* visual effect. Instead we physically reverse the scanlines so
|
|
1003
|
+
* the top-to-bottom PNG row order becomes bottom-to-top, matching
|
|
1004
|
+
* WebGL's texture coordinate convention.
|
|
1005
|
+
*
|
|
1006
|
+
* @param data - Typed array containing the pixel data
|
|
1007
|
+
* @param width - Number of pixels per row (x dimension)
|
|
1008
|
+
* @param height - Number of rows (y dimension)
|
|
1009
|
+
* @param bytesPerPixel - Bytes per pixel (e.g. 4 for RGBA)
|
|
1010
|
+
*/
|
|
1011
|
+
private _flipRowsInPlace(
|
|
1012
|
+
data: ArrayBufferView & { readonly length: number },
|
|
1013
|
+
width: number,
|
|
1014
|
+
height: number,
|
|
1015
|
+
bytesPerPixel: number,
|
|
1016
|
+
): void {
|
|
1017
|
+
const rowBytes = width * bytesPerPixel
|
|
1018
|
+
const buf = new Uint8Array(
|
|
1019
|
+
data.buffer as ArrayBuffer,
|
|
1020
|
+
data.byteOffset,
|
|
1021
|
+
data.byteLength,
|
|
1022
|
+
)
|
|
1023
|
+
const tmp = new Uint8Array(rowBytes)
|
|
1024
|
+
|
|
1025
|
+
for (let y = 0; y < height >>> 1; y++) {
|
|
1026
|
+
const topOffset = y * rowBytes
|
|
1027
|
+
const botOffset = (height - 1 - y) * rowBytes
|
|
1028
|
+
|
|
1029
|
+
// Swap top row ↔ bottom row via tmp
|
|
1030
|
+
tmp.set(buf.subarray(topOffset, topOffset + rowBytes))
|
|
1031
|
+
buf.copyWithin(topOffset, botOffset, botOffset + rowBytes)
|
|
1032
|
+
buf.set(tmp, botOffset)
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
|
|
936
1036
|
/**
|
|
937
1037
|
* Update NiiVue clip planes from current _clipPlanes.
|
|
938
1038
|
*
|
|
1039
|
+
* NiiVue's orient shader physically reorders the 3D texture data so
|
|
1040
|
+
* that its axes align with RAS (texture axis 0 = L→R, 1 = P→A,
|
|
1041
|
+
* 2 = I→S). The clip plane shader then evaluates in this
|
|
1042
|
+
* RAS-reoriented texture space.
|
|
1043
|
+
*
|
|
1044
|
+
* Clip planes are stored in OME-Zarr world space, where the axis
|
|
1045
|
+
* order may differ from RAS (e.g. the y axis may encode S/I instead
|
|
1046
|
+
* of A/P). We must permute clip plane normals, points, and buffer
|
|
1047
|
+
* bounds from OME-Zarr axis order to the RAS physical row order that
|
|
1048
|
+
* NiiVue's texture uses.
|
|
1049
|
+
*
|
|
939
1050
|
* Clip planes are converted relative to the CURRENT BUFFER bounds,
|
|
940
|
-
* not the full volume bounds
|
|
941
|
-
*
|
|
1051
|
+
* not the full volume bounds, because NiiVue's shader works in
|
|
1052
|
+
* texture coordinates of the currently loaded data.
|
|
942
1053
|
*/
|
|
943
1054
|
private updateNiivueClipPlanes(): void {
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
1055
|
+
const orientations = this.multiscales.images[0]?.axesOrientations
|
|
1056
|
+
const mapping = getOrientationMapping(orientations)
|
|
1057
|
+
|
|
1058
|
+
// Permute a 3-vector from OME-Zarr axis order to RAS physical
|
|
1059
|
+
// row order, applying sign flips for axis direction.
|
|
1060
|
+
const permuteVec = (
|
|
1061
|
+
v: [number, number, number],
|
|
1062
|
+
): [number, number, number] => {
|
|
1063
|
+
const out: [number, number, number] = [0, 0, 0]
|
|
1064
|
+
out[mapping.x.physicalRow] = mapping.x.sign * v[0]
|
|
1065
|
+
out[mapping.y.physicalRow] = mapping.y.sign * v[1]
|
|
1066
|
+
out[mapping.z.physicalRow] = mapping.z.sign * v[2]
|
|
1067
|
+
return out
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
// Transform clip planes from OME-Zarr space to RAS-oriented space
|
|
1071
|
+
const orientedPlanes: ClipPlanes = this._clipPlanes.map((p) => ({
|
|
1072
|
+
point: permuteVec(p.point),
|
|
1073
|
+
normal: permuteVec(p.normal),
|
|
1074
|
+
}))
|
|
1075
|
+
|
|
1076
|
+
// Transform buffer bounds to RAS-oriented space
|
|
1077
|
+
const bMin = permuteVec(
|
|
1078
|
+
this._currentBufferBounds.min as [number, number, number],
|
|
949
1079
|
)
|
|
1080
|
+
const bMax = permuteVec(
|
|
1081
|
+
this._currentBufferBounds.max as [number, number, number],
|
|
1082
|
+
)
|
|
1083
|
+
const orientedBounds: VolumeBounds = {
|
|
1084
|
+
min: [
|
|
1085
|
+
Math.min(bMin[0], bMax[0]),
|
|
1086
|
+
Math.min(bMin[1], bMax[1]),
|
|
1087
|
+
Math.min(bMin[2], bMax[2]),
|
|
1088
|
+
],
|
|
1089
|
+
max: [
|
|
1090
|
+
Math.max(bMin[0], bMax[0]),
|
|
1091
|
+
Math.max(bMin[1], bMax[1]),
|
|
1092
|
+
Math.max(bMin[2], bMax[2]),
|
|
1093
|
+
],
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
const niivueClipPlanes = clipPlanesToNiivue(orientedPlanes, orientedBounds)
|
|
950
1097
|
|
|
951
1098
|
if (niivueClipPlanes.length > 0) {
|
|
952
1099
|
this.niivue.scene.clipPlaneDepthAziElevs = niivueClipPlanes
|
|
@@ -1231,6 +1378,11 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1231
1378
|
this.populateVolume(true, "clipPlanesChanged") // Skip preview for clip plane updates
|
|
1232
1379
|
}
|
|
1233
1380
|
|
|
1381
|
+
// Reload active slabs so 2D views respect the updated clip planes.
|
|
1382
|
+
// Slab loading already uses _clipPlanes to compute the fetch region,
|
|
1383
|
+
// so reloading constrains the visible 2D data to the ROI.
|
|
1384
|
+
this._reloadAllSlabs("clipPlanesChanged")
|
|
1385
|
+
|
|
1234
1386
|
// Emit clipPlanesChange event (after debounce)
|
|
1235
1387
|
this._emitEvent("clipPlanesChange", {
|
|
1236
1388
|
clipPlanes: this.copyClipPlanes(this._clipPlanes),
|
|
@@ -2357,13 +2509,50 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2357
2509
|
// Must use the full oriented affine (not the naive scale+translation)
|
|
2358
2510
|
// because worldCoord is in oriented (NIfTI RAS) space.
|
|
2359
2511
|
const ngffImage = this.multiscales.images[slabState.levelIndex]
|
|
2360
|
-
const orientedAffine =
|
|
2512
|
+
const orientedAffine = this._createOrientedAffine(ngffImage)
|
|
2361
2513
|
const pixelCoord = worldToPixelAffine(worldCoord, orientedAffine)
|
|
2362
2514
|
|
|
2363
2515
|
// Check the orthogonal axis
|
|
2364
2516
|
const orthAxis = this._getOrthogonalAxis(sliceType)
|
|
2365
2517
|
const pixelPos = pixelCoord[orthAxis]
|
|
2366
2518
|
|
|
2519
|
+
// Clamp crosshair to clip plane bounds on the orthogonal axis so the
|
|
2520
|
+
// user cannot scroll past the ROI boundary in 2D slice views.
|
|
2521
|
+
if (this._clipPlanes.length > 0) {
|
|
2522
|
+
const pixelRegion = clipPlanesToPixelRegion(
|
|
2523
|
+
this._clipPlanes,
|
|
2524
|
+
this._volumeBounds,
|
|
2525
|
+
ngffImage,
|
|
2526
|
+
)
|
|
2527
|
+
const orthMin = pixelRegion.start[orthAxis]
|
|
2528
|
+
const orthMax = pixelRegion.end[orthAxis]
|
|
2529
|
+
|
|
2530
|
+
if (pixelPos < orthMin || pixelPos >= orthMax) {
|
|
2531
|
+
// Clamp to the nearest edge of the clip plane region
|
|
2532
|
+
const clampedPixel = [...pixelCoord] as [number, number, number]
|
|
2533
|
+
clampedPixel[orthAxis] = Math.max(
|
|
2534
|
+
orthMin,
|
|
2535
|
+
Math.min(orthMax - 1, pixelPos),
|
|
2536
|
+
)
|
|
2537
|
+
|
|
2538
|
+
// Convert clamped pixel back to world → normalized mm → frac
|
|
2539
|
+
const clampedWorld = pixelToWorldAffine(clampedPixel, orientedAffine)
|
|
2540
|
+
const ns = slabState.normalizationScale
|
|
2541
|
+
const normalizedMM: [number, number, number] = [
|
|
2542
|
+
clampedWorld[0] * ns,
|
|
2543
|
+
clampedWorld[1] * ns,
|
|
2544
|
+
clampedWorld[2] * ns,
|
|
2545
|
+
]
|
|
2546
|
+
const frac = nv.mm2frac(normalizedMM)
|
|
2547
|
+
frac[0] = Math.max(0, Math.min(1, frac[0]))
|
|
2548
|
+
frac[1] = Math.max(0, Math.min(1, frac[1]))
|
|
2549
|
+
frac[2] = Math.max(0, Math.min(1, frac[2]))
|
|
2550
|
+
nv.scene.crosshairPos = frac
|
|
2551
|
+
nv.drawScene()
|
|
2552
|
+
return // Repositioning fires a new locationChange event
|
|
2553
|
+
}
|
|
2554
|
+
}
|
|
2555
|
+
|
|
2367
2556
|
// Is the pixel position outside the currently loaded slab?
|
|
2368
2557
|
if (pixelPos < slabState.slabStart || pixelPos >= slabState.slabEnd) {
|
|
2369
2558
|
// Need to reload the slab for the new position
|
|
@@ -2703,14 +2892,14 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2703
2892
|
// Convert world position to pixel position at this level.
|
|
2704
2893
|
// Must use the full oriented affine because worldCoord is in oriented
|
|
2705
2894
|
// (NIfTI RAS) space, not raw NGFF scale+translation space.
|
|
2706
|
-
const orientedAffine =
|
|
2895
|
+
const orientedAffine = this._createOrientedAffine(ngffImage)
|
|
2707
2896
|
const pixelCoord = worldToPixelAffine(worldCoord, orientedAffine)
|
|
2708
2897
|
const orthPixel = pixelCoord[orthAxis]
|
|
2709
2898
|
|
|
2710
2899
|
// Find the chunk-aligned slab in the orthogonal axis
|
|
2711
2900
|
const chunkSize = chunkShape[orthAxis]
|
|
2712
|
-
|
|
2713
|
-
|
|
2901
|
+
let slabStart = Math.max(0, Math.floor(orthPixel / chunkSize) * chunkSize)
|
|
2902
|
+
let slabEnd = Math.min(slabStart + chunkSize, volumeShape[orthAxis])
|
|
2714
2903
|
|
|
2715
2904
|
// Get the full in-plane region (respecting clip planes only).
|
|
2716
2905
|
// Viewport bounds are intentionally NOT passed here — they are used only
|
|
@@ -2724,7 +2913,23 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2724
2913
|
)
|
|
2725
2914
|
const alignedRegion = alignToChunks(pixelRegion, ngffImage)
|
|
2726
2915
|
|
|
2727
|
-
//
|
|
2916
|
+
// Clamp the orthogonal slab extent to clip plane bounds so 2D views
|
|
2917
|
+
// never fetch data outside the ROI on the perpendicular axis.
|
|
2918
|
+
if (this._clipPlanes.length > 0) {
|
|
2919
|
+
slabStart = Math.max(slabStart, alignedRegion.chunkAlignedStart[orthAxis])
|
|
2920
|
+
slabEnd = Math.min(slabEnd, alignedRegion.chunkAlignedEnd[orthAxis])
|
|
2921
|
+
if (slabEnd <= slabStart) {
|
|
2922
|
+
// Crosshair is entirely outside the clip plane region on this
|
|
2923
|
+
// axis — snap to the first chunk of the clipped region.
|
|
2924
|
+
slabStart = alignedRegion.chunkAlignedStart[orthAxis]
|
|
2925
|
+
slabEnd = Math.min(
|
|
2926
|
+
slabStart + chunkSize,
|
|
2927
|
+
alignedRegion.chunkAlignedEnd[orthAxis],
|
|
2928
|
+
)
|
|
2929
|
+
}
|
|
2930
|
+
}
|
|
2931
|
+
|
|
2932
|
+
// Override the orthogonal axis with our (clamped) slab extent
|
|
2728
2933
|
const fetchStart: [number, number, number] = [
|
|
2729
2934
|
alignedRegion.chunkAlignedStart[0],
|
|
2730
2935
|
alignedRegion.chunkAlignedStart[1],
|
|
@@ -2775,6 +2980,17 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2775
2980
|
targetData.set(result.data)
|
|
2776
2981
|
}
|
|
2777
2982
|
|
|
2983
|
+
// Reverse row order for RGBA 2D images (see populateVolume).
|
|
2984
|
+
if (this._flipY2DInData) {
|
|
2985
|
+
const components = this._channelInfo?.components ?? 1
|
|
2986
|
+
this._flipRowsInPlace(
|
|
2987
|
+
targetData,
|
|
2988
|
+
fetchedShape[2], // x dimension (width)
|
|
2989
|
+
fetchedShape[1], // y dimension (height)
|
|
2990
|
+
components * targetData.BYTES_PER_ELEMENT,
|
|
2991
|
+
)
|
|
2992
|
+
}
|
|
2993
|
+
|
|
2778
2994
|
slabState.nvImage.img =
|
|
2779
2995
|
slabState.bufferManager.getTypedArray() as NVImage["img"]
|
|
2780
2996
|
|
|
@@ -2901,7 +3117,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2901
3117
|
// matrix is needed to transform that voxel offset into world coordinates.
|
|
2902
3118
|
// Previously, the offset was applied before orientation which broke when
|
|
2903
3119
|
// NGFF axes were permuted (e.g. NGFF z → physical A/P axis).
|
|
2904
|
-
const affine =
|
|
3120
|
+
const affine = this._createOrientedAffine(ngffImage)
|
|
2905
3121
|
|
|
2906
3122
|
// Transform the NGFF voxel offset through the oriented 3x3 rotation.
|
|
2907
3123
|
// fetchStart is [z, y, x]; affine columns map NIfTI [i=x, j=y, k=z]
|
|
@@ -2917,8 +3133,9 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
2917
3133
|
affine[14] +=
|
|
2918
3134
|
affine[2] * offsetX + affine[6] * offsetY + affine[10] * offsetZ
|
|
2919
3135
|
|
|
2920
|
-
// For 2D images, flip y before normalization (composes with orientation)
|
|
2921
|
-
|
|
3136
|
+
// For 2D images, flip y before normalization (composes with orientation).
|
|
3137
|
+
// Skip when _flipY2DInData: rows are already reversed in the buffer.
|
|
3138
|
+
if (this._flipY2D && this._is2D && !this._flipY2DInData) {
|
|
2922
3139
|
// Get the y axis orientation mapping to find where the y scale is stored
|
|
2923
3140
|
const mapping = getOrientationMapping(ngffImage.axesOrientations)
|
|
2924
3141
|
// The y scale is at affine[4 + physicalRow] (column 1, appropriate row)
|