@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.
@@ -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. This is because NiiVue's shader works
237
- * in texture coordinates of the currently loaded data.
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":"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"}
1
+ {"version":3,"file":"OMEZarrNVImage.d.ts","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"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"}
@@ -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, createAffineFromNgffImage, createAffineFromOMEZarr, } from "./utils/affine.js";
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 = createAffineFromNgffImage(ngffImage);
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
- if (this._flipY2D && this._is2D) {
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 mapping = getOrientationMapping(ngffImage.axesOrientations);
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. This is because NiiVue's shader works
677
- * in texture coordinates of the currently loaded data.
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
- // Use current buffer bounds for clip plane conversion
681
- // This ensures clip planes are relative to the currently loaded data
682
- const niivueClipPlanes = clipPlanesToNiivue(this._clipPlanes, this._currentBufferBounds);
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 = createAffineFromNgffImage(ngffImage);
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 = createAffineFromNgffImage(ngffImage);
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
- const slabStart = Math.max(0, Math.floor(orthPixel / chunkSize) * chunkSize);
2144
- const slabEnd = Math.min(slabStart + chunkSize, volumeShape[orthAxis]);
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
- // Override the orthogonal axis with our slab extent
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 = createAffineFromNgffImage(ngffImage);
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
- if (this._flipY2D && this._is2D) {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fideus-labs/fidnii",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "description": "Render OME-Zarr images in NiiVue with progressive multi-resolution loading",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -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 { getOrientationMapping } from "./utils/orientation.js"
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 = createAffineFromNgffImage(ngffImage)
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
- if (this._flipY2D && this._is2D) {
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 mapping = getOrientationMapping(ngffImage.axesOrientations)
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. This is because NiiVue's shader works
941
- * in texture coordinates of the currently loaded data.
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
- // Use current buffer bounds for clip plane conversion
945
- // This ensures clip planes are relative to the currently loaded data
946
- const niivueClipPlanes = clipPlanesToNiivue(
947
- this._clipPlanes,
948
- this._currentBufferBounds,
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 = createAffineFromNgffImage(ngffImage)
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 = createAffineFromNgffImage(ngffImage)
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
- const slabStart = Math.max(0, Math.floor(orthPixel / chunkSize) * chunkSize)
2713
- const slabEnd = Math.min(slabStart + chunkSize, volumeShape[orthAxis])
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
- // Override the orthogonal axis with our slab extent
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 = createAffineFromNgffImage(ngffImage)
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
- if (this._flipY2D && this._is2D) {
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)