@cornerstonejs/tools 0.50.1 → 0.51.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.
@@ -3,6 +3,7 @@ declare type PlayClipOptions = {
3
3
  frameTimeVector?: number[];
4
4
  reverse?: boolean;
5
5
  loop?: boolean;
6
+ dynamicCineEnabled?: boolean;
6
7
  frameTimeVectorSpeedMultiplier?: number;
7
8
  };
8
9
  interface ToolData {
@@ -15,5 +16,12 @@ interface ToolData {
15
16
  speed: number;
16
17
  reverse: boolean;
17
18
  loop: boolean;
19
+ dynamicCineEnabled?: boolean;
18
20
  }
19
- export type { PlayClipOptions, ToolData };
21
+ declare type CinePlayContext = {
22
+ get numScrollSteps(): number;
23
+ get currentStepIndex(): number;
24
+ get frameTimeVectorEnabled(): boolean;
25
+ scroll(delta: number): void;
26
+ };
27
+ export type { PlayClipOptions, ToolData, CinePlayContext };
@@ -1,5 +1,6 @@
1
1
  declare type JumpToSliceOptions = {
2
2
  imageIndex: number;
3
3
  debounceLoading?: boolean;
4
+ volumeId?: string;
4
5
  };
5
6
  export default JumpToSliceOptions;
@@ -4,14 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.stopClip = exports.playClip = void 0;
7
+ const gl_matrix_1 = require("gl-matrix");
7
8
  const core_1 = require("@cornerstonejs/core");
8
9
  const events_1 = __importDefault(require("./events"));
9
10
  const state_1 = require("./state");
11
+ const scroll_1 = __importDefault(require("../scroll"));
10
12
  const { triggerEvent } = core_1.utilities;
11
13
  const debounced = true;
12
14
  const loop = true;
15
+ const dynamicVolumesPlayingMap = new Map();
13
16
  function playClip(element, playClipOptions) {
14
- var _a, _b, _c, _d;
17
+ var _a, _b, _c, _d, _e;
15
18
  let playClipTimeouts;
16
19
  let playClipIsTimeVarying;
17
20
  if (element === undefined) {
@@ -21,15 +24,16 @@ function playClip(element, playClipOptions) {
21
24
  if (!enabledElement) {
22
25
  throw new Error('playClip: element must be a valid Cornerstone enabled element');
23
26
  }
27
+ playClipOptions.dynamicCineEnabled =
28
+ (_a = playClipOptions.dynamicCineEnabled) !== null && _a !== void 0 ? _a : true;
24
29
  const { viewport } = enabledElement;
25
- if (!(viewport instanceof core_1.StackViewport)) {
26
- throw new Error('playClip: element must be a stack viewport, volume viewport playClip not yet implemented');
27
- }
28
- const stackData = {
29
- targetImageIdIndex: viewport.getTargetImageIdIndex(),
30
- imageIds: viewport.getImageIds(),
31
- };
30
+ const volume = _getVolumeFromViewport(viewport);
31
+ const playClipContext = _createCinePlayContext(viewport, playClipOptions);
32
32
  let playClipData = (0, state_1.getToolState)(element);
33
+ const isDynamicCinePlaying = playClipOptions.dynamicCineEnabled && (volume === null || volume === void 0 ? void 0 : volume.isDynamicVolume());
34
+ if (isDynamicCinePlaying) {
35
+ _stopDynamicVolumeCine(element);
36
+ }
33
37
  if (!playClipData) {
34
38
  playClipData = {
35
39
  intervalId: undefined,
@@ -37,16 +41,17 @@ function playClip(element, playClipOptions) {
37
41
  lastFrameTimeStamp: undefined,
38
42
  ignoreFrameTimeVector: false,
39
43
  usingFrameTimeVector: false,
40
- frameTimeVector: (_a = playClipOptions.frameTimeVector) !== null && _a !== void 0 ? _a : undefined,
41
- speed: (_b = playClipOptions.frameTimeVectorSpeedMultiplier) !== null && _b !== void 0 ? _b : 1,
42
- reverse: (_c = playClipOptions.reverse) !== null && _c !== void 0 ? _c : false,
43
- loop: (_d = playClipOptions.loop) !== null && _d !== void 0 ? _d : true,
44
+ frameTimeVector: (_b = playClipOptions.frameTimeVector) !== null && _b !== void 0 ? _b : undefined,
45
+ speed: (_c = playClipOptions.frameTimeVectorSpeedMultiplier) !== null && _c !== void 0 ? _c : 1,
46
+ reverse: (_d = playClipOptions.reverse) !== null && _d !== void 0 ? _d : false,
47
+ loop: (_e = playClipOptions.loop) !== null && _e !== void 0 ? _e : true,
44
48
  };
45
49
  (0, state_1.addToolState)(element, playClipData);
46
50
  }
47
51
  else {
48
- _stopClipWithData(playClipData);
52
+ _stopClip(element, isDynamicCinePlaying);
49
53
  }
54
+ playClipData.dynamicCineEnabled = playClipOptions.dynamicCineEnabled;
50
55
  if (playClipOptions.framesPerSecond < 0 ||
51
56
  playClipOptions.framesPerSecond > 0) {
52
57
  playClipData.framesPerSecond = Number(playClipOptions.framesPerSecond);
@@ -55,50 +60,42 @@ function playClip(element, playClipOptions) {
55
60
  }
56
61
  if (playClipData.ignoreFrameTimeVector !== true &&
57
62
  playClipData.frameTimeVector &&
58
- playClipData.frameTimeVector.length === stackData.imageIds.length) {
63
+ playClipData.frameTimeVector.length === playClipContext.numScrollSteps &&
64
+ playClipContext.frameTimeVectorEnabled) {
59
65
  const { timeouts, isTimeVarying } = _getPlayClipTimeouts(playClipData.frameTimeVector, playClipData.speed);
60
66
  playClipTimeouts = timeouts;
61
67
  playClipIsTimeVarying = isTimeVarying;
62
68
  }
63
69
  const playClipAction = () => {
64
- const stackData = {
65
- targetImageIdIndex: viewport.getTargetImageIdIndex(),
66
- imageIds: viewport.getImageIds(),
67
- };
68
- let newImageIdIndex = stackData.targetImageIdIndex;
69
- const imageCount = stackData.imageIds.length;
70
- if (playClipData.reverse) {
71
- newImageIdIndex--;
72
- }
73
- else {
74
- newImageIdIndex++;
75
- }
76
- if (!playClipData.loop &&
77
- (newImageIdIndex < 0 || newImageIdIndex >= imageCount)) {
78
- _stopClipWithData(playClipData);
79
- const eventDetail = {
80
- element,
81
- };
70
+ const { numScrollSteps, currentStepIndex } = playClipContext;
71
+ let newStepIndex = currentStepIndex + (playClipData.reverse ? -1 : 1);
72
+ const newStepIndexOutOfRange = newStepIndex < 0 || newStepIndex >= numScrollSteps;
73
+ if (!loop && newStepIndexOutOfRange) {
74
+ _stopClip(element, isDynamicCinePlaying);
75
+ const eventDetail = { element };
82
76
  triggerEvent(element, events_1.default.CLIP_STOPPED, eventDetail);
83
77
  return;
84
78
  }
85
- if (newImageIdIndex >= imageCount) {
86
- newImageIdIndex = 0;
79
+ if (newStepIndex >= numScrollSteps) {
80
+ newStepIndex = 0;
87
81
  }
88
- if (newImageIdIndex < 0) {
89
- newImageIdIndex = imageCount - 1;
82
+ else if (newStepIndex < 0) {
83
+ newStepIndex = numScrollSteps - 1;
90
84
  }
91
- if (newImageIdIndex !== stackData.targetImageIdIndex) {
92
- const delta = newImageIdIndex - stackData.targetImageIdIndex;
93
- viewport.scroll(delta, debounced, loop);
85
+ const delta = newStepIndex - currentStepIndex;
86
+ if (delta) {
87
+ playClipContext.scroll(delta);
94
88
  }
95
89
  };
90
+ if (isDynamicCinePlaying) {
91
+ dynamicVolumesPlayingMap.set(volume.volumeId, element);
92
+ }
96
93
  if (playClipTimeouts &&
97
94
  playClipTimeouts.length > 0 &&
98
95
  playClipIsTimeVarying) {
99
96
  playClipData.usingFrameTimeVector = true;
100
97
  playClipData.intervalId = window.setTimeout(function playClipTimeoutHandler() {
101
- playClipData.intervalId = window.setTimeout(playClipTimeoutHandler, playClipTimeouts[stackData.targetImageIdIndex]);
98
+ playClipData.intervalId = window.setTimeout(playClipTimeoutHandler, playClipTimeouts[playClipContext.currentStepIndex]);
102
99
  playClipAction();
103
100
  }, 0);
104
101
  }
@@ -113,15 +110,33 @@ function playClip(element, playClipOptions) {
113
110
  }
114
111
  exports.playClip = playClip;
115
112
  function stopClip(element) {
113
+ _stopClip(element, true);
114
+ }
115
+ exports.stopClip = stopClip;
116
+ function _stopClip(element, stopDynamicCine) {
116
117
  const enabledElement = (0, core_1.getEnabledElement)(element);
118
+ if (!enabledElement)
119
+ return;
117
120
  const { viewport } = enabledElement;
118
121
  const cineToolData = (0, state_1.getToolState)(viewport.element);
119
- if (!cineToolData) {
120
- return;
122
+ if (cineToolData) {
123
+ _stopClipWithData(cineToolData);
124
+ }
125
+ if (stopDynamicCine) {
126
+ _stopDynamicVolumeCine(element);
127
+ }
128
+ }
129
+ function _stopDynamicVolumeCine(element) {
130
+ const { viewport } = (0, core_1.getEnabledElement)(element);
131
+ const volume = _getVolumeFromViewport(viewport);
132
+ if (volume === null || volume === void 0 ? void 0 : volume.isDynamicVolume()) {
133
+ const dynamicCineElement = dynamicVolumesPlayingMap.get(volume.volumeId);
134
+ dynamicVolumesPlayingMap.delete(volume.volumeId);
135
+ if (dynamicCineElement && dynamicCineElement !== element) {
136
+ stopClip(dynamicCineElement);
137
+ }
121
138
  }
122
- _stopClipWithData(cineToolData);
123
139
  }
124
- exports.stopClip = stopClip;
125
140
  function _getPlayClipTimeouts(vector, speed) {
126
141
  let i;
127
142
  let sample;
@@ -167,4 +182,97 @@ function _stopClipWithData(playClipData) {
167
182
  }
168
183
  }
169
184
  }
185
+ function _getVolumeFromViewport(viewport) {
186
+ const actorEntry = viewport.getDefaultActor();
187
+ if (!actorEntry) {
188
+ console.warn('No actor found');
189
+ return;
190
+ }
191
+ const volumeId = actorEntry.uid;
192
+ return core_1.cache.getVolume(volumeId);
193
+ }
194
+ function _createStackViewportCinePlayContext(viewport) {
195
+ const imageIds = viewport.getImageIds();
196
+ return {
197
+ get numScrollSteps() {
198
+ return imageIds.length;
199
+ },
200
+ get currentStepIndex() {
201
+ return viewport.getTargetImageIdIndex();
202
+ },
203
+ get frameTimeVectorEnabled() {
204
+ return true;
205
+ },
206
+ scroll(delta) {
207
+ (0, scroll_1.default)(viewport, { delta, debounceLoading: debounced });
208
+ },
209
+ };
210
+ }
211
+ function _createVolumeViewportCinePlayContext(viewport, volume) {
212
+ const { volumeId } = volume;
213
+ const cachedScrollInfo = {
214
+ viewPlaneNormal: gl_matrix_1.vec3.create(),
215
+ scrollInfo: null,
216
+ };
217
+ const getScrollInfo = () => {
218
+ const camera = viewport.getCamera();
219
+ const updateCache = !cachedScrollInfo.scrollInfo ||
220
+ !gl_matrix_1.vec3.equals(camera.viewPlaneNormal, cachedScrollInfo.viewPlaneNormal);
221
+ if (updateCache) {
222
+ const scrollInfo = core_1.utilities.getVolumeViewportScrollInfo(viewport, volumeId);
223
+ cachedScrollInfo.viewPlaneNormal = camera.viewPlaneNormal;
224
+ cachedScrollInfo.scrollInfo = scrollInfo;
225
+ }
226
+ return cachedScrollInfo.scrollInfo;
227
+ };
228
+ return {
229
+ get numScrollSteps() {
230
+ return getScrollInfo().numScrollSteps;
231
+ },
232
+ get currentStepIndex() {
233
+ return getScrollInfo().currentStepIndex;
234
+ },
235
+ get frameTimeVectorEnabled() {
236
+ const camera = viewport.getCamera();
237
+ const volumeViewPlaneNormal = volume.direction
238
+ .slice(6, 9)
239
+ .map((x) => -x);
240
+ const dot = gl_matrix_1.vec3.dot(volumeViewPlaneNormal, camera.viewPlaneNormal);
241
+ return gl_matrix_1.glMatrix.equals(dot, 1);
242
+ },
243
+ scroll(delta) {
244
+ getScrollInfo().currentStepIndex += delta;
245
+ (0, scroll_1.default)(viewport, { delta });
246
+ },
247
+ };
248
+ }
249
+ function _createDynamicVolumeViewportCinePlayContext(volume) {
250
+ return {
251
+ get numScrollSteps() {
252
+ return volume.numTimePoints;
253
+ },
254
+ get currentStepIndex() {
255
+ return volume.timePointIndex;
256
+ },
257
+ get frameTimeVectorEnabled() {
258
+ return false;
259
+ },
260
+ scroll(delta) {
261
+ volume.timePointIndex += delta;
262
+ },
263
+ };
264
+ }
265
+ function _createCinePlayContext(viewport, playClipOptions) {
266
+ if (viewport instanceof core_1.StackViewport) {
267
+ return _createStackViewportCinePlayContext(viewport);
268
+ }
269
+ if (viewport instanceof core_1.VolumeViewport) {
270
+ const volume = _getVolumeFromViewport(viewport);
271
+ if (playClipOptions.dynamicCineEnabled && (volume === null || volume === void 0 ? void 0 : volume.isDynamicVolume())) {
272
+ return _createDynamicVolumeViewportCinePlayContext(volume);
273
+ }
274
+ return _createVolumeViewportCinePlayContext(viewport, volume);
275
+ }
276
+ throw new Error('Unknown viewport type');
277
+ }
170
278
  //# sourceMappingURL=playClip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"playClip.js","sourceRoot":"","sources":["../../../../src/utilities/cine/playClip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playClip.js","sourceRoot":"","sources":["../../../../src/utilities/cine/playClip.ts"],"names":[],"mappings":";;;;;;AAAA,yCAA2C;AAC3C,8CAM6B;AAG7B,sDAAmC;AACnC,mCAAqD;AAErD,uDAA+B;AAE/B,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAO,CAAC;AAEjC,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAE,CAAC;AAS3C,SAAS,QAAQ,CACf,OAAuB,EACvB,eAA0C;;IAE1C,IAAI,gBAAgB,CAAC;IACrB,IAAI,qBAAqB,CAAC;IAE1B,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IAED,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;KACH;IAGD,eAAe,CAAC,kBAAkB;QAChC,MAAA,eAAe,CAAC,kBAAkB,mCAAI,IAAI,CAAC;IAE7C,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,sBAAsB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC1E,IAAI,YAAY,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,oBAAoB,GACxB,eAAe,CAAC,kBAAkB,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,CAAA,CAAC;IAIlE,IAAI,oBAAoB,EAAE;QACxB,sBAAsB,CAAC,OAAO,CAAC,CAAC;KACjC;IAED,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG;YACb,UAAU,EAAE,SAAS;YACrB,eAAe,EAAE,EAAE;YACnB,kBAAkB,EAAE,SAAS;YAC7B,qBAAqB,EAAE,KAAK;YAC5B,oBAAoB,EAAE,KAAK;YAC3B,eAAe,EAAE,MAAA,eAAe,CAAC,eAAe,mCAAI,SAAS;YAC7D,KAAK,EAAE,MAAA,eAAe,CAAC,8BAA8B,mCAAI,CAAC;YAC1D,OAAO,EAAE,MAAA,eAAe,CAAC,OAAO,mCAAI,KAAK;YACzC,IAAI,EAAE,MAAA,eAAe,CAAC,IAAI,mCAAI,IAAI;SACnC,CAAC;QACF,IAAA,oBAAY,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KACrC;SAAM;QAIL,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;KAC1C;IAED,YAAY,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC;IAGrE,IACE,eAAe,CAAC,eAAe,GAAG,CAAC;QACnC,eAAe,CAAC,eAAe,GAAG,CAAC,EACnC;QACA,YAAY,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACvE,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC;QAExD,YAAY,CAAC,qBAAqB,GAAG,IAAI,CAAC;KAC3C;IAGD,IACE,YAAY,CAAC,qBAAqB,KAAK,IAAI;QAC3C,YAAY,CAAC,eAAe;QAC5B,YAAY,CAAC,eAAe,CAAC,MAAM,KAAK,eAAe,CAAC,cAAc;QACtE,eAAe,CAAC,sBAAsB,EACtC;QACA,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,oBAAoB,CACtD,YAAY,CAAC,eAAe,EAC5B,YAAY,CAAC,KAAK,CACnB,CAAC;QAEF,gBAAgB,GAAG,QAAQ,CAAC;QAC5B,qBAAqB,GAAG,aAAa,CAAC;KACvC;IAGD,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC;QAC7D,IAAI,YAAY,GAAG,gBAAgB,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,sBAAsB,GAC1B,YAAY,GAAG,CAAC,IAAI,YAAY,IAAI,cAAc,CAAC;QAErD,IAAI,CAAC,IAAI,IAAI,sBAAsB,EAAE;YAGnC,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAEzC,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,CAAC;YAEhC,YAAY,CAAC,OAAO,EAAE,gBAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC7D,OAAO;SACR;QAGD,IAAI,YAAY,IAAI,cAAc,EAAE;YAClC,YAAY,GAAG,CAAC,CAAC;SAClB;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE;YAC3B,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC;SACnC;QAED,MAAM,KAAK,GAAG,YAAY,GAAG,gBAAgB,CAAC;QAE9C,IAAI,KAAK,EAAE;YACT,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;IAEF,IAAI,oBAAoB,EAAE;QACxB,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACxD;IAID,IACE,gBAAgB;QAChB,gBAAgB,CAAC,MAAM,GAAG,CAAC;QAC3B,qBAAqB,EACrB;QACA,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACzC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CACzC,SAAS,sBAAsB;YAC7B,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CACzC,sBAAsB,EACtB,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CACnD,CAAC;YACF,cAAc,EAAE,CAAC;QACnB,CAAC,EACD,CAAC,CACF,CAAC;KACH;SAAM;QAEL,YAAY,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAC1C,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAC1C,cAAc,EACd,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAC9C,CAAC;KACH;IAED,MAAM,WAAW,GAAG;QAClB,OAAO;KACR,CAAC;IAEF,YAAY,CAAC,OAAO,EAAE,gBAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAC/D,CAAC;AA4PQ,4BAAQ;AAtPjB,SAAS,QAAQ,CAAC,OAAuB;IACvC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC;AAoPkB,4BAAQ;AAlP3B,SAAS,SAAS,CAAC,OAAuB,EAAE,eAAwB;IAClE,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,cAAc;QAAE,OAAO;IAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,MAAM,YAAY,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,YAAY,EAAE;QAChB,iBAAiB,CAAC,YAAY,CAAC,CAAC;KACjC;IAED,IAAI,eAAe,EAAE;QACnB,sBAAsB,CAAC,OAAO,CAAC,CAAC;KACjC;AACH,CAAC;AAMD,SAAS,sBAAsB,CAAC,OAAO;IACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAKhD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,EAAE;QAC7B,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEzE,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,kBAAkB,IAAI,kBAAkB,KAAK,OAAO,EAAE;YACxD,QAAQ,CAAiB,kBAAkB,CAAC,CAAC;SAC9C;KACF;AACH,CAAC;AASD,SAAS,oBAAoB,CAAC,MAAgB,EAAE,KAAa;IAC3D,IAAI,CAAC,CAAC;IACN,IAAI,MAAM,CAAC;IACX,IAAI,KAAK,CAAC;IACV,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC;IAGpB,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE;QAC3C,KAAK,GAAG,CAAC,CAAC;KACX;IAGD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAE1B,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,EAAE;YAEX,MAAM,GAAG,KAAK,CAAC;SAChB;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE;YAC3B,aAAa,GAAG,IAAI,CAAC;SACtB;QAED,GAAG,IAAI,KAAK,CAAC;KACd;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,IAAI,aAAa,EAAE;YAGjB,KAAK,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACrC;aAAM;YACL,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;SACrB;QAED,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtB;IAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACrC,CAAC;AAOD,SAAS,iBAAiB,CAAC,YAAY;IACrC,MAAM,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC;IAEnC,IAAI,OAAO,EAAE,KAAK,WAAW,EAAE;QAC7B,YAAY,CAAC,UAAU,GAAG,SAAS,CAAC;QACpC,IAAI,YAAY,CAAC,oBAAoB,EAAE;YACrC,YAAY,CAAC,EAAE,CAAC,CAAC;SAClB;aAAM;YACL,aAAa,CAAC,EAAE,CAAC,CAAC;SACnB;KACF;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAQ;IACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;IAE9C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC;IAChC,OAAO,YAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,mCAAmC,CAC1C,QAAuB;IAEvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAExC,OAAO;QACL,IAAI,cAAc;YAChB,OAAO,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,gBAAgB;YAClB,OAAO,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAC1C,CAAC;QACD,IAAI,sBAAsB;YAExB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,KAAa;YAClB,IAAA,gBAAM,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oCAAoC,CAC3C,QAAwB,EACxB,MAA0B;IAE1B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC5B,MAAM,gBAAgB,GAAG;QACvB,eAAe,EAAE,gBAAI,CAAC,MAAM,EAAE;QAC9B,UAAU,EAAE,IAAI;KACjB,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,WAAW,GACf,CAAC,gBAAgB,CAAC,UAAU;YAC5B,CAAC,gBAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAKzE,IAAI,WAAW,EAAE;YACf,MAAM,UAAU,GAAG,gBAAO,CAAC,2BAA2B,CACpD,QAAQ,EACR,QAAQ,CACT,CAAC;YAEF,gBAAgB,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;YAC1D,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;SAC1C;QAED,OAAO,gBAAgB,CAAC,UAAU,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,cAAc;YAChB,OAAO,aAAa,EAAE,CAAC,cAAc,CAAC;QACxC,CAAC;QACD,IAAI,gBAAgB;YAClB,OAAO,aAAa,EAAE,CAAC,gBAAgB,CAAC;QAC1C,CAAC;QACD,IAAI,sBAAsB;YACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS;iBAC3C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAiB,CAAC;YAClC,MAAM,GAAG,GAAG,gBAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;YAIpE,OAAO,oBAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,KAAa;YAClB,aAAa,EAAE,CAAC,gBAAgB,IAAI,KAAK,CAAC;YAC1C,IAAA,gBAAM,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,2CAA2C,CAClD,MAAiC;IAEjC,OAAO;QACL,IAAI,cAAc;YAChB,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,CAAC;QACD,IAAI,gBAAgB;YAClB,OAAO,MAAM,CAAC,cAAc,CAAC;QAC/B,CAAC;QACD,IAAI,sBAAsB;YAExB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,KAAa;YAElB,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAAQ,EACR,eAA0C;IAE1C,IAAI,QAAQ,YAAY,oBAAa,EAAE;QACrC,OAAO,mCAAmC,CAAC,QAAQ,CAAC,CAAC;KACtD;IAED,IAAI,QAAQ,YAAY,qBAAc,EAAE;QACtC,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,eAAe,CAAC,kBAAkB,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,CAAA,EAAE;YACnE,OAAO,2CAA2C,CACrB,MAAM,CAClC,CAAC;SACH;QAED,OAAO,oCAAoC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC/D;IAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC3C,CAAC"}
@@ -17,18 +17,12 @@ function scroll(viewport, options) {
17
17
  }
18
18
  exports.default = scroll;
19
19
  function scrollVolume(viewport, volumeId, delta) {
20
- const camera = viewport.getCamera();
21
- const { focalPoint, viewPlaneNormal, position } = camera;
22
- const { spacingInNormalDirection, imageVolume } = core_1.utilities.getTargetVolumeAndSpacingInNormalDir(viewport, camera, volumeId);
23
- if (!imageVolume) {
24
- throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
25
- }
26
- const actorEntry = viewport.getActor(imageVolume.volumeId);
27
- if (!actorEntry) {
28
- console.warn('No actor found for with actorUID of', imageVolume.volumeId);
20
+ const sliceRangeInfo = core_1.utilities.getVolumeSliceRangeInfo(viewport, volumeId);
21
+ if (!sliceRangeInfo) {
22
+ return;
29
23
  }
30
- const volumeActor = actorEntry.actor;
31
- const sliceRange = core_1.utilities.getSliceRange(volumeActor, viewPlaneNormal, focalPoint);
24
+ const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
25
+ const { focalPoint, viewPlaneNormal, position } = camera;
32
26
  const { newFocalPoint, newPosition } = core_1.utilities.snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
33
27
  viewport.setCamera({
34
28
  focalPoint: newFocalPoint,
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/utilities/scroll.ts"],"names":[],"mappings":";;;AAAA,8CAK6B;AAY7B,SAAwB,MAAM,CAC5B,QAAsD,EACtD,OAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEpC,IAAI,QAAQ,YAAY,oBAAa,EAAE;QACrC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;KACjD;SAAM,IAAI,QAAQ,YAAY,qBAAc,EAAE;QAC7C,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;KACzC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;KACvE;AACH,CAAC;AAdD,yBAcC;AAED,SAAgB,YAAY,CAC1B,QAAwB,EACxB,QAAgB,EAChB,KAAa;IAEb,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACzD,MAAM,EAAE,wBAAwB,EAAE,WAAW,EAAE,GAC7C,gBAAO,CAAC,oCAAoC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE3E,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,kBAAkB,CAClE,CAAC;KACH;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC3E;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAA0B,CAAC;IAC1D,MAAM,UAAU,GAAG,gBAAO,CAAC,aAAa,CACtC,WAAW,EACX,eAAe,EACf,UAAU,CACX,CAAC;IAEF,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,gBAAO,CAAC,qBAAqB,CAClE,UAAU,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,wBAAwB,EACxB,KAAK,CACN,CAAC;IAEF,QAAQ,CAAC,SAAS,CAAC;QACjB,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC;AACpB,CAAC;AA3CD,oCA2CC"}
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/utilities/scroll.ts"],"names":[],"mappings":";;;AAAA,8CAK6B;AAY7B,SAAwB,MAAM,CAC5B,QAAsD,EACtD,OAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEpC,IAAI,QAAQ,YAAY,oBAAa,EAAE;QACrC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;KACjD;SAAM,IAAI,QAAQ,YAAY,qBAAc,EAAE;QAC7C,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;KACzC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;KACvE;AACH,CAAC;AAdD,yBAcC;AAED,SAAgB,YAAY,CAC1B,QAAwB,EACxB,QAAgB,EAChB,KAAa;IAEb,MAAM,cAAc,GAAG,gBAAO,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3E,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO;KACR;IAED,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IACxE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEzD,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,gBAAO,CAAC,qBAAqB,CAClE,UAAU,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,wBAAwB,EACxB,KAAK,CACN,CAAC;IAEF,QAAQ,CAAC,SAAS,CAAC;QACjB,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC;AACpB,CAAC;AA5BD,oCA4BC"}
@@ -17,7 +17,7 @@ const clip_1 = __importDefault(require("../clip"));
17
17
  const scroll_1 = __importDefault(require("../scroll"));
18
18
  function jumpToSlice(element, options = {}) {
19
19
  return __awaiter(this, void 0, void 0, function* () {
20
- const { imageIndex, debounceLoading } = options;
20
+ const { imageIndex, debounceLoading, volumeId } = options;
21
21
  const enabledElement = (0, core_1.getEnabledElement)(element);
22
22
  if (!enabledElement) {
23
23
  throw new Error('Element has been disabled');
@@ -26,7 +26,7 @@ function jumpToSlice(element, options = {}) {
26
26
  const { imageIndex: currentImageIndex, numberOfSlices } = _getImageSliceData(viewport, debounceLoading);
27
27
  const imageIndexToJump = _getImageIndexToJump(numberOfSlices, imageIndex);
28
28
  const delta = imageIndexToJump - currentImageIndex;
29
- (0, scroll_1.default)(viewport, { delta, debounceLoading });
29
+ (0, scroll_1.default)(viewport, { delta, debounceLoading, volumeId });
30
30
  });
31
31
  }
32
32
  function _getImageSliceData(viewport, debounceLoading) {
@@ -1 +1 @@
1
- {"version":3,"file":"jumpToSlice.js","sourceRoot":"","sources":["../../../../src/utilities/viewport/jumpToSlice.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8CAM6B;AAE7B,mDAA2B;AAC3B,uDAA+B;AAY/B,SAAe,WAAW,CACxB,OAAuB,EACvB,UAAU,EAAwB;;QAElC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QAChD,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC9C;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAEpC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAC1E,QAAQ,EACR,eAAe,CAChB,CAAC;QAEF,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QAEnD,IAAA,gBAAM,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/C,CAAC;CAAA;AAED,SAAS,kBAAkB,CACzB,QAAsD,EACtD,eAAyB;IAEzB,IAAI,QAAQ,YAAY,oBAAa,EAAE;QACrC,OAAO;YACL,cAAc,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM;YAC7C,UAAU,EAAE,eAAe;gBACzB,CAAC,CAAC,QAAQ,CAAC,qBAAqB,EAAE;gBAClC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,EAAE;SACtC,CAAC;KACH;SAAM,IAAI,QAAQ,YAAY,qBAAc,EAAE;QAC7C,OAAO,gBAAO,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC;KAC7D;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,cAAsB,EACtB,UAAkB;IAElB,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;IAE1C,OAAO,IAAA,cAAI,EAAC,UAAU,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"jumpToSlice.js","sourceRoot":"","sources":["../../../../src/utilities/viewport/jumpToSlice.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8CAM6B;AAE7B,mDAA2B;AAC3B,uDAA+B;AAY/B,SAAe,WAAW,CACxB,OAAuB,EACvB,UAAU,EAAwB;;QAElC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC9C;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAEpC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAC1E,QAAQ,EACR,eAAe,CAChB,CAAC;QAEF,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QAEnD,IAAA,gBAAM,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;CAAA;AAED,SAAS,kBAAkB,CACzB,QAAsD,EACtD,eAAyB;IAEzB,IAAI,QAAQ,YAAY,oBAAa,EAAE;QACrC,OAAO;YACL,cAAc,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM;YAC7C,UAAU,EAAE,eAAe;gBACzB,CAAC,CAAC,QAAQ,CAAC,qBAAqB,EAAE;gBAClC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,EAAE;SACtC,CAAC;KACH;SAAM,IAAI,QAAQ,YAAY,qBAAc,EAAE;QAC7C,OAAO,gBAAO,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC;KAC7D;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,cAAsB,EACtB,UAAkB;IAElB,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;IAE1C,OAAO,IAAA,cAAI,EAAC,UAAU,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,kBAAe,WAAW,CAAC"}
@@ -3,6 +3,7 @@ declare type PlayClipOptions = {
3
3
  frameTimeVector?: number[];
4
4
  reverse?: boolean;
5
5
  loop?: boolean;
6
+ dynamicCineEnabled?: boolean;
6
7
  frameTimeVectorSpeedMultiplier?: number;
7
8
  };
8
9
  interface ToolData {
@@ -15,5 +16,12 @@ interface ToolData {
15
16
  speed: number;
16
17
  reverse: boolean;
17
18
  loop: boolean;
19
+ dynamicCineEnabled?: boolean;
18
20
  }
19
- export type { PlayClipOptions, ToolData };
21
+ declare type CinePlayContext = {
22
+ get numScrollSteps(): number;
23
+ get currentStepIndex(): number;
24
+ get frameTimeVectorEnabled(): boolean;
25
+ scroll(delta: number): void;
26
+ };
27
+ export type { PlayClipOptions, ToolData, CinePlayContext };
@@ -1,5 +1,6 @@
1
1
  declare type JumpToSliceOptions = {
2
2
  imageIndex: number;
3
3
  debounceLoading?: boolean;
4
+ volumeId?: string;
4
5
  };
5
6
  export default JumpToSliceOptions;