@cornerstonejs/core 2.5.3 → 2.6.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.
@@ -478,6 +478,9 @@ class StackViewport extends Viewport {
478
478
  }
479
479
  getImageDataCPU() {
480
480
  const { metadata } = this._cpuFallbackEnabledElement;
481
+ if (!metadata) {
482
+ return;
483
+ }
481
484
  const spacing = metadata.spacing;
482
485
  const csImage = this.csImage;
483
486
  return {
@@ -697,6 +700,9 @@ class StackViewport extends Viewport {
697
700
  }
698
701
  getCameraCPU() {
699
702
  const { metadata, viewport } = this._cpuFallbackEnabledElement;
703
+ if (!metadata) {
704
+ return {};
705
+ }
700
706
  const { direction } = metadata;
701
707
  const viewPlaneNormal = direction.slice(6, 9).map((x) => -x);
702
708
  let viewUp = direction.slice(3, 6).map((x) => -x);
@@ -20,7 +20,7 @@ declare class VolumeViewport extends BaseVolumeViewport {
20
20
  resetCamera(options?: any): boolean;
21
21
  setSlabThickness(slabThickness: number, filterActorUIDs?: any[]): void;
22
22
  resetSlabThickness(): void;
23
- getCurrentImageIdIndex: (volumeId?: string) => number;
23
+ getCurrentImageIdIndex: (volumeId?: string, useSlabThickness?: boolean) => number;
24
24
  getSliceIndex: () => number;
25
25
  getSliceViewInfo(): {
26
26
  sliceIndex: number;
@@ -15,6 +15,7 @@ import { setTransferFunctionNodes } from '../utilities/transferFunctionUtils';
15
15
  import getImageSliceDataForVolumeViewport from '../utilities/getImageSliceDataForVolumeViewport';
16
16
  import { transformCanvasToIJK } from '../utilities/transformCanvasToIJK';
17
17
  import { transformIJKToCanvas } from '../utilities/transformIJKToCanvas';
18
+ import getVolumeViewportScrollInfo from '../utilities/getVolumeViewportScrollInfo';
18
19
  class VolumeViewport extends BaseVolumeViewport {
19
20
  constructor(props) {
20
21
  super(props);
@@ -32,18 +33,9 @@ class VolumeViewport extends BaseVolumeViewport {
32
33
  suppressEvents: true,
33
34
  });
34
35
  };
35
- this.getCurrentImageIdIndex = (volumeId) => {
36
- const { viewPlaneNormal, focalPoint } = this.getCamera();
37
- const imageData = this.getImageData(volumeId);
38
- if (!imageData) {
39
- return;
40
- }
41
- const { origin, direction, spacing } = imageData;
42
- const spacingInNormal = getSpacingInNormalDirection({ direction, spacing }, viewPlaneNormal);
43
- const sub = vec3.create();
44
- vec3.sub(sub, focalPoint, origin);
45
- const distance = vec3.dot(sub, viewPlaneNormal);
46
- return Math.round(Math.abs(distance) / spacingInNormal);
36
+ this.getCurrentImageIdIndex = (volumeId, useSlabThickness = true) => {
37
+ const { currentStepIndex } = getVolumeViewportScrollInfo(this, volumeId || this.getVolumeId(), useSlabThickness);
38
+ return currentStepIndex;
47
39
  };
48
40
  this.getSliceIndex = () => {
49
41
  const { imageIndex } = getImageSliceDataForVolumeViewport(this) || {};
@@ -1,4 +1,4 @@
1
- async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportIds) {
1
+ function addImageSlicesToViewports(renderingEngine, stackInputs, viewportIds) {
2
2
  for (const viewportId of viewportIds) {
3
3
  const viewport = renderingEngine.getStackViewport(viewportId);
4
4
  if (!viewport) {
@@ -9,10 +9,9 @@ async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportI
9
9
  return;
10
10
  }
11
11
  }
12
- const addStackPromises = viewportIds.map(async (viewportId) => {
12
+ viewportIds.forEach((viewportId) => {
13
13
  const viewport = renderingEngine.getStackViewport(viewportId);
14
14
  viewport.addImages(stackInputs);
15
15
  });
16
- await Promise.all(addStackPromises);
17
16
  }
18
17
  export default addImageSlicesToViewports;
@@ -427,11 +427,11 @@ export default class VoxelManager {
427
427
  return true;
428
428
  }
429
429
  const _getConstructor = () => {
430
- const pixelInfo = getPixelInfo(0);
431
- if (!pixelInfo?.pixelData) {
430
+ const { voxelManager: imageVoxelManager } = getPixelInfo(0);
431
+ if (!imageVoxelManager) {
432
432
  return null;
433
433
  }
434
- return pixelInfo.pixelData.constructor;
434
+ return imageVoxelManager.getConstructor();
435
435
  };
436
436
  const voxelManager = new VoxelManager(dimensions, {
437
437
  _get: getVoxelValue,
@@ -497,13 +497,13 @@ export default class VoxelManager {
497
497
  let minValue = Infinity;
498
498
  let maxValue = -Infinity;
499
499
  for (let sliceIndex = 0; sliceIndex < dimensions[2]; sliceIndex++) {
500
- const { pixelData } = getPixelInfo((sliceIndex * sliceSize) / numberOfComponents);
501
- if (pixelData && SliceDataConstructor) {
500
+ const { voxelManager: imageVoxelManager } = getPixelInfo((sliceIndex * sliceSize) / numberOfComponents);
501
+ if (imageVoxelManager && SliceDataConstructor) {
502
502
  const sliceStart = sliceIndex * sliceSize;
503
503
  const sliceEnd = sliceStart + sliceSize;
504
504
  const sliceData = new SliceDataConstructor(sliceSize);
505
505
  sliceData.set(scalarData.subarray(sliceStart, sliceEnd));
506
- pixelData.set(sliceData);
506
+ imageVoxelManager.scalarData = sliceData;
507
507
  for (let i = 0; i < sliceData.length; i++) {
508
508
  const value = sliceData[i];
509
509
  minValue = Math.min(minValue, value);
@@ -641,6 +641,7 @@ export default class VoxelManager {
641
641
  scalarData[index] = v;
642
642
  return isChanged;
643
643
  },
644
+ _getConstructor: () => scalarData.constructor,
644
645
  _id: '_createNumberVolumeVoxelManager',
645
646
  });
646
647
  voxels.scalarData = scalarData;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/core",
3
- "version": "2.5.3",
3
+ "version": "2.6.1",
4
4
  "description": "",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/esm/index.d.ts",
@@ -82,5 +82,5 @@
82
82
  "type": "individual",
83
83
  "url": "https://ohif.org/donate"
84
84
  },
85
- "gitHead": "f2996db78ea77e524dabd88d176177064a0f2ef3"
85
+ "gitHead": "35fc8b154edd7fe386392d58a93d7c8b48798e47"
86
86
  }