@cornerstonejs/core 1.25.0 → 1.26.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.
Files changed (98) hide show
  1. package/dist/cjs/RenderingEngine/BaseVolumeViewport.d.ts +1 -1
  2. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  3. package/dist/cjs/RenderingEngine/RenderingEngine.d.ts +5 -2
  4. package/dist/cjs/RenderingEngine/RenderingEngine.js +13 -5
  5. package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
  6. package/dist/cjs/RenderingEngine/VideoViewport.d.ts +51 -0
  7. package/dist/cjs/RenderingEngine/VideoViewport.js +355 -0
  8. package/dist/cjs/RenderingEngine/VideoViewport.js.map +1 -0
  9. package/dist/cjs/RenderingEngine/VolumeViewport.js +6 -0
  10. package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
  11. package/dist/cjs/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +2 -0
  12. package/dist/cjs/RenderingEngine/helpers/viewportTypeToViewportClass.js +2 -0
  13. package/dist/cjs/RenderingEngine/helpers/viewportTypeToViewportClass.js.map +1 -1
  14. package/dist/cjs/enums/VideoViewport.d.ts +5 -0
  15. package/dist/cjs/enums/VideoViewport.js +10 -0
  16. package/dist/cjs/enums/VideoViewport.js.map +1 -0
  17. package/dist/cjs/enums/ViewportType.d.ts +2 -1
  18. package/dist/cjs/enums/ViewportType.js +1 -0
  19. package/dist/cjs/enums/ViewportType.js.map +1 -1
  20. package/dist/cjs/enums/index.d.ts +2 -1
  21. package/dist/cjs/enums/index.js +26 -1
  22. package/dist/cjs/enums/index.js.map +1 -1
  23. package/dist/cjs/getEnabledElement.js.map +1 -1
  24. package/dist/cjs/index.d.ts +2 -1
  25. package/dist/cjs/index.js +3 -1
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/types/IRenderingEngine.d.ts +5 -2
  28. package/dist/cjs/types/IVideoViewport.d.ts +12 -0
  29. package/dist/cjs/types/IVideoViewport.js +3 -0
  30. package/dist/cjs/types/IVideoViewport.js.map +1 -0
  31. package/dist/cjs/types/VideoViewportProperties.d.ts +10 -0
  32. package/dist/cjs/types/VideoViewportProperties.js +3 -0
  33. package/dist/cjs/types/VideoViewportProperties.js.map +1 -0
  34. package/dist/cjs/types/VideoViewportTypes.d.ts +18 -0
  35. package/dist/cjs/types/VideoViewportTypes.js +3 -0
  36. package/dist/cjs/types/VideoViewportTypes.js.map +1 -0
  37. package/dist/cjs/types/index.d.ts +4 -1
  38. package/dist/cjs/utilities/getTargetVolumeAndSpacingInNormalDir.js +10 -2
  39. package/dist/cjs/utilities/getTargetVolumeAndSpacingInNormalDir.js.map +1 -1
  40. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +1 -1
  41. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  42. package/dist/esm/RenderingEngine/RenderingEngine.d.ts +5 -2
  43. package/dist/esm/RenderingEngine/RenderingEngine.js +13 -5
  44. package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
  45. package/dist/esm/RenderingEngine/VideoViewport.d.ts +51 -0
  46. package/dist/esm/RenderingEngine/VideoViewport.js +330 -0
  47. package/dist/esm/RenderingEngine/VideoViewport.js.map +1 -0
  48. package/dist/esm/RenderingEngine/VolumeViewport.js +6 -0
  49. package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
  50. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +2 -0
  51. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +2 -0
  52. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js.map +1 -1
  53. package/dist/esm/enums/VideoViewport.d.ts +5 -0
  54. package/dist/esm/enums/VideoViewport.js +7 -0
  55. package/dist/esm/enums/VideoViewport.js.map +1 -0
  56. package/dist/esm/enums/ViewportType.d.ts +2 -1
  57. package/dist/esm/enums/ViewportType.js +1 -0
  58. package/dist/esm/enums/ViewportType.js.map +1 -1
  59. package/dist/esm/enums/index.d.ts +2 -1
  60. package/dist/esm/enums/index.js +2 -1
  61. package/dist/esm/enums/index.js.map +1 -1
  62. package/dist/esm/getEnabledElement.js.map +1 -1
  63. package/dist/esm/index.d.ts +2 -1
  64. package/dist/esm/index.js +2 -1
  65. package/dist/esm/index.js.map +1 -1
  66. package/dist/esm/types/IRenderingEngine.d.ts +5 -2
  67. package/dist/esm/types/IVideoViewport.d.ts +12 -0
  68. package/dist/esm/types/IVideoViewport.js +2 -0
  69. package/dist/esm/types/IVideoViewport.js.map +1 -0
  70. package/dist/esm/types/VideoViewportProperties.d.ts +10 -0
  71. package/dist/esm/types/VideoViewportProperties.js +2 -0
  72. package/dist/esm/types/VideoViewportProperties.js.map +1 -0
  73. package/dist/esm/types/VideoViewportTypes.d.ts +18 -0
  74. package/dist/esm/types/VideoViewportTypes.js +2 -0
  75. package/dist/esm/types/VideoViewportTypes.js.map +1 -0
  76. package/dist/esm/types/index.d.ts +4 -1
  77. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js +10 -2
  78. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js.map +1 -1
  79. package/dist/umd/index.js +1 -1
  80. package/dist/umd/index.js.map +1 -1
  81. package/package.json +2 -2
  82. package/src/RenderingEngine/BaseVolumeViewport.ts +2 -5
  83. package/src/RenderingEngine/RenderingEngine.ts +38 -21
  84. package/src/RenderingEngine/VideoViewport.ts +523 -0
  85. package/src/RenderingEngine/VolumeViewport.ts +8 -0
  86. package/src/RenderingEngine/helpers/viewportTypeToViewportClass.ts +2 -0
  87. package/src/enums/VideoViewport.ts +9 -0
  88. package/src/enums/ViewportType.ts +1 -0
  89. package/src/enums/index.ts +2 -0
  90. package/src/getEnabledElement.ts +4 -2
  91. package/src/index.ts +2 -0
  92. package/src/types/IEnabledElement.ts +4 -1
  93. package/src/types/IRenderingEngine.ts +5 -2
  94. package/src/types/IVideoViewport.ts +35 -0
  95. package/src/types/VideoViewportProperties.ts +17 -0
  96. package/src/types/VideoViewportTypes.ts +20 -0
  97. package/src/types/index.ts +11 -0
  98. package/src/utilities/getTargetVolumeAndSpacingInNormalDir.ts +25 -5
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=VideoViewportProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoViewportProperties.js","sourceRoot":"","sources":["../../../src/types/VideoViewportProperties.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { ViewportType } from '../enums';
2
+ import Point2 from './Point2';
3
+ export declare type InternalVideoCamera = {
4
+ panWorld?: Point2;
5
+ parallelScale?: number;
6
+ };
7
+ export declare type VideoViewportInput = {
8
+ id: string;
9
+ renderingEngineId: string;
10
+ type: ViewportType;
11
+ element: HTMLDivElement;
12
+ sx: number;
13
+ sy: number;
14
+ sWidth: number;
15
+ sHeight: number;
16
+ defaultOptions: any;
17
+ canvas: HTMLCanvasElement;
18
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=VideoViewportTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoViewportTypes.js","sourceRoot":"","sources":["../../../src/types/VideoViewportTypes.ts"],"names":[],"mappings":""}
@@ -68,4 +68,7 @@ import type { PixelDataTypedArray } from './PixelDataTypedArray';
68
68
  import type { ImagePixelModule } from './ImagePixelModule';
69
69
  import type { ImagePlaneModule } from './ImagePlaneModule';
70
70
  import type { AffineMatrix } from './AffineMatrix';
71
- export type { Cornerstone3DConfig, ICamera, IStackViewport, IVolumeViewport, IEnabledElement, ICache, IVolume, VolumeScalarData, IViewportId, IImageVolume, IDynamicImageVolume, IRenderingEngine, ScalingParameters, PTScaling, Scaling, IStreamingImageVolume, IImage, IImageData, IImageCalibration, CPUIImageData, CPUImageData, EventTypes, ImageLoaderFn, VolumeLoaderFn, IRegisterImageLoader, IStreamingVolumeProperties, IViewport, StackViewportProperties, VolumeViewportProperties, ViewportProperties, PublicViewportInput, VolumeActor, Actor, ActorEntry, ImageActor, 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, PublicSurfaceData, SurfaceData, RGB, ColormapPublic, ColormapRegistration, PixelDataTypedArray, ImagePixelModule, ImagePlaneModule, AffineMatrix, };
71
+ import type VideoViewportProperties from './VideoViewportProperties';
72
+ import type IVideoViewport from './IVideoViewport';
73
+ import type { InternalVideoCamera, VideoViewportInput } from './VideoViewportTypes';
74
+ export type { Cornerstone3DConfig, ICamera, IStackViewport, IVideoViewport, IVolumeViewport, IEnabledElement, ICache, IVolume, VolumeScalarData, IViewportId, IImageVolume, IDynamicImageVolume, IRenderingEngine, ScalingParameters, PTScaling, Scaling, IStreamingImageVolume, IImage, IImageData, IImageCalibration, CPUIImageData, CPUImageData, EventTypes, ImageLoaderFn, VolumeLoaderFn, IRegisterImageLoader, IStreamingVolumeProperties, IViewport, StackViewportProperties, VolumeViewportProperties, ViewportProperties, PublicViewportInput, VolumeActor, Actor, ActorEntry, ImageActor, IImageLoadObject, IVolumeLoadObject, IVolumeInput, VolumeInputCallback, ViewportPreset, Metadata, OrientationVectors, Point2, Point3, Point4, Mat3, Plane, ViewportInputOptions, VideoViewportProperties, 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, PublicSurfaceData, SurfaceData, RGB, ColormapPublic, ColormapRegistration, PixelDataTypedArray, ImagePixelModule, ImagePlaneModule, AffineMatrix, InternalVideoCamera, VideoViewportInput, };
@@ -25,7 +25,7 @@ export default function getTargetVolumeAndSpacingInNormalDir(viewport, camera, t
25
25
  const imageVolumeIndex = imageVolumes.findIndex((iv) => iv.volumeId === targetVolumeId);
26
26
  const imageVolume = imageVolumes[imageVolumeIndex];
27
27
  const { uid: actorUID } = volumeActors[imageVolumeIndex];
28
- const spacingInNormalDirection = getSpacingInNormalDirection(imageVolume, viewPlaneNormal);
28
+ const spacingInNormalDirection = getSpacingInNormal(imageVolume, viewPlaneNormal, viewport);
29
29
  return { imageVolume, spacingInNormalDirection, actorUID };
30
30
  }
31
31
  if (!imageVolumes.length) {
@@ -46,7 +46,7 @@ export default function getTargetVolumeAndSpacingInNormalDir(viewport, camera, t
46
46
  if (hasPrimaryVolume && !isPrimaryVolume(imageVolume)) {
47
47
  continue;
48
48
  }
49
- const spacingInNormalDirection = getSpacingInNormalDirection(imageVolume, viewPlaneNormal);
49
+ const spacingInNormalDirection = getSpacingInNormal(imageVolume, viewPlaneNormal, viewport);
50
50
  if (spacingInNormalDirection * EPSILON_PART <
51
51
  smallest.spacingInNormalDirection) {
52
52
  smallest.spacingInNormalDirection = spacingInNormalDirection;
@@ -56,4 +56,12 @@ export default function getTargetVolumeAndSpacingInNormalDir(viewport, camera, t
56
56
  }
57
57
  return smallest;
58
58
  }
59
+ function getSpacingInNormal(imageVolume, viewPlaneNormal, viewport) {
60
+ const { slabThickness } = viewport.getProperties();
61
+ let spacingInNormalDirection = slabThickness;
62
+ if (!slabThickness) {
63
+ spacingInNormalDirection = getSpacingInNormalDirection(imageVolume, viewPlaneNormal);
64
+ }
65
+ return spacingInNormalDirection;
66
+ }
59
67
  //# sourceMappingURL=getTargetVolumeAndSpacingInNormalDir.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTargetVolumeAndSpacingInNormalDir.js","sourceRoot":"","sources":["../../../src/utilities/getTargetVolumeAndSpacingInNormalDir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getTargetVolumeAndSpacingInNormalDir.js","sourceRoot":"","sources":["../../../src/utilities/getTargetVolumeAndSpacingInNormalDir.ts"],"names":[],"mappings":"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"}