@cornerstonejs/core 1.24.0 → 1.26.0

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 (83) hide show
  1. package/dist/cjs/RenderingEngine/RenderingEngine.d.ts +5 -2
  2. package/dist/cjs/RenderingEngine/RenderingEngine.js +13 -5
  3. package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
  4. package/dist/cjs/RenderingEngine/VideoViewport.d.ts +51 -0
  5. package/dist/cjs/RenderingEngine/VideoViewport.js +355 -0
  6. package/dist/cjs/RenderingEngine/VideoViewport.js.map +1 -0
  7. package/dist/cjs/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +2 -0
  8. package/dist/cjs/RenderingEngine/helpers/viewportTypeToViewportClass.js +2 -0
  9. package/dist/cjs/RenderingEngine/helpers/viewportTypeToViewportClass.js.map +1 -1
  10. package/dist/cjs/enums/VideoViewport.d.ts +5 -0
  11. package/dist/cjs/enums/VideoViewport.js +10 -0
  12. package/dist/cjs/enums/VideoViewport.js.map +1 -0
  13. package/dist/cjs/enums/ViewportType.d.ts +2 -1
  14. package/dist/cjs/enums/ViewportType.js +1 -0
  15. package/dist/cjs/enums/ViewportType.js.map +1 -1
  16. package/dist/cjs/enums/index.d.ts +2 -1
  17. package/dist/cjs/enums/index.js +26 -1
  18. package/dist/cjs/enums/index.js.map +1 -1
  19. package/dist/cjs/getEnabledElement.js.map +1 -1
  20. package/dist/cjs/index.d.ts +2 -1
  21. package/dist/cjs/index.js +3 -1
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/types/IRenderingEngine.d.ts +5 -2
  24. package/dist/cjs/types/IVideoViewport.d.ts +12 -0
  25. package/dist/cjs/types/IVideoViewport.js +3 -0
  26. package/dist/cjs/types/IVideoViewport.js.map +1 -0
  27. package/dist/cjs/types/VideoViewportProperties.d.ts +10 -0
  28. package/dist/cjs/types/VideoViewportProperties.js +3 -0
  29. package/dist/cjs/types/VideoViewportProperties.js.map +1 -0
  30. package/dist/cjs/types/VideoViewportTypes.d.ts +18 -0
  31. package/dist/cjs/types/VideoViewportTypes.js +3 -0
  32. package/dist/cjs/types/VideoViewportTypes.js.map +1 -0
  33. package/dist/cjs/types/index.d.ts +4 -1
  34. package/dist/esm/RenderingEngine/RenderingEngine.d.ts +5 -2
  35. package/dist/esm/RenderingEngine/RenderingEngine.js +13 -5
  36. package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
  37. package/dist/esm/RenderingEngine/VideoViewport.d.ts +51 -0
  38. package/dist/esm/RenderingEngine/VideoViewport.js +330 -0
  39. package/dist/esm/RenderingEngine/VideoViewport.js.map +1 -0
  40. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +2 -0
  41. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +2 -0
  42. package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js.map +1 -1
  43. package/dist/esm/enums/VideoViewport.d.ts +5 -0
  44. package/dist/esm/enums/VideoViewport.js +7 -0
  45. package/dist/esm/enums/VideoViewport.js.map +1 -0
  46. package/dist/esm/enums/ViewportType.d.ts +2 -1
  47. package/dist/esm/enums/ViewportType.js +1 -0
  48. package/dist/esm/enums/ViewportType.js.map +1 -1
  49. package/dist/esm/enums/index.d.ts +2 -1
  50. package/dist/esm/enums/index.js +2 -1
  51. package/dist/esm/enums/index.js.map +1 -1
  52. package/dist/esm/getEnabledElement.js.map +1 -1
  53. package/dist/esm/index.d.ts +2 -1
  54. package/dist/esm/index.js +2 -1
  55. package/dist/esm/index.js.map +1 -1
  56. package/dist/esm/types/IRenderingEngine.d.ts +5 -2
  57. package/dist/esm/types/IVideoViewport.d.ts +12 -0
  58. package/dist/esm/types/IVideoViewport.js +2 -0
  59. package/dist/esm/types/IVideoViewport.js.map +1 -0
  60. package/dist/esm/types/VideoViewportProperties.d.ts +10 -0
  61. package/dist/esm/types/VideoViewportProperties.js +2 -0
  62. package/dist/esm/types/VideoViewportProperties.js.map +1 -0
  63. package/dist/esm/types/VideoViewportTypes.d.ts +18 -0
  64. package/dist/esm/types/VideoViewportTypes.js +2 -0
  65. package/dist/esm/types/VideoViewportTypes.js.map +1 -0
  66. package/dist/esm/types/index.d.ts +4 -1
  67. package/dist/umd/index.js +1 -1
  68. package/dist/umd/index.js.map +1 -1
  69. package/package.json +2 -2
  70. package/src/RenderingEngine/RenderingEngine.ts +38 -21
  71. package/src/RenderingEngine/VideoViewport.ts +523 -0
  72. package/src/RenderingEngine/helpers/viewportTypeToViewportClass.ts +2 -0
  73. package/src/enums/VideoViewport.ts +9 -0
  74. package/src/enums/ViewportType.ts +1 -0
  75. package/src/enums/index.ts +2 -0
  76. package/src/getEnabledElement.ts +4 -2
  77. package/src/index.ts +2 -0
  78. package/src/types/IEnabledElement.ts +4 -1
  79. package/src/types/IRenderingEngine.ts +5 -2
  80. package/src/types/IVideoViewport.ts +35 -0
  81. package/src/types/VideoViewportProperties.ts +17 -0
  82. package/src/types/VideoViewportTypes.ts +20 -0
  83. package/src/types/index.ts +11 -0
@@ -0,0 +1,9 @@
1
+ /**
2
+ * video viewport speed units
3
+ */
4
+ enum SpeedUnit {
5
+ FRAME = 'f',
6
+ SECOND = 's',
7
+ }
8
+
9
+ export { SpeedUnit };
@@ -16,6 +16,7 @@ enum ViewportType {
16
16
  /** Perspective Viewport: Not Implemented yet */
17
17
  PERSPECTIVE = 'perspective',
18
18
  VOLUME_3D = 'volume3d',
19
+ VIDEO = 'video',
19
20
  }
20
21
 
21
22
  export default ViewportType;
@@ -11,6 +11,7 @@ import VOILUTFunctionType from './VOILUTFunctionType';
11
11
  import DynamicOperatorType from './DynamicOperatorType';
12
12
  import CalibrationTypes from './CalibrationTypes';
13
13
  import ViewportStatus from './ViewportStatus';
14
+ import * as VideoViewport from './VideoViewport';
14
15
 
15
16
  export {
16
17
  Events,
@@ -26,4 +27,5 @@ export {
26
27
  VOILUTFunctionType,
27
28
  DynamicOperatorType,
28
29
  ViewportStatus,
30
+ VideoViewport,
29
31
  };
@@ -1,7 +1,7 @@
1
1
  import getRenderingEngine, {
2
2
  getRenderingEngines,
3
3
  } from './RenderingEngine/getRenderingEngine';
4
- import { IEnabledElement } from './types';
4
+ import { IEnabledElement, IStackViewport, IVolumeViewport } from './types';
5
5
 
6
6
  /**
7
7
  * A convenience method to find an EnabledElement given a reference to its
@@ -67,7 +67,9 @@ export function getEnabledElementByIds(
67
67
  return;
68
68
  }
69
69
 
70
- const viewport = renderingEngine.getViewport(viewportId);
70
+ const viewport = renderingEngine.getViewport(viewportId) as
71
+ | IStackViewport
72
+ | IVolumeViewport;
71
73
 
72
74
  if (!viewport) {
73
75
  return;
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ import VolumeViewport from './RenderingEngine/VolumeViewport';
12
12
  import VolumeViewport3D from './RenderingEngine/VolumeViewport3D';
13
13
  import BaseVolumeViewport from './RenderingEngine/BaseVolumeViewport';
14
14
  import StackViewport from './RenderingEngine/StackViewport';
15
+ import VideoViewport from './RenderingEngine/VideoViewport';
15
16
  import Viewport from './RenderingEngine/Viewport';
16
17
  import eventTarget from './eventTarget';
17
18
  import {
@@ -80,6 +81,7 @@ export {
80
81
  VolumeViewport3D,
81
82
  Viewport,
82
83
  StackViewport,
84
+ VideoViewport,
83
85
  RenderingEngine,
84
86
  ImageVolume,
85
87
  // Helpers
@@ -6,7 +6,10 @@ import type IVolumeViewport from './IVolumeViewport';
6
6
  * Cornerstone Enabled Element interface
7
7
  */
8
8
  interface IEnabledElement {
9
- /** Cornerstone Viewport instance - can be Stack or Volume Viewport as of now */
9
+ /** Cornerstone Viewport instance - can be Stack or Volume, or Video Viewport as of now.
10
+ * For the moment, need to cast to unknown first before casting to IVideoViewport
11
+ * (TODO) - this will be done as part of adding annotation tools for video
12
+ */
10
13
  viewport: IStackViewport | IVolumeViewport;
11
14
  /** Cornerstone Rendering Engine instance */
12
15
  renderingEngine: IRenderingEngine;
@@ -1,6 +1,8 @@
1
1
  import IStackViewport from './IStackViewport';
2
2
  import { PublicViewportInput } from './IViewport';
3
3
  import IVolumeViewport from './IVolumeViewport';
4
+ import { IViewport } from './IViewport';
5
+ import IVideoViewport from './IVideoViewport';
4
6
 
5
7
  export default interface IRenderingEngine {
6
8
  id: string;
@@ -9,8 +11,8 @@ export default interface IRenderingEngine {
9
11
  offScreenCanvasContainer: any;
10
12
  setViewports(viewports: Array<PublicViewportInput>): void;
11
13
  resize(immediate?: boolean, keepCamera?: boolean): void;
12
- getViewport(id: string): IStackViewport | IVolumeViewport;
13
- getViewports(): Array<IStackViewport | IVolumeViewport>;
14
+ getViewport(id: string): IViewport;
15
+ getViewports(): Array<IViewport>;
14
16
  render(): void;
15
17
  renderViewports(viewportIds: Array<string>): void;
16
18
  renderViewport(viewportId: string): void;
@@ -23,6 +25,7 @@ export default interface IRenderingEngine {
23
25
  disableElement(viewportId: string): void;
24
26
  getStackViewports(): Array<IStackViewport>;
25
27
  getVolumeViewports(): Array<IVolumeViewport>;
28
+ getVideoViewports(): Array<IVideoViewport>;
26
29
  destroy(): void;
27
30
  _debugRender(): void;
28
31
  }
@@ -0,0 +1,35 @@
1
+ import { IViewport } from './IViewport';
2
+ import VideoViewportProperties from './VideoViewportProperties';
3
+
4
+ /**
5
+ * Interface for Stack Viewport
6
+ */
7
+ export default interface IVideoViewport extends IViewport {
8
+ /**
9
+ * Resizes the viewport - only used in CPU fallback for StackViewport. The
10
+ * GPU resizing happens inside the RenderingEngine.
11
+ */
12
+ resize: () => void;
13
+ /**
14
+ * Sets the properties for the viewport on the default actor.
15
+ */
16
+ setProperties(props: VideoViewportProperties, suppressEvents?: boolean): void;
17
+ /**
18
+ * Retrieve the viewport properties
19
+ */
20
+ getProperties: () => VideoViewportProperties;
21
+
22
+ setVideoURL: (url: string) => void;
23
+
24
+ play: () => void;
25
+
26
+ pause: () => void;
27
+ /**
28
+ * Reset the viewport properties to the default values
29
+ */
30
+ resetProperties(): void;
31
+ /**
32
+ * Centers Pan and resets the zoom for stack viewport.
33
+ */
34
+ resetCamera(resetPan?: boolean, resetZoom?: boolean): boolean;
35
+ }
@@ -0,0 +1,17 @@
1
+ import { ViewportProperties } from './ViewportProperties';
2
+ import Point2 from './Point2';
3
+
4
+ /**
5
+ * Stack Viewport Properties
6
+ */
7
+ type VideoViewportProperties = ViewportProperties & {
8
+ loop?: boolean;
9
+ muted?: boolean;
10
+ pan?: Point2;
11
+ playbackRate?: number;
12
+ // The zoom factor, naming consistent with vtk cameras for now,
13
+ // but this isn't necessarily necessary.
14
+ parallelScale?: number;
15
+ };
16
+
17
+ export default VideoViewportProperties;
@@ -0,0 +1,20 @@
1
+ import { ViewportType } from '../enums';
2
+ import Point2 from './Point2';
3
+
4
+ export type InternalVideoCamera = {
5
+ panWorld?: Point2;
6
+ parallelScale?: number;
7
+ };
8
+
9
+ export type VideoViewportInput = {
10
+ id: string;
11
+ renderingEngineId: string;
12
+ type: ViewportType;
13
+ element: HTMLDivElement;
14
+ sx: number;
15
+ sy: number;
16
+ sWidth: number;
17
+ sHeight: number;
18
+ defaultOptions: any;
19
+ canvas: HTMLCanvasElement;
20
+ };
@@ -83,6 +83,12 @@ import type { PixelDataTypedArray } from './PixelDataTypedArray';
83
83
  import type { ImagePixelModule } from './ImagePixelModule';
84
84
  import type { ImagePlaneModule } from './ImagePlaneModule';
85
85
  import type { AffineMatrix } from './AffineMatrix';
86
+ import type VideoViewportProperties from './VideoViewportProperties';
87
+ import type IVideoViewport from './IVideoViewport';
88
+ import type {
89
+ InternalVideoCamera,
90
+ VideoViewportInput,
91
+ } from './VideoViewportTypes';
86
92
 
87
93
  export type {
88
94
  // config
@@ -90,6 +96,7 @@ export type {
90
96
  //
91
97
  ICamera,
92
98
  IStackViewport,
99
+ IVideoViewport,
93
100
  IVolumeViewport,
94
101
  IEnabledElement,
95
102
  ICache,
@@ -136,6 +143,7 @@ export type {
136
143
  Mat3,
137
144
  Plane,
138
145
  ViewportInputOptions,
146
+ VideoViewportProperties,
139
147
  VOIRange,
140
148
  VOI,
141
149
  DisplayArea,
@@ -180,4 +188,7 @@ export type {
180
188
  ImagePixelModule,
181
189
  ImagePlaneModule,
182
190
  AffineMatrix,
191
+ // video
192
+ InternalVideoCamera,
193
+ VideoViewportInput,
183
194
  };