@cornerstonejs/core 3.7.7 → 3.7.9

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.
@@ -1215,8 +1215,8 @@ class StackViewport extends Viewport {
1215
1215
  scalingParams?.rescaleSlope % 1 !== 0;
1216
1216
  if (pixelData instanceof Float32Array && scaledWithNonIntegers) {
1217
1217
  const floatMinMax = {
1218
- min: image.maxPixelValue,
1219
- max: image.minPixelValue,
1218
+ min: image.minPixelValue,
1219
+ max: image.maxPixelValue,
1220
1220
  };
1221
1221
  const floatRange = Math.abs(floatMinMax.max - floatMinMax.min);
1222
1222
  const intRange = 65535;
@@ -1236,7 +1236,12 @@ class StackViewport extends Viewport {
1236
1236
  image.maxPixelValue = max;
1237
1237
  image.slope = slope;
1238
1238
  image.intercept = intercept;
1239
- image.getPixelData = () => intPixelData;
1239
+ if (image.voxelManager) {
1240
+ image.voxelManager.getScalarData = () => intPixelData;
1241
+ }
1242
+ else {
1243
+ image.getPixelData = () => intPixelData;
1244
+ }
1240
1245
  image.preScale = {
1241
1246
  ...image.preScale,
1242
1247
  scaled: false,
@@ -1364,6 +1369,10 @@ class StackViewport extends Viewport {
1364
1369
  return resultList;
1365
1370
  }
1366
1371
  _loadAndDisplayImageGPU(imageId, imageIdIndex) {
1372
+ if (!imageId) {
1373
+ console.warn('No image id set yet to load');
1374
+ return;
1375
+ }
1367
1376
  const eventDetail = {
1368
1377
  imageId,
1369
1378
  imageIdIndex,
@@ -1563,15 +1572,18 @@ class StackViewport extends Viewport {
1563
1572
  }
1564
1573
  scroll(delta, debounce = true, loop = false) {
1565
1574
  const imageIds = this.imageIds;
1575
+ if (isNaN(this.targetImageIdIndex)) {
1576
+ return;
1577
+ }
1566
1578
  const currentTargetImageIdIndex = this.targetImageIdIndex;
1567
1579
  const numberOfFrames = imageIds.length;
1568
1580
  let newTargetImageIdIndex = currentTargetImageIdIndex + delta;
1569
- newTargetImageIdIndex = Math.max(0, newTargetImageIdIndex);
1570
1581
  if (loop) {
1571
- newTargetImageIdIndex = newTargetImageIdIndex % numberOfFrames;
1582
+ newTargetImageIdIndex =
1583
+ (newTargetImageIdIndex + numberOfFrames) % numberOfFrames;
1572
1584
  }
1573
1585
  else {
1574
- newTargetImageIdIndex = Math.min(numberOfFrames - 1, newTargetImageIdIndex);
1586
+ newTargetImageIdIndex = Math.max(0, Math.min(numberOfFrames - 1, newTargetImageIdIndex));
1575
1587
  }
1576
1588
  this.targetImageIdIndex = newTargetImageIdIndex;
1577
1589
  const targetImageId = imageIds[newTargetImageIdIndex];
@@ -7,11 +7,11 @@ import getLut from './getLut';
7
7
  import doesImageNeedToBeRendered from './doesImageNeedToBeRendered';
8
8
  import initializeRenderCanvas from './initializeRenderCanvas';
9
9
  import saveLastRendered from './saveLastRendered';
10
+ import { createCanvas } from '../../getOrCreateCanvas';
10
11
  function getRenderCanvas(enabledElement, image, invalidated, useAlphaChannel = true) {
11
12
  const canvasWasColor = enabledElement.renderingTools.lastRenderedIsColor;
12
13
  if (!enabledElement.renderingTools.renderCanvas || canvasWasColor) {
13
- enabledElement.renderingTools.renderCanvas =
14
- document.createElement('canvas');
14
+ enabledElement.renderingTools.renderCanvas = createCanvas(null, image.width, image.height);
15
15
  initializeRenderCanvas(enabledElement, image);
16
16
  }
17
17
  const renderCanvas = enabledElement.renderingTools.renderCanvas;
@@ -1,3 +1,6 @@
1
1
  export declare const EPSILON = 0.0001;
2
+ export declare function createCanvas(element: Element | HTMLDivElement, width?: number, height?: number): HTMLCanvasElement;
2
3
  export declare function createViewportElement(element: HTMLDivElement): HTMLDivElement;
3
- export default function getOrCreateCanvas(element: HTMLDivElement): HTMLCanvasElement;
4
+ export declare function setCanvasCreator(canvasCreatorArg: any): void;
5
+ export declare function getOrCreateCanvas(element: HTMLDivElement): HTMLCanvasElement;
6
+ export default getOrCreateCanvas;
@@ -1,8 +1,14 @@
1
1
  const VIEWPORT_ELEMENT = 'viewport-element';
2
2
  const CANVAS_CSS_CLASS = 'cornerstone-canvas';
3
3
  export const EPSILON = 1e-4;
4
- function createCanvas(element) {
5
- const canvas = document.createElement('canvas');
4
+ let canvasCreator;
5
+ export function createCanvas(element, width = 512, height = 512) {
6
+ const canvas = canvasCreator
7
+ ? canvasCreator(width, height)
8
+ : document.createElement('canvas');
9
+ if (!element) {
10
+ return canvas;
11
+ }
6
12
  canvas.style.position = 'absolute';
7
13
  canvas.style.width = '100%';
8
14
  canvas.style.height = '100%';
@@ -21,7 +27,10 @@ export function createViewportElement(element) {
21
27
  element.appendChild(div);
22
28
  return div;
23
29
  }
24
- export default function getOrCreateCanvas(element) {
30
+ export function setCanvasCreator(canvasCreatorArg) {
31
+ canvasCreator = canvasCreatorArg;
32
+ }
33
+ export function getOrCreateCanvas(element) {
25
34
  const canvasSelector = `canvas.${CANVAS_CSS_CLASS}`;
26
35
  const viewportElement = `div.${VIEWPORT_ELEMENT}`;
27
36
  const internalDiv = element.querySelector(viewportElement) || createViewportElement(element);
@@ -38,3 +47,4 @@ export default function getOrCreateCanvas(element) {
38
47
  canvas.height = height;
39
48
  return canvas;
40
49
  }
50
+ export default getOrCreateCanvas;
@@ -1,8 +1,8 @@
1
1
  import createVolumeActor from './createVolumeActor';
2
2
  import createVolumeMapper from './createVolumeMapper';
3
- import getOrCreateCanvas from './getOrCreateCanvas';
3
+ export * from './getOrCreateCanvas';
4
4
  import setVolumesForViewports from './setVolumesForViewports';
5
5
  import addVolumesToViewports from './addVolumesToViewports';
6
6
  import volumeNewImageEventDispatcher from './volumeNewImageEventDispatcher';
7
7
  import addImageSlicesToViewports from './addImageSlicesToViewports';
8
- export { createVolumeActor, createVolumeMapper, getOrCreateCanvas, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, volumeNewImageEventDispatcher, };
8
+ export { createVolumeActor, createVolumeMapper, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, volumeNewImageEventDispatcher, };
@@ -1,8 +1,8 @@
1
1
  import createVolumeActor from './createVolumeActor';
2
2
  import createVolumeMapper from './createVolumeMapper';
3
- import getOrCreateCanvas from './getOrCreateCanvas';
3
+ export * from './getOrCreateCanvas';
4
4
  import setVolumesForViewports from './setVolumesForViewports';
5
5
  import addVolumesToViewports from './addVolumesToViewports';
6
6
  import volumeNewImageEventDispatcher from './volumeNewImageEventDispatcher';
7
7
  import addImageSlicesToViewports from './addImageSlicesToViewports';
8
- export { createVolumeActor, createVolumeMapper, getOrCreateCanvas, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, volumeNewImageEventDispatcher, };
8
+ export { createVolumeActor, createVolumeMapper, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, volumeNewImageEventDispatcher, };
@@ -3,6 +3,6 @@ import getRenderingEngine from './getRenderingEngine';
3
3
  import VolumeViewport from './VolumeViewport';
4
4
  import StackViewport from './StackViewport';
5
5
  import VolumeViewport3D from './VolumeViewport3D';
6
- import { createVolumeActor, createVolumeMapper, getOrCreateCanvas } from './helpers';
7
- export { getRenderingEngine, RenderingEngine, VolumeViewport, VolumeViewport3D, createVolumeActor, createVolumeMapper, getOrCreateCanvas, StackViewport, };
6
+ export * from './helpers';
7
+ export { getRenderingEngine, RenderingEngine, VolumeViewport, VolumeViewport3D, StackViewport, };
8
8
  export default RenderingEngine;
@@ -3,6 +3,6 @@ import getRenderingEngine from './getRenderingEngine';
3
3
  import VolumeViewport from './VolumeViewport';
4
4
  import StackViewport from './StackViewport';
5
5
  import VolumeViewport3D from './VolumeViewport3D';
6
- import { createVolumeActor, createVolumeMapper, getOrCreateCanvas, } from './helpers';
7
- export { getRenderingEngine, RenderingEngine, VolumeViewport, VolumeViewport3D, createVolumeActor, createVolumeMapper, getOrCreateCanvas, StackViewport, };
6
+ export * from './helpers';
7
+ export { getRenderingEngine, RenderingEngine, VolumeViewport, VolumeViewport3D, StackViewport, };
8
8
  export default RenderingEngine;
@@ -4,7 +4,7 @@ import { Events } from './enums';
4
4
  import RenderingEngine from './RenderingEngine';
5
5
  import createVolumeActor from './RenderingEngine/helpers/createVolumeActor';
6
6
  import createVolumeMapper, { convertMapperToNotSharedMapper } from './RenderingEngine/helpers/createVolumeMapper';
7
- import getOrCreateCanvas from './RenderingEngine/helpers/getOrCreateCanvas';
7
+ export * from './RenderingEngine/helpers/getOrCreateCanvas';
8
8
  import VolumeViewport from './RenderingEngine/VolumeViewport';
9
9
  import VolumeViewport3D from './RenderingEngine/VolumeViewport3D';
10
10
  import BaseVolumeViewport from './RenderingEngine/BaseVolumeViewport';
@@ -35,4 +35,4 @@ import { cornerstoneStreamingImageVolumeLoader } from './loaders/cornerstoneStre
35
35
  import { cornerstoneStreamingDynamicImageVolumeLoader } from './loaders/cornerstoneStreamingDynamicImageVolumeLoader';
36
36
  import { setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports } from './RenderingEngine/helpers';
37
37
  export type { Types, IRetrieveConfiguration, RetrieveOptions, RetrieveStage, ImageLoadListener, IImagesLoader, };
38
- export { init, isCornerstoneInitialized, peerImport, resetInitialization, getConfiguration, setConfiguration, getWebWorkerManager, canRenderFloatTextures, Enums, CONSTANTS, Events as EVENTS, Settings, BaseVolumeViewport, VolumeViewport, VolumeViewport3D, Viewport, StackViewport, VideoViewport, WSIViewport, RenderingEngine, ImageVolume, Surface, getRenderingEngine, getRenderingEngines, getEnabledElement, getEnabledElementByIds, getEnabledElements, getEnabledElementByViewportId, createVolumeActor, getOrCreateCanvas, createVolumeMapper, cache, eventTarget, triggerEvent, imageLoader, registerImageLoader, volumeLoader, metaData, utilities, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, imageLoadPoolManager as requestPoolManager, imageRetrievalPoolManager, imageLoadPoolManager, getShouldUseCPURendering, setUseCPURendering, setPreferSizeOverAccuracy, resetUseCPURendering, geometryLoader, ProgressiveRetrieveImages, cornerstoneStreamingImageVolumeLoader, cornerstoneStreamingDynamicImageVolumeLoader, StreamingDynamicImageVolume, StreamingImageVolume, convertMapperToNotSharedMapper, };
38
+ export { init, isCornerstoneInitialized, peerImport, resetInitialization, getConfiguration, setConfiguration, getWebWorkerManager, canRenderFloatTextures, Enums, CONSTANTS, Events as EVENTS, Settings, BaseVolumeViewport, VolumeViewport, VolumeViewport3D, Viewport, StackViewport, VideoViewport, WSIViewport, RenderingEngine, ImageVolume, Surface, getRenderingEngine, getRenderingEngines, getEnabledElement, getEnabledElementByIds, getEnabledElements, getEnabledElementByViewportId, createVolumeActor, createVolumeMapper, cache, eventTarget, triggerEvent, imageLoader, registerImageLoader, volumeLoader, metaData, utilities, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, imageLoadPoolManager as requestPoolManager, imageRetrievalPoolManager, imageLoadPoolManager, getShouldUseCPURendering, setUseCPURendering, setPreferSizeOverAccuracy, resetUseCPURendering, geometryLoader, ProgressiveRetrieveImages, cornerstoneStreamingImageVolumeLoader, cornerstoneStreamingDynamicImageVolumeLoader, StreamingDynamicImageVolume, StreamingImageVolume, convertMapperToNotSharedMapper, };
package/dist/esm/index.js CHANGED
@@ -4,7 +4,7 @@ import { Events } from './enums';
4
4
  import RenderingEngine from './RenderingEngine';
5
5
  import createVolumeActor from './RenderingEngine/helpers/createVolumeActor';
6
6
  import createVolumeMapper, { convertMapperToNotSharedMapper, } from './RenderingEngine/helpers/createVolumeMapper';
7
- import getOrCreateCanvas from './RenderingEngine/helpers/getOrCreateCanvas';
7
+ export * from './RenderingEngine/helpers/getOrCreateCanvas';
8
8
  import VolumeViewport from './RenderingEngine/VolumeViewport';
9
9
  import VolumeViewport3D from './RenderingEngine/VolumeViewport3D';
10
10
  import BaseVolumeViewport from './RenderingEngine/BaseVolumeViewport';
@@ -32,4 +32,4 @@ import triggerEvent from './utilities/triggerEvent';
32
32
  import { cornerstoneStreamingImageVolumeLoader } from './loaders/cornerstoneStreamingImageVolumeLoader';
33
33
  import { cornerstoneStreamingDynamicImageVolumeLoader } from './loaders/cornerstoneStreamingDynamicImageVolumeLoader';
34
34
  import { setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, } from './RenderingEngine/helpers';
35
- export { init, isCornerstoneInitialized, peerImport, resetInitialization, getConfiguration, setConfiguration, getWebWorkerManager, canRenderFloatTextures, Enums, CONSTANTS, Events as EVENTS, Settings, BaseVolumeViewport, VolumeViewport, VolumeViewport3D, Viewport, StackViewport, VideoViewport, WSIViewport, RenderingEngine, ImageVolume, Surface, getRenderingEngine, getRenderingEngines, getEnabledElement, getEnabledElementByIds, getEnabledElements, getEnabledElementByViewportId, createVolumeActor, getOrCreateCanvas, createVolumeMapper, cache, eventTarget, triggerEvent, imageLoader, registerImageLoader, volumeLoader, metaData, utilities, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, imageLoadPoolManager as requestPoolManager, imageRetrievalPoolManager, imageLoadPoolManager, getShouldUseCPURendering, setUseCPURendering, setPreferSizeOverAccuracy, resetUseCPURendering, geometryLoader, ProgressiveRetrieveImages, cornerstoneStreamingImageVolumeLoader, cornerstoneStreamingDynamicImageVolumeLoader, StreamingDynamicImageVolume, StreamingImageVolume, convertMapperToNotSharedMapper, };
35
+ export { init, isCornerstoneInitialized, peerImport, resetInitialization, getConfiguration, setConfiguration, getWebWorkerManager, canRenderFloatTextures, Enums, CONSTANTS, Events as EVENTS, Settings, BaseVolumeViewport, VolumeViewport, VolumeViewport3D, Viewport, StackViewport, VideoViewport, WSIViewport, RenderingEngine, ImageVolume, Surface, getRenderingEngine, getRenderingEngines, getEnabledElement, getEnabledElementByIds, getEnabledElements, getEnabledElementByViewportId, createVolumeActor, createVolumeMapper, cache, eventTarget, triggerEvent, imageLoader, registerImageLoader, volumeLoader, metaData, utilities, setVolumesForViewports, addVolumesToViewports, addImageSlicesToViewports, imageLoadPoolManager as requestPoolManager, imageRetrievalPoolManager, imageLoadPoolManager, getShouldUseCPURendering, setUseCPURendering, setPreferSizeOverAccuracy, resetUseCPURendering, geometryLoader, ProgressiveRetrieveImages, cornerstoneStreamingImageVolumeLoader, cornerstoneStreamingDynamicImageVolumeLoader, StreamingDynamicImageVolume, StreamingImageVolume, convertMapperToNotSharedMapper, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/core",
3
- "version": "3.7.7",
3
+ "version": "3.7.9",
4
4
  "description": "Cornerstone3D Core",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/esm/index.d.ts",
@@ -12,38 +12,47 @@
12
12
  "exports": {
13
13
  ".": {
14
14
  "import": "./dist/esm/index.js",
15
+ "node": "./dist/esm/index.js",
15
16
  "types": "./dist/esm/index.d.ts"
16
17
  },
17
18
  "./utilities": {
18
19
  "import": "./dist/esm/utilities/index.js",
20
+ "node": "./dist/esm/utilities/index.js",
19
21
  "types": "./dist/esm/utilities/index.d.ts"
20
22
  },
21
23
  "./utilities/*": {
22
24
  "import": "./dist/esm/utilities/*.js",
25
+ "node": "./dist/esm/utilities/*.js",
23
26
  "types": "./dist/esm/utilities/*.d.ts"
24
27
  },
25
28
  "./constants": {
26
29
  "import": "./dist/esm/constants/index.js",
30
+ "node": "./dist/esm/constants/index.js",
27
31
  "types": "./dist/esm/constants/index.d.ts"
28
32
  },
29
33
  "./constants/*": {
30
34
  "import": "./dist/esm/constants/*.js",
35
+ "node": "./dist/esm/constants/*.js",
31
36
  "types": "./dist/esm/constants/*.d.ts"
32
37
  },
33
38
  "./enums": {
34
39
  "import": "./dist/esm/enums/index.js",
40
+ "node": "./dist/esm/enums/index.js",
35
41
  "types": "./dist/esm/enums/index.d.ts"
36
42
  },
37
43
  "./enums/*": {
38
44
  "import": "./dist/esm/enums/*.js",
45
+ "node": "./dist/esm/enums/*.js",
39
46
  "types": "./dist/esm/enums/*.d.ts"
40
47
  },
41
48
  "./loaders": {
42
49
  "import": "./dist/esm/loaders/index.js",
50
+ "node": "./dist/esm/loaders/index.js",
43
51
  "types": "./dist/esm/loaders/index.d.ts"
44
52
  },
45
53
  "./loaders/*": {
46
54
  "import": "./dist/esm/loaders/*.js",
55
+ "node": "./dist/esm/loaders/*.js",
47
56
  "types": "./dist/esm/loaders/*.d.ts"
48
57
  },
49
58
  "./types": {
@@ -82,5 +91,5 @@
82
91
  "type": "individual",
83
92
  "url": "https://ohif.org/donate"
84
93
  },
85
- "gitHead": "7ed61217915130914035998986ae22e05af1a4ea"
94
+ "gitHead": "a2831484438d0995178cd9682218dfd8f4a51b4e"
86
95
  }