@cornerstonejs/core 0.44.3 → 0.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/RenderingEngine/RenderingEngine.js +6 -2
- package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
- package/dist/cjs/RenderingEngine/StackViewport.d.ts +2 -0
- package/dist/cjs/RenderingEngine/StackViewport.js +22 -8
- package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/renderingEngineCache.js +11 -0
- package/dist/cjs/RenderingEngine/renderingEngineCache.js.map +1 -1
- package/dist/cjs/types/RGB.d.ts +2 -0
- package/dist/cjs/types/RGB.js +3 -0
- package/dist/cjs/types/RGB.js.map +1 -0
- package/dist/cjs/types/ViewportInputOptions.d.ts +2 -1
- package/dist/cjs/types/index.d.ts +2 -1
- package/dist/cjs/utilities/index.d.ts +3 -2
- package/dist/cjs/utilities/index.js +5 -3
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/loadImageToCanvas.d.ts +10 -1
- package/dist/cjs/utilities/loadImageToCanvas.js +9 -5
- package/dist/cjs/utilities/loadImageToCanvas.js.map +1 -1
- package/dist/cjs/utilities/renderToCanvasCPU.d.ts +2 -0
- package/dist/cjs/utilities/{renderToCanvas.js → renderToCanvasCPU.js} +7 -4
- package/dist/cjs/utilities/renderToCanvasCPU.js.map +1 -0
- package/dist/cjs/utilities/renderToCanvasGPU.d.ts +2 -0
- package/dist/cjs/utilities/renderToCanvasGPU.js +77 -0
- package/dist/cjs/utilities/renderToCanvasGPU.js.map +1 -0
- package/dist/esm/RenderingEngine/RenderingEngine.js +6 -2
- package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
- package/dist/esm/RenderingEngine/StackViewport.d.ts +2 -0
- package/dist/esm/RenderingEngine/StackViewport.js +20 -6
- package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/renderingEngineCache.js +11 -0
- package/dist/esm/RenderingEngine/renderingEngineCache.js.map +1 -1
- package/dist/esm/types/RGB.d.ts +2 -0
- package/dist/esm/types/RGB.js +2 -0
- package/dist/esm/types/RGB.js.map +1 -0
- package/dist/esm/types/ViewportInputOptions.d.ts +2 -1
- package/dist/esm/types/index.d.ts +2 -1
- package/dist/esm/utilities/index.d.ts +3 -2
- package/dist/esm/utilities/index.js +3 -2
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/loadImageToCanvas.d.ts +10 -1
- package/dist/esm/utilities/loadImageToCanvas.js +9 -5
- package/dist/esm/utilities/loadImageToCanvas.js.map +1 -1
- package/dist/esm/utilities/renderToCanvasCPU.d.ts +2 -0
- package/dist/esm/utilities/{renderToCanvas.js → renderToCanvasCPU.js} +6 -3
- package/dist/esm/utilities/renderToCanvasCPU.js.map +1 -0
- package/dist/esm/utilities/renderToCanvasGPU.d.ts +2 -0
- package/dist/esm/utilities/renderToCanvasGPU.js +71 -0
- package/dist/esm/utilities/renderToCanvasGPU.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
- package/src/RenderingEngine/RenderingEngine.ts +10 -6
- package/src/RenderingEngine/StackViewport.ts +42 -7
- package/src/RenderingEngine/renderingEngineCache.ts +15 -0
- package/src/types/RGB.ts +6 -0
- package/src/types/ViewportInputOptions.ts +3 -1
- package/src/types/index.ts +3 -0
- package/src/utilities/index.ts +4 -2
- package/src/utilities/loadImageToCanvas.ts +33 -11
- package/src/utilities/{renderToCanvas.ts → renderToCanvasCPU.ts} +8 -4
- package/src/utilities/renderToCanvasGPU.ts +130 -0
- package/dist/cjs/utilities/renderToCanvas.d.ts +0 -2
- package/dist/cjs/utilities/renderToCanvas.js.map +0 -1
- package/dist/esm/utilities/renderToCanvas.d.ts +0 -2
- package/dist/esm/utilities/renderToCanvas.js.map +0 -1
|
@@ -13,6 +13,17 @@ const renderingEngineCache = {
|
|
|
13
13
|
getAll: () => {
|
|
14
14
|
const renderingEngineIds = Object.keys(cache);
|
|
15
15
|
const renderingEngines = renderingEngineIds.map((id) => cache[id]);
|
|
16
|
+
renderingEngines.sort((a, b) => {
|
|
17
|
+
if (a.id[0] === '_' && b.id[0] !== '_') {
|
|
18
|
+
return 1;
|
|
19
|
+
}
|
|
20
|
+
else if (a.id[0] !== '_' && b.id[0] === '_') {
|
|
21
|
+
return -1;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
16
27
|
return renderingEngines;
|
|
17
28
|
},
|
|
18
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderingEngineCache.js","sourceRoot":"","sources":["../../../src/RenderingEngine/renderingEngineCache.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG,EAAE,CAAC;AAEjB,MAAM,oBAAoB,GAAG;IAO3B,GAAG,EAAE,CAAC,EAAU,EAAoB,EAAE;QACpC,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAMD,GAAG,EAAE,CAAC,EAAoB,EAAQ,EAAE;QAClC,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC;QAEhC,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAOD,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE;QACrB,OAAO,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,GAA4B,EAAE;QACpC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"renderingEngineCache.js","sourceRoot":"","sources":["../../../src/RenderingEngine/renderingEngineCache.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG,EAAE,CAAC;AAEjB,MAAM,oBAAoB,GAAG;IAO3B,GAAG,EAAE,CAAC,EAAU,EAAoB,EAAE;QACpC,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAMD,GAAG,EAAE,CAAC,EAAoB,EAAQ,EAAE;QAClC,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC;QAEhC,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAOD,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE;QACrB,OAAO,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,GAA4B,EAAE;QACpC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAOnE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACtC,OAAO,CAAC,CAAC;aACV;iBAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAC7C,OAAO,CAAC,CAAC,CAAC;aACX;iBAAM;gBACL,OAAO,CAAC,CAAC;aACV;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RGB.js","sourceRoot":"","sources":["../../../src/types/RGB.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { OrientationAxis } from '../enums';
|
|
2
2
|
import OrientationVectors from './OrientationVectors';
|
|
3
3
|
import DisplayArea from './displayArea';
|
|
4
|
+
import RGB from './RGB';
|
|
4
5
|
declare type ViewportInputOptions = {
|
|
5
|
-
background?:
|
|
6
|
+
background?: RGB;
|
|
6
7
|
orientation?: OrientationAxis | OrientationVectors;
|
|
7
8
|
displayArea?: DisplayArea;
|
|
8
9
|
suppressEvents?: boolean;
|
|
@@ -59,4 +59,5 @@ import type { PublicContourSetData, ContourSetData, ContourData } from './Contou
|
|
|
59
59
|
import type ICachedGeometry from './ICachedGeometry';
|
|
60
60
|
import type { IContourSet } from './IContourSet';
|
|
61
61
|
import type { IContour } from './IContour';
|
|
62
|
-
|
|
62
|
+
import type RGB from './RGB';
|
|
63
|
+
export type { Cornerstone3DConfig, ICamera, IStackViewport, IVolumeViewport, IEnabledElement, ICache, IVolume, VolumeScalarData, IViewportId, IImageVolume, IDynamicImageVolume, IRenderingEngine, ScalingParameters, PTScaling, Scaling, IStreamingImageVolume, IImage, IImageData, CPUIImageData, CPUImageData, EventTypes, ImageLoaderFn, VolumeLoaderFn, IRegisterImageLoader, IStreamingVolumeProperties, IViewport, StackViewportProperties, VolumeViewportProperties, PublicViewportInput, VolumeActor, Actor, ActorEntry, IImageLoadObject, IVolumeLoadObject, IVolumeInput, VolumeInputCallback, ViewportPreset, Metadata, OrientationVectors, Point2, Point3, Point4, Mat3, Plane, ViewportInputOptions, VOIRange, VOI, DisplayArea, FlipDirection, ICachedImage, ICachedVolume, CPUFallbackEnabledElement, CPUFallbackViewport, CPUFallbackTransform, CPUFallbackColormapData, CPUFallbackViewportDisplayedArea, CPUFallbackColormapsData, CPUFallbackColormap, TransformMatrix2D, CPUFallbackLookupTable, CPUFallbackLUT, CPUFallbackRenderingTools, CustomEventType, ActorSliceRange, ImageSliceData, IGeometry, IGeometryLoadObject, ICachedGeometry, PublicContourSetData, ContourSetData, ContourData, IContourSet, IContour, RGB, };
|
|
@@ -24,7 +24,8 @@ import getVolumeViewportsContainingSameVolumes from './getVolumeViewportsContain
|
|
|
24
24
|
import getViewportsWithVolumeId from './getViewportsWithVolumeId';
|
|
25
25
|
import transformWorldToIndex from './transformWorldToIndex';
|
|
26
26
|
import loadImageToCanvas from './loadImageToCanvas';
|
|
27
|
-
import
|
|
27
|
+
import renderToCanvasCPU from './renderToCanvasCPU';
|
|
28
|
+
import renderToCanvasGPU from './renderToCanvasGPU';
|
|
28
29
|
import worldToImageCoords from './worldToImageCoords';
|
|
29
30
|
import imageToWorldCoords from './imageToWorldCoords';
|
|
30
31
|
import getVolumeSliceRangeInfo from './getVolumeSliceRangeInfo';
|
|
@@ -45,4 +46,4 @@ import getScalingParameters from './getScalingParameters';
|
|
|
45
46
|
import getScalarDataType from './getScalarDataType';
|
|
46
47
|
import * as planar from './planar';
|
|
47
48
|
import * as windowLevel from './windowLevel';
|
|
48
|
-
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas,
|
|
49
|
+
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, getScalingParameters, getScalarDataType, };
|
|
@@ -24,7 +24,8 @@ import getVolumeViewportsContainingSameVolumes from './getVolumeViewportsContain
|
|
|
24
24
|
import getViewportsWithVolumeId from './getViewportsWithVolumeId';
|
|
25
25
|
import transformWorldToIndex from './transformWorldToIndex';
|
|
26
26
|
import loadImageToCanvas from './loadImageToCanvas';
|
|
27
|
-
import
|
|
27
|
+
import renderToCanvasCPU from './renderToCanvasCPU';
|
|
28
|
+
import renderToCanvasGPU from './renderToCanvasGPU';
|
|
28
29
|
import worldToImageCoords from './worldToImageCoords';
|
|
29
30
|
import imageToWorldCoords from './imageToWorldCoords';
|
|
30
31
|
import getVolumeSliceRangeInfo from './getVolumeSliceRangeInfo';
|
|
@@ -45,5 +46,5 @@ import getScalingParameters from './getScalingParameters';
|
|
|
45
46
|
import getScalarDataType from './getScalarDataType';
|
|
46
47
|
import * as planar from './planar';
|
|
47
48
|
import * as windowLevel from './windowLevel';
|
|
48
|
-
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas,
|
|
49
|
+
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, getScalingParameters, getScalarDataType, };
|
|
49
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uCAAuC,MAAM,2CAA2C,CAAC;AAChG,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
import { RequestType } from '../enums';
|
|
2
|
-
|
|
2
|
+
interface LoadImageOptions {
|
|
3
|
+
canvas: HTMLCanvasElement;
|
|
4
|
+
imageId: string;
|
|
5
|
+
requestType?: RequestType;
|
|
6
|
+
priority?: number;
|
|
7
|
+
renderingEngineId?: string;
|
|
8
|
+
useCPURendering?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export default function loadImageToCanvas(options: LoadImageOptions): Promise<string>;
|
|
11
|
+
export {};
|
|
@@ -2,15 +2,19 @@ import { loadAndCacheImage } from '../loaders/imageLoader';
|
|
|
2
2
|
import * as metaData from '../metaData';
|
|
3
3
|
import { RequestType } from '../enums';
|
|
4
4
|
import imageLoadPoolManager from '../requestPool/imageLoadPoolManager';
|
|
5
|
-
import
|
|
5
|
+
import renderToCanvasGPU from './renderToCanvasGPU';
|
|
6
|
+
import renderToCanvasCPU from './renderToCanvasCPU';
|
|
6
7
|
import { getConfiguration } from '../init';
|
|
7
|
-
export default function loadImageToCanvas(
|
|
8
|
+
export default function loadImageToCanvas(options) {
|
|
9
|
+
const { canvas, imageId, requestType = RequestType.Thumbnail, priority = -5, renderingEngineId = '_thumbnails', useCPURendering = false, } = options;
|
|
10
|
+
const renderFn = useCPURendering ? renderToCanvasCPU : renderToCanvasGPU;
|
|
8
11
|
return new Promise((resolve, reject) => {
|
|
9
12
|
function successCallback(image, imageId) {
|
|
10
13
|
const { modality } = metaData.get('generalSeriesModule', imageId) || {};
|
|
11
14
|
image.isPreScaled = image.isPreScaled || image.preScale?.scaled;
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
renderFn(canvas, image, modality, renderingEngineId).then(() => {
|
|
16
|
+
resolve(imageId);
|
|
17
|
+
});
|
|
14
18
|
}
|
|
15
19
|
function errorCallback(error, imageId) {
|
|
16
20
|
console.error(error, imageId);
|
|
@@ -28,10 +32,10 @@ export default function loadImageToCanvas(canvas, imageId, requestType = Request
|
|
|
28
32
|
targetBuffer: {
|
|
29
33
|
type: useNorm16Texture ? undefined : 'Float32Array',
|
|
30
34
|
},
|
|
31
|
-
useRGBA: true,
|
|
32
35
|
preScale: {
|
|
33
36
|
enabled: true,
|
|
34
37
|
},
|
|
38
|
+
useRGBA: !!useCPURendering,
|
|
35
39
|
requestType,
|
|
36
40
|
};
|
|
37
41
|
imageLoadPoolManager.addRequest(sendRequest.bind(null, imageId, null, options), requestType, { imageId }, priority);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadImageToCanvas.js","sourceRoot":"","sources":["../../../src/utilities/loadImageToCanvas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AACvE,OAAO,
|
|
1
|
+
{"version":3,"file":"loadImageToCanvas.js","sourceRoot":"","sources":["../../../src/utilities/loadImageToCanvas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AACvE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AA+B3C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,OAAyB;IAEzB,MAAM,EACJ,MAAM,EACN,OAAO,EACP,WAAW,GAAG,WAAW,CAAC,SAAS,EACnC,QAAQ,GAAG,CAAC,CAAC,EACb,iBAAiB,GAAG,aAAa,EACjC,eAAe,GAAG,KAAK,GACxB,GAAG,OAAO,CAAC;IAEZ,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,SAAS,eAAe,CAAC,KAAa,EAAE,OAAe;YACrD,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAExE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;YAEhE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7D,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,SAAS,aAAa,CAAC,KAAY,EAAE,OAAe;YAClD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;QAED,SAAS,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO;YACjD,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAC7C,CAAC,KAAK,EAAE,EAAE;gBACR,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC,CACF,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAI1D,MAAM,OAAO,GAAG;YACd,YAAY,EAAE;gBACZ,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;aACpD;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,IAAI;aACd;YACD,OAAO,EAAE,CAAC,CAAC,eAAe;YAC1B,WAAW;SACZ,CAAC;QAEF,oBAAoB,CAAC,UAAU,CAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAC9C,WAAW,EACX,EAAE,OAAO,EAAE,EACX,QAAQ,CACT,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import getDefaultViewport from '../RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport';
|
|
2
2
|
import calculateTransform from '../RenderingEngine/helpers/cpuFallback/rendering/calculateTransform';
|
|
3
3
|
import drawImageSync from '../RenderingEngine/helpers/cpuFallback/drawImageSync';
|
|
4
|
-
export default function
|
|
4
|
+
export default function renderToCanvasCPU(canvas, image, modality, renderingEngineId) {
|
|
5
5
|
const viewport = getDefaultViewport(canvas, image, modality);
|
|
6
6
|
const enabledElement = {
|
|
7
7
|
canvas,
|
|
@@ -11,6 +11,9 @@ export default function renderToCanvas(canvas, image, modality) {
|
|
|
11
11
|
};
|
|
12
12
|
enabledElement.transform = calculateTransform(enabledElement);
|
|
13
13
|
const invalidated = true;
|
|
14
|
-
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
drawImageSync(enabledElement, invalidated);
|
|
16
|
+
resolve(image.imageId);
|
|
17
|
+
});
|
|
15
18
|
}
|
|
16
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=renderToCanvasCPU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderToCanvasCPU.js","sourceRoot":"","sources":["../../../src/utilities/renderToCanvasCPU.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,qEAAqE,CAAC;AACrG,OAAO,kBAAkB,MAAM,qEAAqE,CAAC;AACrG,OAAO,aAAa,MAAM,sDAAsD,CAAC;AASjF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,MAAyB,EACzB,KAAa,EACb,QAAiB,EACjB,iBAA0B;IAE1B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE7D,MAAM,cAAc,GAA8B;QAChD,MAAM;QACN,QAAQ;QACR,KAAK;QACL,cAAc,EAAE,EAAE;KACnB,CAAC;IAEF,cAAc,CAAC,SAAS,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,aAAa,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import getOrCreateCanvas from '../RenderingEngine/helpers/getOrCreateCanvas';
|
|
2
|
+
import { ViewportType, Events } from '../enums';
|
|
3
|
+
import { getRenderingEngine } from '../RenderingEngine/getRenderingEngine';
|
|
4
|
+
import RenderingEngine from '../RenderingEngine';
|
|
5
|
+
export default function renderToCanvasGPU(canvas, image, modality = undefined, renderingEngineId = '_thumbnails') {
|
|
6
|
+
if (!canvas || !(canvas instanceof HTMLCanvasElement)) {
|
|
7
|
+
throw new Error('canvas element is required');
|
|
8
|
+
}
|
|
9
|
+
const imageIdToPrint = image.imageId;
|
|
10
|
+
const viewportId = `renderGPUViewport-${imageIdToPrint}`;
|
|
11
|
+
const imageId = image.imageId;
|
|
12
|
+
const element = document.createElement('div');
|
|
13
|
+
element.style.width = `${canvas.width}px`;
|
|
14
|
+
element.style.height = `${canvas.height}px`;
|
|
15
|
+
element.style.visibility = 'hidden';
|
|
16
|
+
element.style.position = 'absolute';
|
|
17
|
+
document.body.appendChild(element);
|
|
18
|
+
const uniqueId = viewportId.split(':').join('-');
|
|
19
|
+
element.setAttribute('viewport-id-for-remove', uniqueId);
|
|
20
|
+
const renderingEngine = getRenderingEngine(renderingEngineId) ||
|
|
21
|
+
new RenderingEngine(renderingEngineId);
|
|
22
|
+
let viewport = renderingEngine.getViewport(viewportId);
|
|
23
|
+
if (!viewport) {
|
|
24
|
+
const stackViewportInput = {
|
|
25
|
+
viewportId,
|
|
26
|
+
type: ViewportType.STACK,
|
|
27
|
+
element,
|
|
28
|
+
defaultOptions: {
|
|
29
|
+
suppressEvents: true,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
renderingEngine.enableElement(stackViewportInput);
|
|
33
|
+
viewport = renderingEngine.getViewport(viewportId);
|
|
34
|
+
}
|
|
35
|
+
return new Promise((resolve) => {
|
|
36
|
+
let elementRendered = false;
|
|
37
|
+
const onImageRendered = (eventDetail) => {
|
|
38
|
+
if (elementRendered) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const temporaryCanvas = getOrCreateCanvas(element);
|
|
42
|
+
const context = canvas.getContext('2d');
|
|
43
|
+
context.drawImage(temporaryCanvas, 0, 0);
|
|
44
|
+
elementRendered = true;
|
|
45
|
+
element.removeEventListener(Events.IMAGE_RENDERED, onImageRendered);
|
|
46
|
+
setTimeout(() => {
|
|
47
|
+
renderingEngine.disableElement(viewportId);
|
|
48
|
+
const elements = document.querySelectorAll(`[viewport-id-for-remove="${uniqueId}"]`);
|
|
49
|
+
elements.forEach((element) => {
|
|
50
|
+
element.remove();
|
|
51
|
+
});
|
|
52
|
+
}, 0);
|
|
53
|
+
resolve(imageId);
|
|
54
|
+
};
|
|
55
|
+
element.addEventListener(Events.IMAGE_RENDERED, onImageRendered);
|
|
56
|
+
viewport.renderImageObject(image);
|
|
57
|
+
if (modality === 'PT' && !_isPTImagePreScaledWithSUV(image)) {
|
|
58
|
+
viewport.setProperties({
|
|
59
|
+
voiRange: {
|
|
60
|
+
lower: image.minPixelValue,
|
|
61
|
+
upper: image.maxPixelValue,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
viewport.render();
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const _isPTImagePreScaledWithSUV = (image) => {
|
|
69
|
+
return image.preScale.scaled && image.preScale.scalingParameters.suvbw;
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=renderToCanvasGPU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderToCanvasGPU.js","sourceRoot":"","sources":["../../../src/utilities/renderToCanvasGPU.ts"],"names":[],"mappings":"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"}
|