@cornerstonejs/core 0.11.1 → 0.13.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 (58) hide show
  1. package/dist/cjs/RenderingEngine/StackViewport.d.ts +6 -1
  2. package/dist/cjs/RenderingEngine/StackViewport.js +117 -28
  3. package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
  4. package/dist/cjs/RenderingEngine/Viewport.js +1 -1
  5. package/dist/cjs/RenderingEngine/Viewport.js.map +1 -1
  6. package/dist/cjs/RenderingEngine/helpers/cpuFallback/drawImageSync.js +0 -1
  7. package/dist/cjs/RenderingEngine/helpers/cpuFallback/drawImageSync.js.map +1 -1
  8. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/correctShift.d.ts +7 -0
  9. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/correctShift.js +19 -0
  10. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/correctShift.js.map +1 -0
  11. package/dist/cjs/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
  12. package/dist/cjs/cache/cache.d.ts +1 -0
  13. package/dist/cjs/cache/cache.js +7 -0
  14. package/dist/cjs/cache/cache.js.map +1 -1
  15. package/dist/cjs/enums/Events.d.ts +3 -1
  16. package/dist/cjs/enums/Events.js +2 -0
  17. package/dist/cjs/enums/Events.js.map +1 -1
  18. package/dist/cjs/types/CPUFallbackViewport.d.ts +2 -0
  19. package/dist/cjs/types/EventTypes.d.ts +14 -1
  20. package/dist/cjs/types/ICamera.d.ts +1 -0
  21. package/dist/cjs/types/StackViewportProperties.d.ts +1 -0
  22. package/dist/cjs/utilities/index.d.ts +1 -2
  23. package/dist/cjs/utilities/index.js +1 -3
  24. package/dist/cjs/utilities/index.js.map +1 -1
  25. package/dist/esm/RenderingEngine/StackViewport.d.ts +6 -1
  26. package/dist/esm/RenderingEngine/StackViewport.js +118 -27
  27. package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
  28. package/dist/esm/RenderingEngine/Viewport.js +1 -1
  29. package/dist/esm/RenderingEngine/Viewport.js.map +1 -1
  30. package/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.js +0 -1
  31. package/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.js.map +1 -1
  32. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.d.ts +7 -0
  33. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.js +16 -0
  34. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.js.map +1 -0
  35. package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
  36. package/dist/esm/cache/cache.d.ts +1 -0
  37. package/dist/esm/cache/cache.js +7 -0
  38. package/dist/esm/cache/cache.js.map +1 -1
  39. package/dist/esm/enums/Events.d.ts +3 -1
  40. package/dist/esm/enums/Events.js +2 -0
  41. package/dist/esm/enums/Events.js.map +1 -1
  42. package/dist/esm/types/CPUFallbackViewport.d.ts +2 -0
  43. package/dist/esm/types/EventTypes.d.ts +14 -1
  44. package/dist/esm/types/ICamera.d.ts +1 -0
  45. package/dist/esm/types/StackViewportProperties.d.ts +1 -0
  46. package/dist/esm/utilities/index.d.ts +1 -2
  47. package/dist/esm/utilities/index.js +1 -2
  48. package/dist/esm/utilities/index.js.map +1 -1
  49. package/dist/umd/index.js +2 -1
  50. package/dist/umd/index.js.LICENSE.txt +1 -0
  51. package/dist/umd/index.js.map +1 -1
  52. package/package.json +2 -2
  53. package/dist/cjs/utilities/prefetchStack.d.ts +0 -3
  54. package/dist/cjs/utilities/prefetchStack.js +0 -45
  55. package/dist/cjs/utilities/prefetchStack.js.map +0 -1
  56. package/dist/esm/utilities/prefetchStack.d.ts +0 -3
  57. package/dist/esm/utilities/prefetchStack.js +0 -43
  58. package/dist/esm/utilities/prefetchStack.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"drawImageSync.js","sourceRoot":"","sources":["../../../../../src/RenderingEngine/helpers/cpuFallback/drawImageSync.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC,mEAAgE;AAChE,2EAAwE;AACxE,+EAA4E;AAS5E,mBACE,cAAyC,EACzC,WAAoB;IAEpB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACnC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IAGrC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;QACnD,OAAO;KACR;IAGD,MAAM,KAAK,GAAG,IAAA,aAAG,GAAE,CAAC;IAEpB,KAAK,CAAC,KAAK,GAAG;QACZ,oBAAoB,EAAE,CAAC,GAAG;QAC1B,wCAAwC,EAAE,CAAC,GAAG;QAC9C,oBAAoB,EAAE,CAAC,GAAG;QAC1B,cAAc,EAAE,CAAC,GAAG;QACpB,mBAAmB,EAAE,CAAC,GAAG;KAC1B,CAAC;IAEF,IAAI,KAAK,EAAE;QACT,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACpC,MAAM,GAAG,+CAAsB,CAAC;aACjC;iBAAM,IAAI,KAAK,CAAC,KAAK,EAAE;gBACtB,MAAM,GAAG,mCAAgB,CAAC;aAC3B;iBAAM;gBACL,MAAM,GAAG,2CAAoB,CAAC;aAC/B;SACF;QAED,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;KACrC;IAGD,MAAM,cAAc,GAAG,IAAA,aAAG,GAAE,GAAG,KAAK,CAAC;IAErC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC;IAE5C,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;IAC/B,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC;AACrC,CAAC;AA9CD,4BA8CC"}
1
+ {"version":3,"file":"drawImageSync.js","sourceRoot":"","sources":["../../../../../src/RenderingEngine/helpers/cpuFallback/drawImageSync.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC,mEAAgE;AAChE,2EAAwE;AACxE,+EAA4E;AAS5E,mBACE,cAAyC,EACzC,WAAoB;IAEpB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IAGnC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;QACnD,OAAO;KACR;IAGD,MAAM,KAAK,GAAG,IAAA,aAAG,GAAE,CAAC;IAEpB,KAAK,CAAC,KAAK,GAAG;QACZ,oBAAoB,EAAE,CAAC,GAAG;QAC1B,wCAAwC,EAAE,CAAC,GAAG;QAC9C,oBAAoB,EAAE,CAAC,GAAG;QAC1B,cAAc,EAAE,CAAC,GAAG;QACpB,mBAAmB,EAAE,CAAC,GAAG;KAC1B,CAAC;IAEF,IAAI,KAAK,EAAE;QACT,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACpC,MAAM,GAAG,+CAAsB,CAAC;aACjC;iBAAM,IAAI,KAAK,CAAC,KAAK,EAAE;gBACtB,MAAM,GAAG,mCAAgB,CAAC;aAC3B;iBAAM;gBACL,MAAM,GAAG,2CAAoB,CAAC;aAC/B;SACF;QAED,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;KACrC;IAGD,MAAM,cAAc,GAAG,IAAA,aAAG,GAAE,GAAG,KAAK,CAAC;IAErC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC;IAE5C,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;IAC/B,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC;AACrC,CAAC;AA7CD,4BA6CC"}
@@ -0,0 +1,7 @@
1
+ import { CPUFallbackViewport } from '../../../../types';
2
+ declare type Shift = {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ export default function (shift: Shift, viewportOrientation: CPUFallbackViewport): Shift;
7
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function default_1(shift, viewportOrientation) {
4
+ const { hflip, vflip, rotation } = viewportOrientation;
5
+ shift.x *= hflip ? -1 : 1;
6
+ shift.y *= vflip ? -1 : 1;
7
+ if (rotation !== 0) {
8
+ const angle = (rotation * Math.PI) / 180;
9
+ const cosA = Math.cos(angle);
10
+ const sinA = Math.sin(angle);
11
+ const newX = shift.x * cosA - shift.y * sinA;
12
+ const newY = shift.x * sinA + shift.y * cosA;
13
+ shift.x = newX;
14
+ shift.y = newY;
15
+ }
16
+ return shift;
17
+ }
18
+ exports.default = default_1;
19
+ //# sourceMappingURL=correctShift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correctShift.js","sourceRoot":"","sources":["../../../../../../src/RenderingEngine/helpers/cpuFallback/rendering/correctShift.ts"],"names":[],"mappings":";;AAYA,mBACE,KAAY,EACZ,mBAAwC;IAExC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC;IAGvD,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAG1B,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,MAAM,KAAK,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAE7C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QACf,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;KAChB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAzBD,4BAyBC"}
@@ -2,7 +2,7 @@ import { VolumeActor } from './../../types/IActor';
2
2
  import BlendModes from '../../enums/BlendModes';
3
3
  interface createVolumeActorInterface {
4
4
  volumeId: string;
5
- callback?: ({ volumeActor: any, volumeId: string }: {
5
+ callback?: ({ volumeActor: VolumeActor, volumeId: string }: {
6
6
  volumeActor: any;
7
7
  volumeId: any;
8
8
  }) => void;
@@ -18,6 +18,7 @@ declare class Cache implements ICache {
18
18
  decacheIfNecessaryUntilBytesAvailable(numBytes: number, volumeImageIds?: Array<string>): number | undefined;
19
19
  putImageLoadObject(imageId: string, imageLoadObject: IImageLoadObject): Promise<any>;
20
20
  getImageLoadObject(imageId: string): IImageLoadObject;
21
+ isImageIdCached(imageId: string): boolean;
21
22
  getVolumeContainingImageId(imageId: string): {
22
23
  volume: IImageVolume;
23
24
  imageIdIndex: number;
@@ -244,6 +244,13 @@ class Cache {
244
244
  cachedImage.timeStamp = Date.now();
245
245
  return cachedImage.imageLoadObject;
246
246
  }
247
+ isImageIdCached(imageId) {
248
+ const cachedImage = this._imageCache.get(imageId);
249
+ if (!cachedImage) {
250
+ return false;
251
+ }
252
+ return cachedImage.loaded;
253
+ }
247
254
  getVolumeContainingImageId(imageId) {
248
255
  const volumeIds = Array.from(this._volumeCache.keys());
249
256
  const imageIdToUse = (0, utilities_1.imageIdToURI)(imageId);
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/cache/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/cache/cache.ts"],"names":[],"mappings":";;;;;;AAUA,4CAA0D;AAC1D,iEAAyC;AACzC,6DAAqC;AAErC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAEtC,MAAM,KAAK;IAOT;QAiBO,oBAAe,GAAG,CAAC,eAAuB,EAAQ,EAAE;YACzD,IAAI,CAAC,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;gBAC3D,MAAM,YAAY,GAAG,qBAAqB,IAAI,CAAC,aAAa,4CAA4C,CAAC;gBACzG,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;aAC/B;YAED,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC;QACvC,CAAC,CAAC;QAYK,gBAAW,GAAG,CAAC,UAAkB,EAAW,EAAE;YACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,MAAM,cAAc,GAAG,gBAAgB,GAAG,cAAc,CAAC;YAEzD,OAAO,cAAc,GAAG,UAAU,CAAC;QACrC,CAAC,CAAC;QAOK,oBAAe,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;QAOnD,iBAAY,GAAG,GAAW,EAAE,CACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAgBvC,kBAAa,GAAG,CAAC,OAAe,EAAE,EAAE;YAC1C,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAG1D,IAAI,eAAe,CAAC,MAAM,EAAE;gBAC1B,eAAe,CAAC,MAAM,EAAE,CAAC;aAC1B;YAED,IAAI,eAAe,CAAC,OAAO,EAAE;gBAC3B,eAAe,CAAC,OAAO,EAAE,CAAC;aAC3B;YAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC;QAQM,mBAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,CAAC;YAG1C,IAAI,gBAAgB,CAAC,MAAM,EAAE;gBAC3B,gBAAgB,CAAC,MAAM,EAAE,CAAC;aAC3B;YAED,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBAC5B,gBAAgB,CAAC,OAAO,EAAE,CAAC;aAC5B;YASD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;QAYK,eAAU,GAAG,GAAS,EAAE;YAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAG9C,OAAO,IAAI,EAAE;gBACX,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;gBAEtD,IAAI,IAAI,EAAE;oBACR,MAAM;iBACP;gBAED,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAEpC,IAAA,wBAAY,EAAC,qBAAW,EAAE,gBAAM,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;aAC1E;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QAKK,qBAAgB,GAAG,GAAS,EAAE;YACnC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAGhD,OAAO,IAAI,EAAE;gBACX,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;gBAExD,IAAI,IAAI,EAAE;oBACR,MAAM;iBACP;gBAED,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAEtC,IAAA,wBAAY,EAAC,qBAAW,EAAE,gBAAM,CAAC,2BAA2B,EAAE;oBAC5D,QAAQ;iBACT,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QA6ZK,wBAAmB,GAAG,CAAC,QAAgB,EAAqB,EAAE;YACnE,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;aACxE;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,YAAY,KAAK,SAAS,EAAE;gBAC9B,OAAO;aACR;YAGD,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEpC,OAAO,YAAY,CAAC,gBAAgB,CAAC;QACvC,CAAC,CAAC;QAQK,cAAS,GAAG,CAAC,QAAgB,EAAgB,EAAE;YACpD,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;aAC9D;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,YAAY,KAAK,SAAS,EAAE;gBAC9B,OAAO;aACR;YAGD,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEpC,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC;QAWK,0BAAqB,GAAG,CAAC,OAAe,EAAQ,EAAE;YACvD,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;aACzE;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAElD,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;aACH;YAED,IAAI,CAAC,wBAAwB,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAExD,MAAM,YAAY,GAAG;gBACnB,OAAO;aACR,CAAC;YAEF,IAAA,wBAAY,EAAC,qBAAW,EAAE,gBAAM,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;YAC1E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC;QAWK,2BAAsB,GAAG,CAAC,QAAgB,EAAQ,EAAE;YACzD,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;aAC3E;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,YAAY,KAAK,SAAS,EAAE;gBAC9B,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;aACH;YAED,IAAI,CAAC,yBAAyB,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAE1D,MAAM,YAAY,GAAG;gBACnB,MAAM,EAAE,YAAY;gBACpB,QAAQ;aACT,CAAC;YAEF,IAAA,wBAAY,EAAC,qBAAW,EAAE,gBAAM,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;YAC5E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC;QAOM,6BAAwB,GAAG,CAAC,SAAiB,EAAE,EAAE;YACvD,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC;QACpC,CAAC,CAAC;QAOM,8BAAyB,GAAG,CAAC,SAAiB,EAAE,EAAE;YACxD,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC;QACrC,CAAC,CAAC;QAvrBA,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC;IAC1C,CAAC;IAyDM,iBAAiB;QACtB,OAAO,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACtD,CAAC;IA8HM,qCAAqC,CAC1C,QAAgB,EAChB,cAA8B;QAE9B,IAAI,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAG9C,IAAI,cAAc,IAAI,QAAQ,EAAE;YAC9B,OAAO,cAAc,CAAC;SACvB;QAED,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QAIzD,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE;gBAC7B,OAAO,CAAC,CAAC;aACV;YACD,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE;gBAC7B,OAAO,CAAC,CAAC,CAAC;aACX;YAED,OAAO,CAAC,CAAC;QACX,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAE1D,IAAI,eAAe,GAAG,cAAc,CAAC;QAIrC,IAAI,cAAc,EAAE;YAClB,eAAe,GAAG,cAAc,CAAC,MAAM,CACrC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CACrC,CAAC;SACH;QAID,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;YACrC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAEpC,IAAA,wBAAY,EAAC,qBAAW,EAAE,gBAAM,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEzE,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1C,IAAI,cAAc,IAAI,QAAQ,EAAE;gBAC9B,OAAO,cAAc,CAAC;aACvB;SACF;QAGD,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAItD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE;YACpC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAEpC,IAAA,wBAAY,EAAC,qBAAW,EAAE,gBAAM,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEzE,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1C,IAAI,cAAc,IAAI,QAAQ,EAAE;gBAC9B,OAAO,cAAc,CAAC;aACvB;SACF;IAKH,CAAC;IAmBM,kBAAkB,CACvB,OAAe,EACf,eAAiC;QAEjC,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACtE;QAED,IAAI,eAAe,CAAC,OAAO,KAAK,SAAS,EAAE;YACzC,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;SACH;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QAED,IACE,eAAe,CAAC,MAAM;YACtB,OAAO,eAAe,CAAC,MAAM,KAAK,UAAU,EAC5C;YACA,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;SACH;QAED,MAAM,WAAW,GAAiB;YAChC,MAAM,EAAE,KAAK;YACb,OAAO;YACP,cAAc,EAAE,SAAS;YACzB,eAAe;YACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE3C,OAAO,eAAe,CAAC,OAAO;aAC3B,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAElC,OAAO,CAAC,IAAI,CACV,kEAAkE,CACnE,CAAC;gBACF,OAAO;aACR;YAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;gBACnC,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;aACH;YACD,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE;gBAC3C,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;aACH;YAGD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,gBAAM,CAAC,mBAAmB,CAAC,CAAC;aAC7C;YAGD,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE9D,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;YAC1B,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;YAC1B,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAEvD,MAAM,YAAY,GAA+C;gBAC/D,KAAK,EAAE,WAAW;aACnB,CAAC;YAEF,IAAA,wBAAY,EAAC,qBAAW,EAAE,gBAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;YAExE,WAAW,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QACpD,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAEf,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAQM,kBAAkB,CAAC,OAAe;QACvC,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACtE;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,OAAO;SACR;QAGD,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEnC,OAAO,WAAW,CAAC,eAAe,CAAC;IACrC,CAAC;IASM,eAAe,CAAC,OAAe;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;IASM,0BAA0B,CAAC,OAAe;QAI/C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAA,wBAAY,EAAC,OAAO,CAAC,CAAC;QAE3C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACxB,OAAO;aACR;YAED,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC;YAEvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtC,SAAS;aACV;YAED,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,wBAAY,EAAC,EAAE,CAAC,CAAC,CAAC;YAElD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,YAAY,GAAG,CAAC,CAAC,EAAE;gBACrB,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;aACtD;SACF;IACH,CAAC;IASM,6BAA6B,CAClC,OAAe;QAEf,MAAM,aAAa,GAAG,IAAA,wBAAY,EAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACnD,OAAO,IAAA,wBAAY,EAAC,OAAO,CAAC,KAAK,aAAa,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAiBM,mBAAmB,CACxB,QAAgB,EAChB,gBAAmC;QAEnC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QACD,IAAI,gBAAgB,CAAC,OAAO,KAAK,SAAS,EAAE;YAC1C,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;SACH;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,mBAAmB,CAC7D,CAAC;SACH;QACD,IACE,gBAAgB,CAAC,MAAM;YACvB,OAAO,gBAAgB,CAAC,MAAM,KAAK,UAAU,EAC7C;YACA,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;SACH;QAKD,MAAM,YAAY,GAAkB;YAClC,MAAM,EAAE,KAAK;YACb,QAAQ;YACR,gBAAgB;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE9C,OAAO,gBAAgB,CAAC,OAAO;aAC5B,IAAI,CAAC,CAAC,MAAoB,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAEpC,OAAO,CAAC,IAAI,CACV,kEAAkE,CACnE,CAAC;gBACF,OAAO;aACR;YAED,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;aACH;YACD,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE;gBAC5C,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;aACH;YAKD,IAAI,CAAC,qCAAqC,CACxC,MAAM,CAAC,WAAW,EAElB,MAAM,CAAC,QAAQ,CAChB,CAAC;YAGF,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;YAC7B,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAC9C,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAEzD,MAAM,YAAY,GAAiD;gBACjE,MAAM,EAAE,YAAY;aACrB,CAAC;YAEF,IAAA,wBAAY,EACV,qBAAW,EACX,gBAAM,CAAC,yBAAyB,EAChC,YAAY,CACb,CAAC;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;CA8HF;AA4CQ,sBAAK;AAFd,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AAC1B,kBAAe,KAAK,CAAC"}
@@ -19,6 +19,8 @@ declare enum Events {
19
19
  VOLUME_NEW_IMAGE = "CORNERSTONE_VOLUME_NEW_IMAGE",
20
20
  PRE_STACK_NEW_IMAGE = "CORNERSTONE_PRE_STACK_NEW_IMAGE",
21
21
  IMAGE_SPACING_CALIBRATED = "CORNERSTONE_IMAGE_SPACING_CALIBRATED",
22
- IMAGE_LOAD_PROGRESS = "CORNERSTONE_IMAGE_LOAD_PROGRESS"
22
+ IMAGE_LOAD_PROGRESS = "CORNERSTONE_IMAGE_LOAD_PROGRESS",
23
+ STACK_VIEWPORT_NEW_STACK = "CORNERSTONE_STACK_VIEWPORT_NEW_STACK",
24
+ STACK_VIEWPORT_SCROLL = "CORNERSTONE_STACK_VIEWPORT_SCROLL"
23
25
  }
24
26
  export default Events;
@@ -23,6 +23,8 @@ var Events;
23
23
  Events["PRE_STACK_NEW_IMAGE"] = "CORNERSTONE_PRE_STACK_NEW_IMAGE";
24
24
  Events["IMAGE_SPACING_CALIBRATED"] = "CORNERSTONE_IMAGE_SPACING_CALIBRATED";
25
25
  Events["IMAGE_LOAD_PROGRESS"] = "CORNERSTONE_IMAGE_LOAD_PROGRESS";
26
+ Events["STACK_VIEWPORT_NEW_STACK"] = "CORNERSTONE_STACK_VIEWPORT_NEW_STACK";
27
+ Events["STACK_VIEWPORT_SCROLL"] = "CORNERSTONE_STACK_VIEWPORT_SCROLL";
26
28
  })(Events || (Events = {}));
27
29
  exports.default = Events;
28
30
  //# sourceMappingURL=Events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":";;AAGA,IAAK,MA8JJ;AA9JD,WAAK,MAAM;IAST,qDAA2C,CAAA;IAK3C,+CAAqC,CAAA;IAQrC,yDAA+C,CAAA;IAO/C,mDAAyC,CAAA;IAOzC,2DAAiD,CAAA;IAOjD,yDAA+C,CAAA;IAO/C,uDAA6C,CAAA;IAS7C,qEAA2D,CAAA;IAO3D,mDAAyC,CAAA;IAOzC,6DAAmD,CAAA;IAOnD,qDAA2C,CAAA;IAO3C,mEAAyD,CAAA;IAOzD,yEAA+D,CAAA;IAO/D,6EAAmE,CAAA;IAOnE,6EAAmE,CAAA;IAOnE,iFAAuE,CAAA;IAOvE,yDAA+C,CAAA;IAS/C,2DAAiD,CAAA;IAQjD,iEAAuD,CAAA;IAOvD,2EAAiE,CAAA;IAQjE,iEAAuD,CAAA;AAIzD,CAAC,EA9JI,MAAM,KAAN,MAAM,QA8JV;AAED,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":";;AAGA,IAAK,MA6KJ;AA7KD,WAAK,MAAM;IAST,qDAA2C,CAAA;IAK3C,+CAAqC,CAAA;IAQrC,yDAA+C,CAAA;IAO/C,mDAAyC,CAAA;IAOzC,2DAAiD,CAAA;IAOjD,yDAA+C,CAAA;IAO/C,uDAA6C,CAAA;IAS7C,qEAA2D,CAAA;IAO3D,mDAAyC,CAAA;IAOzC,6DAAmD,CAAA;IAOnD,qDAA2C,CAAA;IAO3C,mEAAyD,CAAA;IAOzD,yEAA+D,CAAA;IAO/D,6EAAmE,CAAA;IAOnE,6EAAmE,CAAA;IAOnE,iFAAuE,CAAA;IAOvE,yDAA+C,CAAA;IAS/C,2DAAiD,CAAA;IAQjD,iEAAuD,CAAA;IAOvD,2EAAiE,CAAA;IAQjE,iEAAuD,CAAA;IAOvD,2EAAiE,CAAA;IAOjE,qEAA2D,CAAA;AAK7D,CAAC,EA7KI,MAAM,KAAN,MAAM,QA6KV;AAED,kBAAe,MAAM,CAAC"}
@@ -3,6 +3,8 @@ import CPUFallbackColormap from './CPUFallbackColormap';
3
3
  import CPUFallbackLUT from './CPUFallbackLUT';
4
4
  declare type CPUFallbackViewport = {
5
5
  scale?: number;
6
+ parallelScale?: number;
7
+ focalPoint?: number[];
6
8
  translation?: {
7
9
  x: number;
8
10
  y: number;
@@ -102,6 +102,17 @@ declare type ImageLoadProgressEventDetail = {
102
102
  total: number;
103
103
  percent: number;
104
104
  };
105
+ declare type StackViewportNewStackEventDetail = {
106
+ imageIds: string[];
107
+ viewportId: string;
108
+ element: HTMLDivElement;
109
+ currentImageIdIndex: number;
110
+ };
111
+ declare type StackViewportScrollEventDetail = {
112
+ newImageIdIndex: number;
113
+ imageId: string;
114
+ direction: number;
115
+ };
105
116
  declare type CameraModifiedEvent = CustomEventType<CameraModifiedEventDetail>;
106
117
  declare type VoiModifiedEvent = CustomEventType<VoiModifiedEventDetail>;
107
118
  declare type ElementDisabledEvent = CustomEventType<ElementDisabledEventDetail>;
@@ -121,4 +132,6 @@ declare type VolumeNewImageEvent = CustomEventType<VolumeNewImageEventDetail>;
121
132
  declare type PreStackNewImageEvent = CustomEventType<PreStackNewImageEventDetail>;
122
133
  declare type ImageSpacingCalibratedEvent = CustomEventType<ImageSpacingCalibratedEventDetail>;
123
134
  declare type ImageLoadProgressEvent = CustomEventType<ImageLoadProgressEventDetail>;
124
- export type { CameraModifiedEventDetail, CameraModifiedEvent, VoiModifiedEvent, VoiModifiedEventDetail, ElementDisabledEvent, ElementDisabledEventDetail, ElementEnabledEvent, ElementEnabledEventDetail, ImageRenderedEventDetail, ImageRenderedEvent, ImageVolumeModifiedEvent, ImageVolumeModifiedEventDetail, ImageLoadedEvent, ImageLoadedEventDetail, ImageLoadedFailedEventDetail, ImageLoadedFailedEvent, VolumeLoadedEvent, VolumeLoadedEventDetail, VolumeLoadedFailedEvent, VolumeLoadedFailedEventDetail, ImageCacheImageAddedEvent, ImageCacheImageAddedEventDetail, ImageCacheImageRemovedEvent, ImageCacheImageRemovedEventDetail, VolumeCacheVolumeAddedEvent, VolumeCacheVolumeAddedEventDetail, VolumeCacheVolumeRemovedEvent, VolumeCacheVolumeRemovedEventDetail, StackNewImageEvent, StackNewImageEventDetail, PreStackNewImageEvent, PreStackNewImageEventDetail, ImageSpacingCalibratedEvent, ImageSpacingCalibratedEventDetail, ImageLoadProgressEvent, ImageLoadProgressEventDetail, VolumeNewImageEvent, VolumeNewImageEventDetail, };
135
+ declare type StackViewportNewStackEvent = CustomEventType<StackViewportNewStackEventDetail>;
136
+ declare type StackViewportScrollEvent = CustomEventType<StackViewportScrollEventDetail>;
137
+ export type { CameraModifiedEventDetail, CameraModifiedEvent, VoiModifiedEvent, VoiModifiedEventDetail, ElementDisabledEvent, ElementDisabledEventDetail, ElementEnabledEvent, ElementEnabledEventDetail, ImageRenderedEventDetail, ImageRenderedEvent, ImageVolumeModifiedEvent, ImageVolumeModifiedEventDetail, ImageLoadedEvent, ImageLoadedEventDetail, ImageLoadedFailedEventDetail, ImageLoadedFailedEvent, VolumeLoadedEvent, VolumeLoadedEventDetail, VolumeLoadedFailedEvent, VolumeLoadedFailedEventDetail, ImageCacheImageAddedEvent, ImageCacheImageAddedEventDetail, ImageCacheImageRemovedEvent, ImageCacheImageRemovedEventDetail, VolumeCacheVolumeAddedEvent, VolumeCacheVolumeAddedEventDetail, VolumeCacheVolumeRemovedEvent, VolumeCacheVolumeRemovedEventDetail, StackNewImageEvent, StackNewImageEventDetail, PreStackNewImageEvent, PreStackNewImageEventDetail, ImageSpacingCalibratedEvent, ImageSpacingCalibratedEventDetail, ImageLoadProgressEvent, ImageLoadProgressEventDetail, VolumeNewImageEvent, VolumeNewImageEventDetail, StackViewportNewStackEvent, StackViewportNewStackEventDetail, StackViewportScrollEvent, StackViewportScrollEventDetail, };
@@ -3,6 +3,7 @@ interface ICamera {
3
3
  focalPoint?: Point3;
4
4
  parallelProjection?: boolean;
5
5
  parallelScale?: number;
6
+ scale?: number;
6
7
  position?: Point3;
7
8
  viewAngle?: number;
8
9
  viewPlaneNormal?: Point3;
@@ -5,5 +5,6 @@ declare type StackViewportProperties = {
5
5
  invert?: boolean;
6
6
  interpolationType?: InterpolationType;
7
7
  rotation?: number;
8
+ suppressEvents?: boolean;
8
9
  };
9
10
  export default StackViewportProperties;
@@ -18,7 +18,6 @@ import indexWithinDimensions from './indexWithinDimensions';
18
18
  import getVolumeViewportsContainingSameVolumes from './getVolumeViewportsContainingSameVolumes';
19
19
  import getVolumeViewportsContainingVolumeId from './getVolumeViewportsContainingVolumeId';
20
20
  import transformWorldToIndex from './transformWorldToIndex';
21
- import prefetchStack from './prefetchStack';
22
21
  import loadImageToCanvas from './loadImageToCanvas';
23
22
  import renderToCanvas from './renderToCanvas';
24
23
  import worldToImageCoords from './worldToImageCoords';
@@ -29,4 +28,4 @@ import getImageSliceDataForVolumeViewport from './getImageSliceDataForVolumeView
29
28
  import getScalingParameters from './getScalingParameters';
30
29
  import * as planar from './planar';
31
30
  import * as windowLevel from './windowLevel';
32
- export { csUtils as invertRgbTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getVolumeViewportsContainingVolumeId, transformWorldToIndex, prefetchStack, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, getScalingParameters, };
31
+ export { csUtils as invertRgbTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getVolumeViewportsContainingVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, getScalingParameters, };
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.getScalingParameters = exports.getImageSliceDataForVolumeViewport = exports.snapFocalPointToSlice = exports.getSliceRange = exports.imageToWorldCoords = exports.worldToImageCoords = exports.renderToCanvas = exports.loadImageToCanvas = exports.prefetchStack = exports.transformWorldToIndex = exports.getVolumeViewportsContainingVolumeId = exports.getVolumeViewportsContainingSameVolumes = exports.indexWithinDimensions = exports.getVolumeActorCorners = exports.getTargetVolumeAndSpacingInNormalDir = exports.getSpacingInNormalDirection = exports.getClosestImageId = exports.windowLevel = exports.createUint8SharedArray = exports.createFloat32SharedArray = exports.isOpposite = exports.isEqual = exports.getRuntimeId = exports.getMinMax = exports.planar = exports.uuidv4 = exports.calibratedPixelSpacingMetadataProvider = exports.imageIdToURI = exports.triggerEvent = exports.scaleRgbTransferFunction = exports.invertRgbTransferFunction = void 0;
25
+ exports.getScalingParameters = exports.getImageSliceDataForVolumeViewport = exports.snapFocalPointToSlice = exports.getSliceRange = exports.imageToWorldCoords = exports.worldToImageCoords = exports.renderToCanvas = exports.loadImageToCanvas = exports.transformWorldToIndex = exports.getVolumeViewportsContainingVolumeId = exports.getVolumeViewportsContainingSameVolumes = exports.indexWithinDimensions = exports.getVolumeActorCorners = exports.getTargetVolumeAndSpacingInNormalDir = exports.getSpacingInNormalDirection = exports.getClosestImageId = exports.windowLevel = exports.createUint8SharedArray = exports.createFloat32SharedArray = exports.isOpposite = exports.isEqual = exports.getRuntimeId = exports.getMinMax = exports.planar = exports.uuidv4 = exports.calibratedPixelSpacingMetadataProvider = exports.imageIdToURI = exports.triggerEvent = exports.scaleRgbTransferFunction = exports.invertRgbTransferFunction = void 0;
26
26
  const invertRgbTransferFunction_1 = __importDefault(require("./invertRgbTransferFunction"));
27
27
  exports.invertRgbTransferFunction = invertRgbTransferFunction_1.default;
28
28
  const scaleRgbTransferFunction_1 = __importDefault(require("./scaleRgbTransferFunction"));
@@ -63,8 +63,6 @@ const getVolumeViewportsContainingVolumeId_1 = __importDefault(require("./getVol
63
63
  exports.getVolumeViewportsContainingVolumeId = getVolumeViewportsContainingVolumeId_1.default;
64
64
  const transformWorldToIndex_1 = __importDefault(require("./transformWorldToIndex"));
65
65
  exports.transformWorldToIndex = transformWorldToIndex_1.default;
66
- const prefetchStack_1 = __importDefault(require("./prefetchStack"));
67
- exports.prefetchStack = prefetchStack_1.default;
68
66
  const loadImageToCanvas_1 = __importDefault(require("./loadImageToCanvas"));
69
67
  exports.loadImageToCanvas = loadImageToCanvas_1.default;
70
68
  const renderToCanvas_1 = __importDefault(require("./renderToCanvas"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAAkD;AAmCrC,oCAnCN,mCAAO,CAmCwB;AAlCtC,0FAAkE;AAmChE,mCAnCK,kCAAwB,CAmCL;AAlC1B,kEAA0C;AAmCxC,uBAnCK,sBAAY,CAmCL;AAlCd,sDAA8B;AAqC5B,iBArCK,gBAAM,CAqCL;AApCR,4DAAoC;AAsClC,oBAtCK,mBAAS,CAsCL;AArCX,kEAA0C;AAsCxC,uBAtCK,sBAAY,CAsCL;AArCd,kEAA0C;AAgCxC,uBAhCK,sBAAY,CAgCL;AA/Bd,sHAA8F;AAgC5F,iDAhCK,gDAAsC,CAgCL;AA/BxC,wDAAgC;AAoC9B,kBApCK,iBAAO,CAoCL;AAnCT,8DAAsC;AAoCpC,qBApCK,oBAAU,CAoCL;AAnCZ,sFAA8D;AAqC5D,iCArCK,gCAAsB,CAqCL;AApCxB,0FAAkE;AAmChE,mCAnCK,kCAAwB,CAmCL;AAlC1B,4EAAoD;AAqClD,4BArCK,2BAAiB,CAqCL;AApCnB,gGAAwE;AAqCtE,sCArCK,qCAA2B,CAqCL;AApC7B,kHAA0F;AAqCxF,+CArCK,8CAAoC,CAqCL;AApCtC,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,wHAAgG;AAqC9F,kDArCK,iDAAuC,CAqCL;AApCzC,kHAA0F;AAqCxF,+CArCK,8CAAoC,CAqCL;AApCtC,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,oEAA4C;AAqC1C,wBArCK,uBAAa,CAqCL;AApCf,4EAAoD;AAqClD,4BArCK,2BAAiB,CAqCL;AApCnB,sEAA8C;AAqC5C,yBArCK,wBAAc,CAqCL;AApChB,8EAAsD;AAqCpD,6BArCK,4BAAkB,CAqCL;AApCpB,8EAAsD;AAqCpD,6BArCK,4BAAkB,CAqCL;AApCpB,oEAA4C;AAqC1C,wBArCK,uBAAa,CAqCL;AApCf,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,8GAAsF;AAqCpF,6CArCK,4CAAkC,CAqCL;AApCpC,kFAA0D;AAqCxD,+BArCK,8BAAoB,CAqCL;AAlCtB,iDAAmC;AAUjC,wBAAM;AATR,2DAA6C;AAgB3C,kCAAW"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAAkD;AAkCrC,oCAlCN,mCAAO,CAkCwB;AAjCtC,0FAAkE;AAkChE,mCAlCK,kCAAwB,CAkCL;AAjC1B,kEAA0C;AAkCxC,uBAlCK,sBAAY,CAkCL;AAjCd,sDAA8B;AAoC5B,iBApCK,gBAAM,CAoCL;AAnCR,4DAAoC;AAqClC,oBArCK,mBAAS,CAqCL;AApCX,kEAA0C;AAqCxC,uBArCK,sBAAY,CAqCL;AApCd,kEAA0C;AA+BxC,uBA/BK,sBAAY,CA+BL;AA9Bd,sHAA8F;AA+B5F,iDA/BK,gDAAsC,CA+BL;AA9BxC,wDAAgC;AAmC9B,kBAnCK,iBAAO,CAmCL;AAlCT,8DAAsC;AAmCpC,qBAnCK,oBAAU,CAmCL;AAlCZ,sFAA8D;AAoC5D,iCApCK,gCAAsB,CAoCL;AAnCxB,0FAAkE;AAkChE,mCAlCK,kCAAwB,CAkCL;AAjC1B,4EAAoD;AAoClD,4BApCK,2BAAiB,CAoCL;AAnCnB,gGAAwE;AAoCtE,sCApCK,qCAA2B,CAoCL;AAnC7B,kHAA0F;AAoCxF,+CApCK,8CAAoC,CAoCL;AAnCtC,oFAA4D;AAoC1D,gCApCK,+BAAqB,CAoCL;AAnCvB,oFAA4D;AAoC1D,gCApCK,+BAAqB,CAoCL;AAnCvB,wHAAgG;AAoC9F,kDApCK,iDAAuC,CAoCL;AAnCzC,kHAA0F;AAoCxF,+CApCK,8CAAoC,CAoCL;AAnCtC,oFAA4D;AAoC1D,gCApCK,+BAAqB,CAoCL;AAnCvB,4EAAoD;AAoClD,4BApCK,2BAAiB,CAoCL;AAnCnB,sEAA8C;AAoC5C,yBApCK,wBAAc,CAoCL;AAnChB,8EAAsD;AAoCpD,6BApCK,4BAAkB,CAoCL;AAnCpB,8EAAsD;AAoCpD,6BApCK,4BAAkB,CAoCL;AAnCpB,oEAA4C;AAoC1C,wBApCK,uBAAa,CAoCL;AAnCf,oFAA4D;AAoC1D,gCApCK,+BAAqB,CAoCL;AAnCvB,8GAAsF;AAoCpF,6CApCK,4CAAkC,CAoCL;AAnCpC,kFAA0D;AAoCxD,+BApCK,8BAAoB,CAoCL;AAjCtB,iDAAmC;AAUjC,wBAAM;AATR,2DAA6C;AAgB3C,kCAAW"}
@@ -4,6 +4,8 @@ import { ViewportInput } from '../types/IViewport';
4
4
  declare class StackViewport extends Viewport implements IStackViewport {
5
5
  private imageIds;
6
6
  private currentImageIdIndex;
7
+ private targetImageIdIndex;
8
+ private debouncedTimeout;
7
9
  private voiRange;
8
10
  private initialVOIRange;
9
11
  private invert;
@@ -25,6 +27,7 @@ declare class StackViewport extends Viewport implements IStackViewport {
25
27
  private scalingCache;
26
28
  constructor(props: ViewportInput);
27
29
  static get useCustomRenderingPipeline(): boolean;
30
+ private initializeElementDisabledHandler;
28
31
  resize: () => void;
29
32
  getImageData(): IImageData | CPUIImageData;
30
33
  private _resizeCPU;
@@ -34,7 +37,7 @@ declare class StackViewport extends Viewport implements IStackViewport {
34
37
  private createActorMapper;
35
38
  private buildMetadata;
36
39
  private calibrateIfNecessary;
37
- setProperties({ voiRange, invert, interpolationType, rotation, }?: StackViewportProperties): void;
40
+ setProperties({ voiRange, invert, interpolationType, rotation, }?: StackViewportProperties, suppressEvents?: boolean): void;
38
41
  getProperties: () => StackViewportProperties;
39
42
  resetProperties(): void;
40
43
  getCamera(): ICamera;
@@ -73,6 +76,7 @@ declare class StackViewport extends Viewport implements IStackViewport {
73
76
  resetCamera(resetPan?: boolean, resetZoom?: boolean): boolean;
74
77
  private resetCameraCPU;
75
78
  private resetCameraGPU;
79
+ scroll(delta: number, debounce?: boolean, loop?: boolean): void;
76
80
  setImageIdIndex(imageIdIndex: number): Promise<string>;
77
81
  calibrateSpacing(imageId: string): void;
78
82
  private _restoreCameraProps;
@@ -85,6 +89,7 @@ declare class StackViewport extends Viewport implements IStackViewport {
85
89
  private canvasToWorldGPU;
86
90
  private worldToCanvasGPU;
87
91
  getCurrentImageIdIndex: () => number;
92
+ getTargetImageIdIndex: () => number;
88
93
  getImageIds: () => Array<string>;
89
94
  getCurrentImageId: () => string;
90
95
  hasImageId: (imageId: string) => boolean;
@@ -25,6 +25,8 @@ import { Transform } from './helpers/cpuFallback/rendering/transform';
25
25
  import { getShouldUseCPURendering } from '../init';
26
26
  import RequestType from '../enums/RequestType';
27
27
  import getScalingParameters from '../utilities/getScalingParameters';
28
+ import cache from '../cache';
29
+ import correctShift from './helpers/cpuFallback/rendering/correctShift';
28
30
  const EPSILON = 1;
29
31
  class StackViewport extends Viewport {
30
32
  constructor(props) {
@@ -146,6 +148,9 @@ class StackViewport extends Viewport {
146
148
  this.getCurrentImageIdIndex = () => {
147
149
  return this.currentImageIdIndex;
148
150
  };
151
+ this.getTargetImageIdIndex = () => {
152
+ return this.targetImageIdIndex;
153
+ };
149
154
  this.getImageIds = () => {
150
155
  return this.imageIds;
151
156
  };
@@ -206,13 +211,21 @@ class StackViewport extends Viewport {
206
211
  }
207
212
  this.imageIds = [];
208
213
  this.currentImageIdIndex = 0;
214
+ this.targetImageIdIndex = 0;
209
215
  this.panCache = [0, 0, 0];
210
216
  this.cameraPosOnRender = [0, 0, 0];
211
217
  this.resetCamera();
218
+ this.initializeElementDisabledHandler();
212
219
  }
213
220
  static get useCustomRenderingPipeline() {
214
221
  return getShouldUseCPURendering();
215
222
  }
223
+ initializeElementDisabledHandler() {
224
+ eventTarget.addEventListener(Events.ELEMENT_DISABLED, function elementDisabledHandler() {
225
+ clearTimeout(this.debouncedTimeout);
226
+ eventTarget.removeEventListener(Events.ELEMENT_DISABLED, elementDisabledHandler);
227
+ });
228
+ }
216
229
  getImageData() {
217
230
  if (this.useCPURendering) {
218
231
  return this.getImageDataCPU();
@@ -354,9 +367,9 @@ class StackViewport extends Viewport {
354
367
  };
355
368
  return imagePlaneModule;
356
369
  }
357
- setProperties({ voiRange, invert, interpolationType, rotation, } = {}) {
370
+ setProperties({ voiRange, invert, interpolationType, rotation, } = {}, suppressEvents = false) {
358
371
  if (typeof voiRange !== 'undefined' || !this.voiApplied) {
359
- this.setVOI(voiRange);
372
+ this.setVOI(voiRange, suppressEvents);
360
373
  }
361
374
  if (typeof invert !== 'undefined') {
362
375
  this.setInvertColor(invert);
@@ -405,12 +418,13 @@ class StackViewport extends Viewport {
405
418
  });
406
419
  }
407
420
  _setPropertiesFromCache() {
421
+ const suppressEvents = true;
408
422
  this.setProperties({
409
423
  voiRange: this.voiRange,
410
424
  rotation: this.rotation,
411
425
  interpolationType: this.interpolationType,
412
426
  invert: this.invert,
413
- });
427
+ }, suppressEvents);
414
428
  }
415
429
  getCameraCPU() {
416
430
  const { metadata, viewport } = this._cpuFallbackEnabledElement;
@@ -421,45 +435,69 @@ class StackViewport extends Viewport {
421
435
  const rotationMatrix = mat4.fromRotation(mat4.create(), (this.rotation * Math.PI) / 180, viewPlaneNormal);
422
436
  viewUp = vec3.transformMat4(vec3.create(), viewUp, rotationMatrix);
423
437
  }
438
+ const canvasCenter = [
439
+ this.element.clientWidth / 2,
440
+ this.element.clientHeight / 2,
441
+ ];
442
+ const canvasCenterWorld = this.canvasToWorld(canvasCenter);
443
+ const topLeftWorld = this.canvasToWorld([0, 0]);
444
+ const bottomLeftWorld = this.canvasToWorld([0, this.element.clientHeight]);
445
+ const parallelScale = vec3.distance(topLeftWorld, bottomLeftWorld) / 2;
424
446
  return {
425
447
  parallelProjection: true,
426
- focalPoint: [0, 0, 0],
448
+ focalPoint: canvasCenterWorld,
427
449
  position: [0, 0, 0],
428
- parallelScale: viewport.scale,
450
+ parallelScale,
451
+ scale: viewport.scale,
429
452
  viewPlaneNormal: [
430
453
  viewPlaneNormal[0],
431
454
  viewPlaneNormal[1],
432
455
  viewPlaneNormal[2],
433
456
  ],
434
457
  viewUp: [viewUp[0], viewUp[1], viewUp[2]],
458
+ flipHorizontal: this.flipHorizontal,
459
+ flipVertical: this.flipVertical,
435
460
  };
436
461
  }
437
462
  setCameraCPU(cameraInterface) {
438
- const { viewport } = this._cpuFallbackEnabledElement;
463
+ const { viewport, image } = this._cpuFallbackEnabledElement;
439
464
  const previousCamera = this.getCameraCPU();
440
- const { focalPoint, viewUp, parallelScale, flipHorizontal, flipVertical } = cameraInterface;
465
+ const { focalPoint, viewUp, parallelScale, scale, flipHorizontal, flipVertical, } = cameraInterface;
466
+ const { clientHeight } = this.element;
441
467
  if (focalPoint) {
442
- const focalPointCanvas = this.worldToCanvasCPU(cameraInterface.focalPoint);
443
- const previousFocalPointCanvas = this.worldToCanvasCPU(previousCamera.focalPoint);
444
- const deltaCanvas = vec2.create();
445
- vec2.subtract(deltaCanvas, vec2.fromValues(previousFocalPointCanvas[0], previousFocalPointCanvas[1]), vec2.fromValues(focalPointCanvas[0], focalPointCanvas[1]));
446
- viewport.translation.x += deltaCanvas[0] / previousCamera.parallelScale;
447
- viewport.translation.y += deltaCanvas[1] / previousCamera.parallelScale;
448
- }
449
- if (parallelScale && previousCamera.parallelScale !== parallelScale) {
450
- const diff = previousCamera.parallelScale - parallelScale;
451
- viewport.scale += diff;
452
- }
453
- if (flipHorizontal || flipVertical) {
468
+ const focalPointCanvas = this.worldToCanvasCPU(focalPoint);
469
+ const focalPointPixel = canvasToPixel(this._cpuFallbackEnabledElement, focalPointCanvas);
470
+ const prevFocalPointCanvas = this.worldToCanvasCPU(previousCamera.focalPoint);
471
+ const prevFocalPointPixel = canvasToPixel(this._cpuFallbackEnabledElement, prevFocalPointCanvas);
472
+ const deltaPixel = vec2.create();
473
+ vec2.subtract(deltaPixel, vec2.fromValues(focalPointPixel[0], focalPointPixel[1]), vec2.fromValues(prevFocalPointPixel[0], prevFocalPointPixel[1]));
474
+ const shift = correctShift({ x: deltaPixel[0], y: deltaPixel[1] }, viewport);
475
+ viewport.translation.x -= shift.x;
476
+ viewport.translation.y -= shift.y;
477
+ }
478
+ if (parallelScale) {
479
+ const { rowPixelSpacing } = image;
480
+ const scale = (clientHeight * rowPixelSpacing * 0.5) / parallelScale;
481
+ viewport.scale = scale;
482
+ viewport.parallelScale = parallelScale;
483
+ }
484
+ if (scale) {
485
+ const { rowPixelSpacing } = image;
486
+ viewport.scale = scale;
487
+ viewport.parallelScale = (clientHeight * rowPixelSpacing * 0.5) / scale;
488
+ }
489
+ if (flipHorizontal !== undefined || flipVertical !== undefined) {
454
490
  this.setFlipCPU({ flipHorizontal, flipVertical });
455
491
  }
492
+ this._cpuFallbackEnabledElement.transform = calculateTransform(this._cpuFallbackEnabledElement);
456
493
  const updatedCamera = {
457
494
  ...previousCamera,
458
495
  focalPoint,
459
496
  viewUp,
460
- parallelScale,
461
497
  flipHorizontal,
462
498
  flipVertical,
499
+ parallelScale: viewport.parallelScale,
500
+ scale: viewport.scale,
463
501
  };
464
502
  const eventDetail = {
465
503
  previousCamera,
@@ -478,12 +516,12 @@ class StackViewport extends Viewport {
478
516
  viewport.vflip = flipVertical;
479
517
  this.flipVertical = viewport.vflip;
480
518
  }
481
- setVOI(voiRange) {
519
+ setVOI(voiRange, suppressEvents) {
482
520
  if (this.useCPURendering) {
483
- this.setVOICPU(voiRange);
521
+ this.setVOICPU(voiRange, suppressEvents);
484
522
  return;
485
523
  }
486
- this.setVOIGPU(voiRange);
524
+ this.setVOIGPU(voiRange, suppressEvents);
487
525
  }
488
526
  setRotation(rotationCache, rotation) {
489
527
  const previousCamera = this.getCamera();
@@ -577,7 +615,7 @@ class StackViewport extends Viewport {
577
615
  }
578
616
  this.invert = invert;
579
617
  }
580
- setVOICPU(voiRange) {
618
+ setVOICPU(voiRange, suppressEvents) {
581
619
  const { viewport, image } = this._cpuFallbackEnabledElement;
582
620
  if (!viewport || !image) {
583
621
  return;
@@ -611,9 +649,11 @@ class StackViewport extends Viewport {
611
649
  viewportId: this.id,
612
650
  range: voiRange,
613
651
  };
614
- triggerEvent(this.element, Events.VOI_MODIFIED, eventDetail);
652
+ if (!suppressEvents) {
653
+ triggerEvent(this.element, Events.VOI_MODIFIED, eventDetail);
654
+ }
615
655
  }
616
- setVOIGPU(voiRange) {
656
+ setVOIGPU(voiRange, suppressEvents) {
617
657
  const defaultActor = this.getDefaultActor();
618
658
  if (!defaultActor) {
619
659
  return;
@@ -640,7 +680,9 @@ class StackViewport extends Viewport {
640
680
  viewportId: this.id,
641
681
  range: voiRange,
642
682
  };
643
- triggerEvent(this.element, Events.VOI_MODIFIED, eventDetail);
683
+ if (!suppressEvents) {
684
+ triggerEvent(this.element, Events.VOI_MODIFIED, eventDetail);
685
+ }
644
686
  }
645
687
  _addScalingToViewport(imageIdScalingFactor) {
646
688
  if (!this.scaling.PET) {
@@ -745,6 +787,7 @@ class StackViewport extends Viewport {
745
787
  async setStack(imageIds, currentImageIdIndex = 0) {
746
788
  this.imageIds = imageIds;
747
789
  this.currentImageIdIndex = currentImageIdIndex;
790
+ this.targetImageIdIndex = currentImageIdIndex;
748
791
  this.stackInvalidated = true;
749
792
  this.scalingCache = {};
750
793
  this.rotationCache = 0;
@@ -758,6 +801,13 @@ class StackViewport extends Viewport {
758
801
  delete this._cpuFallbackEnabledElement.viewport.colormap;
759
802
  }
760
803
  const imageId = await this._setImageIdIndex(currentImageIdIndex);
804
+ const eventDetail = {
805
+ imageIds,
806
+ viewportId: this.id,
807
+ element: this.element,
808
+ currentImageIdIndex: currentImageIdIndex,
809
+ };
810
+ triggerEvent(eventTarget, Events.STACK_VIEWPORT_NEW_STACK, eventDetail);
761
811
  return imageId;
762
812
  }
763
813
  _checkVTKImageDataMatchesCornerstoneImage(image, imageData) {
@@ -1046,10 +1096,51 @@ class StackViewport extends Viewport {
1046
1096
  return;
1047
1097
  }
1048
1098
  resetCamera(this._cpuFallbackEnabledElement, resetPan, resetZoom);
1099
+ const { scale } = this._cpuFallbackEnabledElement.viewport;
1100
+ const { clientWidth, clientHeight } = this.element;
1101
+ const center = [clientWidth / 2, clientHeight / 2];
1102
+ const centerWorld = this.canvasToWorldCPU(center);
1103
+ this.setCameraCPU({
1104
+ focalPoint: centerWorld,
1105
+ scale,
1106
+ });
1049
1107
  }
1050
1108
  resetCameraGPU(resetPan, resetZoom) {
1051
1109
  return super.resetCamera(resetPan, resetZoom);
1052
1110
  }
1111
+ scroll(delta, debounce = true, loop = false) {
1112
+ const imageIds = this.imageIds;
1113
+ const currentTargetImageIdIndex = this.targetImageIdIndex;
1114
+ const numberOfFrames = imageIds.length;
1115
+ let newTargetImageIdIndex = currentTargetImageIdIndex + delta;
1116
+ newTargetImageIdIndex = Math.max(0, newTargetImageIdIndex);
1117
+ if (loop) {
1118
+ newTargetImageIdIndex = newTargetImageIdIndex % numberOfFrames;
1119
+ }
1120
+ else {
1121
+ newTargetImageIdIndex = Math.min(numberOfFrames - 1, newTargetImageIdIndex);
1122
+ }
1123
+ this.targetImageIdIndex = newTargetImageIdIndex;
1124
+ const targetImageId = imageIds[newTargetImageIdIndex];
1125
+ const imageAlreadyLoaded = cache.isImageIdCached(targetImageId);
1126
+ if (imageAlreadyLoaded || !debounce) {
1127
+ this.setImageIdIndex(newTargetImageIdIndex);
1128
+ }
1129
+ else {
1130
+ clearTimeout(this.debouncedTimeout);
1131
+ this.debouncedTimeout = window.setTimeout(() => {
1132
+ this.setImageIdIndex(newTargetImageIdIndex);
1133
+ }, 40);
1134
+ }
1135
+ const eventData = {
1136
+ newImageIdIndex: newTargetImageIdIndex,
1137
+ imageId: targetImageId,
1138
+ direction: delta,
1139
+ };
1140
+ if (newTargetImageIdIndex !== currentTargetImageIdIndex) {
1141
+ triggerEvent(this.element, Events.STACK_VIEWPORT_SCROLL, eventData);
1142
+ }
1143
+ }
1053
1144
  async setImageIdIndex(imageIdIndex) {
1054
1145
  if (this.currentImageIdIndex === imageIdIndex) {
1055
1146
  return;