@cornerstonejs/core 1.22.0 → 1.23.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 (111) hide show
  1. package/dist/cjs/RenderingEngine/StackViewport.js +8 -3
  2. package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
  3. package/dist/cjs/RenderingEngine/Viewport.d.ts +3 -1
  4. package/dist/cjs/RenderingEngine/Viewport.js +65 -24
  5. package/dist/cjs/RenderingEngine/Viewport.js.map +1 -1
  6. package/dist/cjs/RenderingEngine/VolumeViewport.d.ts +1 -1
  7. package/dist/cjs/RenderingEngine/VolumeViewport.js +4 -4
  8. package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
  9. package/dist/cjs/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  10. package/dist/cjs/RenderingEngine/VolumeViewport3D.js +7 -0
  11. package/dist/cjs/RenderingEngine/VolumeViewport3D.js.map +1 -1
  12. package/dist/cjs/cache/classes/ImageVolume.js +1 -1
  13. package/dist/cjs/cache/classes/ImageVolume.js.map +1 -1
  14. package/dist/cjs/cache/classes/Surface.d.ts +22 -0
  15. package/dist/cjs/cache/classes/Surface.js +32 -0
  16. package/dist/cjs/cache/classes/Surface.js.map +1 -0
  17. package/dist/cjs/enums/Events.d.ts +2 -1
  18. package/dist/cjs/enums/Events.js +1 -0
  19. package/dist/cjs/enums/Events.js.map +1 -1
  20. package/dist/cjs/enums/GeometryType.d.ts +2 -1
  21. package/dist/cjs/enums/GeometryType.js +1 -0
  22. package/dist/cjs/enums/GeometryType.js.map +1 -1
  23. package/dist/cjs/loaders/geometryLoader.d.ts +2 -2
  24. package/dist/cjs/loaders/geometryLoader.js +6 -37
  25. package/dist/cjs/loaders/geometryLoader.js.map +1 -1
  26. package/dist/cjs/loaders/utils/contourSet/createContourSet.d.ts +2 -0
  27. package/dist/cjs/loaders/utils/contourSet/createContourSet.js +25 -0
  28. package/dist/cjs/loaders/utils/contourSet/createContourSet.js.map +1 -0
  29. package/dist/cjs/loaders/utils/contourSet/validateContourSet.d.ts +2 -0
  30. package/dist/cjs/loaders/utils/contourSet/validateContourSet.js +26 -0
  31. package/dist/cjs/loaders/utils/contourSet/validateContourSet.js.map +1 -0
  32. package/dist/cjs/loaders/utils/surface/createSurface.d.ts +2 -0
  33. package/dist/cjs/loaders/utils/surface/createSurface.js +27 -0
  34. package/dist/cjs/loaders/utils/surface/createSurface.js.map +1 -0
  35. package/dist/cjs/loaders/utils/surface/validateSurface.d.ts +2 -0
  36. package/dist/cjs/loaders/utils/surface/validateSurface.js +11 -0
  37. package/dist/cjs/loaders/utils/surface/validateSurface.js.map +1 -0
  38. package/dist/cjs/types/IActor.d.ts +1 -0
  39. package/dist/cjs/types/IGeometry.d.ts +2 -1
  40. package/dist/cjs/types/SurfaceData.d.ts +12 -0
  41. package/dist/cjs/types/SurfaceData.js +3 -0
  42. package/dist/cjs/types/SurfaceData.js.map +1 -0
  43. package/dist/cjs/types/index.d.ts +2 -1
  44. package/dist/cjs/utilities/getSpacingInNormalDirection.d.ts +5 -1
  45. package/dist/cjs/utilities/getSpacingInNormalDirection.js.map +1 -1
  46. package/dist/esm/RenderingEngine/StackViewport.js +8 -3
  47. package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
  48. package/dist/esm/RenderingEngine/Viewport.d.ts +3 -1
  49. package/dist/esm/RenderingEngine/Viewport.js +45 -15
  50. package/dist/esm/RenderingEngine/Viewport.js.map +1 -1
  51. package/dist/esm/RenderingEngine/VolumeViewport.d.ts +1 -1
  52. package/dist/esm/RenderingEngine/VolumeViewport.js +5 -5
  53. package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
  54. package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  55. package/dist/esm/RenderingEngine/VolumeViewport3D.js +7 -0
  56. package/dist/esm/RenderingEngine/VolumeViewport3D.js.map +1 -1
  57. package/dist/esm/cache/classes/ImageVolume.js +1 -1
  58. package/dist/esm/cache/classes/ImageVolume.js.map +1 -1
  59. package/dist/esm/cache/classes/Surface.d.ts +22 -0
  60. package/dist/esm/cache/classes/Surface.js +27 -0
  61. package/dist/esm/cache/classes/Surface.js.map +1 -0
  62. package/dist/esm/enums/Events.d.ts +2 -1
  63. package/dist/esm/enums/Events.js +1 -0
  64. package/dist/esm/enums/Events.js.map +1 -1
  65. package/dist/esm/enums/GeometryType.d.ts +2 -1
  66. package/dist/esm/enums/GeometryType.js +1 -0
  67. package/dist/esm/enums/GeometryType.js.map +1 -1
  68. package/dist/esm/loaders/geometryLoader.d.ts +2 -2
  69. package/dist/esm/loaders/geometryLoader.js +6 -37
  70. package/dist/esm/loaders/geometryLoader.js.map +1 -1
  71. package/dist/esm/loaders/utils/contourSet/createContourSet.d.ts +2 -0
  72. package/dist/esm/loaders/utils/contourSet/createContourSet.js +21 -0
  73. package/dist/esm/loaders/utils/contourSet/createContourSet.js.map +1 -0
  74. package/dist/esm/loaders/utils/contourSet/validateContourSet.d.ts +2 -0
  75. package/dist/esm/loaders/utils/contourSet/validateContourSet.js +22 -0
  76. package/dist/esm/loaders/utils/contourSet/validateContourSet.js.map +1 -0
  77. package/dist/esm/loaders/utils/surface/createSurface.d.ts +2 -0
  78. package/dist/esm/loaders/utils/surface/createSurface.js +23 -0
  79. package/dist/esm/loaders/utils/surface/createSurface.js.map +1 -0
  80. package/dist/esm/loaders/utils/surface/validateSurface.d.ts +2 -0
  81. package/dist/esm/loaders/utils/surface/validateSurface.js +7 -0
  82. package/dist/esm/loaders/utils/surface/validateSurface.js.map +1 -0
  83. package/dist/esm/types/IActor.d.ts +1 -0
  84. package/dist/esm/types/IGeometry.d.ts +2 -1
  85. package/dist/esm/types/SurfaceData.d.ts +12 -0
  86. package/dist/esm/types/SurfaceData.js +2 -0
  87. package/dist/esm/types/SurfaceData.js.map +1 -0
  88. package/dist/esm/types/index.d.ts +2 -1
  89. package/dist/esm/utilities/getSpacingInNormalDirection.d.ts +5 -1
  90. package/dist/esm/utilities/getSpacingInNormalDirection.js.map +1 -1
  91. package/dist/umd/index.js +1 -1
  92. package/dist/umd/index.js.map +1 -1
  93. package/package.json +3 -3
  94. package/src/RenderingEngine/StackViewport.ts +8 -3
  95. package/src/RenderingEngine/Viewport.ts +57 -17
  96. package/src/RenderingEngine/VolumeViewport.ts +9 -11
  97. package/src/RenderingEngine/VolumeViewport3D.ts +8 -0
  98. package/src/cache/classes/ImageVolume.ts +1 -1
  99. package/src/cache/classes/Surface.ts +49 -0
  100. package/src/enums/Events.ts +5 -0
  101. package/src/enums/GeometryType.ts +1 -0
  102. package/src/loaders/geometryLoader.ts +13 -63
  103. package/src/loaders/utils/contourSet/createContourSet.ts +29 -0
  104. package/src/loaders/utils/contourSet/validateContourSet.ts +38 -0
  105. package/src/loaders/utils/surface/createSurface.ts +31 -0
  106. package/src/loaders/utils/surface/validateSurface.ts +9 -0
  107. package/src/types/IActor.ts +2 -0
  108. package/src/types/IGeometry.ts +2 -1
  109. package/src/types/SurfaceData.ts +15 -0
  110. package/src/types/index.ts +4 -0
  111. package/src/utilities/getSpacingInNormalDirection.ts +2 -2
@@ -7,6 +7,7 @@ declare class VolumeViewport3D extends BaseVolumeViewport {
7
7
  getRotation: () => number;
8
8
  getCurrentImageIdIndex: () => number | undefined;
9
9
  getCurrentImageId: () => string;
10
+ posProcessNewActors(): void;
10
11
  setSlabThickness(slabThickness: number, filterActorUIDs?: Array<string>): void;
11
12
  setBlendMode(blendMode: BlendModes, filterActorUIDs?: string[], immediate?: boolean): void;
12
13
  resetProperties(volumeId?: string): void;
@@ -24,6 +24,13 @@ class VolumeViewport3D extends BaseVolumeViewport {
24
24
  this.resetVolumeViewportClippingRange();
25
25
  return;
26
26
  }
27
+ posProcessNewActors() {
28
+ if (this.newActorAdded) {
29
+ const renderer = this.getRenderer();
30
+ renderer.resetCameraClippingRange();
31
+ }
32
+ super.posProcessNewActors();
33
+ }
27
34
  setSlabThickness(slabThickness, filterActorUIDs) {
28
35
  return null;
29
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VolumeViewport3D.js","sourceRoot":"","sources":["../../../src/RenderingEngine/VolumeViewport3D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAStD,MAAM,gBAAiB,SAAQ,kBAAkB;IAC/C,YAAY,KAAoB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAyBf,gBAAW,GAAG,GAAW,EAAE,CAAC,CAAC,CAAC;QAE9B,2BAAsB,GAAG,GAAuB,EAAE;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,sBAAiB,GAAG,GAAW,EAAE;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QA/BA,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEzD,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE/C,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAC9B,YAAY,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;SACxD;QAED,IAAI,WAAW,IAAI,WAAW,KAAK,eAAe,CAAC,WAAW,EAAE;YAC9D,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;SACxC;IACH,CAAC;IAEM,WAAW,CAChB,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,IAAI,EAChB,aAAa,GAAG,IAAI;QAEpB,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAYD,gBAAgB,CACd,aAAqB,EACrB,eAA+B;QAE/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CACV,SAAqB,EACrB,eAA0B,EAC1B,SAAmB;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,QAAiB;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"VolumeViewport3D.js","sourceRoot":"","sources":["../../../src/RenderingEngine/VolumeViewport3D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAStD,MAAM,gBAAiB,SAAQ,kBAAkB;IAC/C,YAAY,KAAoB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAyBf,gBAAW,GAAG,GAAW,EAAE,CAAC,CAAC,CAAC;QAE9B,2BAAsB,GAAG,GAAuB,EAAE;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,sBAAiB,GAAG,GAAW,EAAE;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QA/BA,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEzD,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE/C,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAC9B,YAAY,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;SACxD;QAED,IAAI,WAAW,IAAI,WAAW,KAAK,eAAe,CAAC,WAAW,EAAE;YAC9D,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;SACxC;IACH,CAAC;IAEM,WAAW,CAChB,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,IAAI,EAChB,aAAa,GAAG,IAAI;QAEpB,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAYD,mBAAmB;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,QAAQ,CAAC,wBAAwB,EAAE,CAAC;SACrC;QACD,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAC9B,CAAC;IAED,gBAAgB,CACd,aAAqB,EACrB,eAA+B;QAE/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CACV,SAAqB,EACrB,eAA0B,EAC1B,SAAmB;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,QAAiB;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,eAAe,gBAAgB,CAAC"}
@@ -48,7 +48,7 @@ export class ImageVolume {
48
48
  if (isTypedArray(this.scalarData)) {
49
49
  return this.scalarData;
50
50
  }
51
- throw new Error('Unknow scalar data type');
51
+ throw new Error('Unknown scalar data type');
52
52
  }
53
53
  getImageIdIndex(imageId) {
54
54
  return this._imageIdsIndexMap.get(imageId);
@@ -1 +1 @@
1
- {"version":3,"file":"ImageVolume.js","sourceRoot":"","sources":["../../../../src/cache/classes/ImageVolume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageVolume.js","sourceRoot":"","sources":["../../../../src/cache/classes/ImageVolume.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { SurfaceData, Point3 } from '../../types';
2
+ declare type SurfaceProps = {
3
+ id: string;
4
+ data: SurfaceData;
5
+ frameOfReferenceUID: string;
6
+ color?: Point3;
7
+ };
8
+ export declare class Surface {
9
+ readonly id: string;
10
+ readonly sizeInBytes: number;
11
+ readonly frameOfReferenceUID: string;
12
+ private color;
13
+ private points;
14
+ private polys;
15
+ constructor(props: SurfaceProps);
16
+ _getSizeInBytes(): number;
17
+ getColor(): Point3;
18
+ getPoints(): number[];
19
+ getPolys(): number[];
20
+ getSizeInBytes(): number;
21
+ }
22
+ export {};
@@ -0,0 +1,27 @@
1
+ export class Surface {
2
+ constructor(props) {
3
+ this.color = [200, 0, 0];
4
+ this.id = props.id;
5
+ this.points = props.data.points;
6
+ this.polys = props.data.polys;
7
+ this.color = props.color ?? this.color;
8
+ this.frameOfReferenceUID = props.frameOfReferenceUID;
9
+ this.sizeInBytes = this._getSizeInBytes();
10
+ }
11
+ _getSizeInBytes() {
12
+ return this.points.length * 4 + this.polys.length * 4;
13
+ }
14
+ getColor() {
15
+ return this.color;
16
+ }
17
+ getPoints() {
18
+ return this.points;
19
+ }
20
+ getPolys() {
21
+ return this.polys;
22
+ }
23
+ getSizeInBytes() {
24
+ return this.sizeInBytes;
25
+ }
26
+ }
27
+ //# sourceMappingURL=Surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Surface.js","sourceRoot":"","sources":["../../../../src/cache/classes/Surface.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,OAAO;IAQlB,YAAY,KAAmB;QAJvB,UAAK,GAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAKlC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
@@ -27,6 +27,7 @@ declare enum Events {
27
27
  STACK_VIEWPORT_NEW_STACK = "CORNERSTONE_STACK_VIEWPORT_NEW_STACK",
28
28
  STACK_VIEWPORT_SCROLL = "CORNERSTONE_STACK_VIEWPORT_SCROLL",
29
29
  GEOMETRY_CACHE_GEOMETRY_ADDED = "CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_ADDED",
30
- VOLUME_SCROLL_OUT_OF_BOUNDS = "CORNERSTONE_VOLUME_SCROLL_OUT_OF_BOUNDS"
30
+ VOLUME_SCROLL_OUT_OF_BOUNDS = "CORNERSTONE_VOLUME_SCROLL_OUT_OF_BOUNDS",
31
+ CLIPPING_PLANES_UPDATED = "CORNERSTONE_CLIPPING_PLANES_UPDATED"
31
32
  }
32
33
  export default Events;
@@ -29,6 +29,7 @@ var Events;
29
29
  Events["STACK_VIEWPORT_SCROLL"] = "CORNERSTONE_STACK_VIEWPORT_SCROLL";
30
30
  Events["GEOMETRY_CACHE_GEOMETRY_ADDED"] = "CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_ADDED";
31
31
  Events["VOLUME_SCROLL_OUT_OF_BOUNDS"] = "CORNERSTONE_VOLUME_SCROLL_OUT_OF_BOUNDS";
32
+ Events["CLIPPING_PLANES_UPDATED"] = "CORNERSTONE_CLIPPING_PLANES_UPDATED";
32
33
  })(Events || (Events = {}));
33
34
  export default Events;
34
35
  //# sourceMappingURL=Events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":"AAGA,IAAK,MAmNJ;AAnND,WAAK,MAAM;IAST,qDAA2C,CAAA;IAK3C,+CAAqC,CAAA;IAQrC,yDAA+C,CAAA;IAO/C,mDAAyC,CAAA;IAOzC,mDAAyC,CAAA;IAOzC,qEAA2D,CAAA;IAO3D,2DAAiD,CAAA;IAOjD,yDAA+C,CAAA;IAO/C,uDAA6C,CAAA;IAS7C,qEAA2D,CAAA;IAS3D,uFAA6E,CAAA;IAO7E,mDAAyC,CAAA;IAOzC,6DAAmD,CAAA;IAInD,+EAAqE,CAAA;IAQrE,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;IAK3D,qFAA2E,CAAA;IAM3E,iFAAuE,CAAA;AAIzE,CAAC,EAnNI,MAAM,KAAN,MAAM,QAmNV;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":"AAGA,IAAK,MAwNJ;AAxND,WAAK,MAAM;IAST,qDAA2C,CAAA;IAK3C,+CAAqC,CAAA;IAQrC,yDAA+C,CAAA;IAO/C,mDAAyC,CAAA;IAOzC,mDAAyC,CAAA;IAOzC,qEAA2D,CAAA;IAO3D,2DAAiD,CAAA;IAOjD,yDAA+C,CAAA;IAO/C,uDAA6C,CAAA;IAS7C,qEAA2D,CAAA;IAS3D,uFAA6E,CAAA;IAO7E,mDAAyC,CAAA;IAOzC,6DAAmD,CAAA;IAInD,+EAAqE,CAAA;IAQrE,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;IAK3D,qFAA2E,CAAA;IAM3E,iFAAuE,CAAA;IAKvE,yEAA+D,CAAA;AAIjE,CAAC,EAxNI,MAAM,KAAN,MAAM,QAwNV;AAED,eAAe,MAAM,CAAC"}
@@ -1,4 +1,5 @@
1
1
  declare enum GeometryType {
2
- CONTOUR = "contour"
2
+ CONTOUR = "contour",
3
+ SURFACE = "Surface"
3
4
  }
4
5
  export default GeometryType;
@@ -1,6 +1,7 @@
1
1
  var GeometryType;
2
2
  (function (GeometryType) {
3
3
  GeometryType["CONTOUR"] = "contour";
4
+ GeometryType["SURFACE"] = "Surface";
4
5
  })(GeometryType || (GeometryType = {}));
5
6
  export default GeometryType;
6
7
  //# sourceMappingURL=GeometryType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryType.js","sourceRoot":"","sources":["../../../src/enums/GeometryType.ts"],"names":[],"mappings":"AAAA,IAAK,YAEJ;AAFD,WAAK,YAAY;IACf,mCAAmB,CAAA;AACrB,CAAC,EAFI,YAAY,KAAZ,YAAY,QAEhB;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"GeometryType.js","sourceRoot":"","sources":["../../../src/enums/GeometryType.ts"],"names":[],"mappings":"AAAA,IAAK,YAGJ;AAHD,WAAK,YAAY;IACf,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;AACrB,CAAC,EAHI,YAAY,KAAZ,YAAY,QAGhB;AAED,eAAe,YAAY,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import '@kitware/vtk.js/Rendering/Profiles/Geometry';
2
2
  import { GeometryType } from '../enums';
3
- import { IGeometry, PublicContourSetData } from '../types';
3
+ import { IGeometry, PublicContourSetData, PublicSurfaceData } from '../types';
4
4
  declare type GeometryOptions = {
5
5
  type: GeometryType;
6
- geometryData: PublicContourSetData;
6
+ geometryData: PublicContourSetData | PublicSurfaceData;
7
7
  };
8
8
  declare function createAndCacheGeometry(geometryId: string, options: GeometryOptions): Promise<IGeometry>;
9
9
  export { createAndCacheGeometry };
@@ -1,14 +1,18 @@
1
1
  import '@kitware/vtk.js/Rendering/Profiles/Geometry';
2
2
  import cache from '../cache';
3
- import { ContourSet } from '../cache/classes/ContourSet';
4
3
  import { GeometryType } from '../enums';
4
+ import { createContourSet } from './utils/contourSet/createContourSet';
5
+ import { createSurface } from './utils/surface/createSurface';
5
6
  async function createAndCacheGeometry(geometryId, options) {
6
7
  let geometry = cache.getGeometry(geometryId);
7
8
  if (geometry) {
8
9
  return geometry;
9
10
  }
10
11
  if (options.type === GeometryType.CONTOUR) {
11
- geometry = _createContourSet(geometryId, options.geometryData);
12
+ geometry = createContourSet(geometryId, options.geometryData);
13
+ }
14
+ else if (options.type === GeometryType.SURFACE) {
15
+ geometry = createSurface(geometryId, options.geometryData);
12
16
  }
13
17
  else {
14
18
  throw new Error('Unknown geometry type, Only CONTOUR is supported');
@@ -19,40 +23,5 @@ async function createAndCacheGeometry(geometryId, options) {
19
23
  await cache.putGeometryLoadObject(geometryId, geometryLoadObject);
20
24
  return geometry;
21
25
  }
22
- function _createContourSet(geometryId, contourSetData) {
23
- if (!contourSetData || contourSetData.data.length === 0) {
24
- throw new Error('Invalid contour set data, see publicContourSetData type for more info');
25
- }
26
- if (!contourSetData.id) {
27
- throw new Error('Invalid contour set data, each contour set must have an id');
28
- }
29
- if (!contourSetData.data || !Array.isArray(contourSetData.data)) {
30
- throw new Error('Invalid contour set data, each contour set must have an array of contours');
31
- }
32
- contourSetData.data.forEach((contourData) => {
33
- if (!contourData.points || !Array.isArray(contourData.points)) {
34
- throw new Error('Invalid contour set data, each contour must have an array of points');
35
- }
36
- contourData.points.forEach((point) => {
37
- if (!point || !Array.isArray(point) || point.length !== 3) {
38
- throw new Error('Invalid contour set data, each point must be an array of length 3');
39
- }
40
- });
41
- });
42
- const contourSet = new ContourSet({
43
- id: contourSetData.id,
44
- data: contourSetData.data,
45
- color: contourSetData.color,
46
- frameOfReferenceUID: contourSetData.frameOfReferenceUID,
47
- segmentIndex: contourSetData.segmentIndex,
48
- });
49
- const geometry = {
50
- id: geometryId,
51
- type: GeometryType.CONTOUR,
52
- data: contourSet,
53
- sizeInBytes: contourSet.getSizeInBytes(),
54
- };
55
- return geometry;
56
- }
57
26
  export { createAndCacheGeometry };
58
27
  //# sourceMappingURL=geometryLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"geometryLoader.js","sourceRoot":"","sources":["../../../src/loaders/geometryLoader.ts"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AAErD,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAoBxC,KAAK,UAAU,sBAAsB,CACnC,UAAkB,EAClB,OAAwB;IAExB,IAAI,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE7C,IAAI,QAAQ,EAAE;QACZ,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,EAAE;QACzC,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;KAChE;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,MAAM,kBAAkB,GAAG;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnC,CAAC;IAEF,MAAM,KAAK,CAAC,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAElE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAGD,SAAS,iBAAiB,CACxB,UAAkB,EAClB,cAAoC;IAGpC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACvD,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;KACH;IAGD,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;KACH;IAED,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QAC/D,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;KACH;IAED,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QAC1C,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;SACH;QAED,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzD,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;QAChC,EAAE,EAAE,cAAc,CAAC,EAAE;QACrB,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,mBAAmB,EAAE,cAAc,CAAC,mBAAmB;QACvD,YAAY,EAAE,cAAc,CAAC,YAAY;KAC1C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAc;QAC1B,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,YAAY,CAAC,OAAO;QAC1B,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU,CAAC,cAAc,EAAE;KACzC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"geometryLoader.js","sourceRoot":"","sources":["../../../src/loaders/geometryLoader.ts"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AAErD,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAmB9D,KAAK,UAAU,sBAAsB,CACnC,UAAkB,EAClB,OAAwB;IAExB,IAAI,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE7C,IAAI,QAAQ,EAAE;QACZ,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,EAAE;QACzC,QAAQ,GAAG,gBAAgB,CACzB,UAAU,EACV,OAAO,CAAC,YAAoC,CAC7C,CAAC;KACH;SAAM,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,EAAE;QAChD,QAAQ,GAAG,aAAa,CACtB,UAAU,EACV,OAAO,CAAC,YAAiC,CAC1C,CAAC;KACH;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,MAAM,kBAAkB,GAAG;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnC,CAAC;IAEF,MAAM,KAAK,CAAC,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAElE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { IGeometry, PublicContourSetData } from '../../../types';
2
+ export declare function createContourSet(geometryId: string, contourSetData: PublicContourSetData): IGeometry;
@@ -0,0 +1,21 @@
1
+ import { GeometryType } from '../../../enums';
2
+ import { validateContourSet } from './validateContourSet';
3
+ import { ContourSet } from '../../../cache/classes/ContourSet';
4
+ export function createContourSet(geometryId, contourSetData) {
5
+ validateContourSet(contourSetData);
6
+ const contourSet = new ContourSet({
7
+ id: contourSetData.id,
8
+ data: contourSetData.data,
9
+ color: contourSetData.color,
10
+ frameOfReferenceUID: contourSetData.frameOfReferenceUID,
11
+ segmentIndex: 1,
12
+ });
13
+ const geometry = {
14
+ id: geometryId,
15
+ type: GeometryType.CONTOUR,
16
+ data: contourSet,
17
+ sizeInBytes: contourSet.getSizeInBytes(),
18
+ };
19
+ return geometry;
20
+ }
21
+ //# sourceMappingURL=createContourSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createContourSet.js","sourceRoot":"","sources":["../../../../../src/loaders/utils/contourSet/createContourSet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,cAAoC;IAGpC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;QAChC,EAAE,EAAE,cAAc,CAAC,EAAE;QACrB,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,mBAAmB,EAAE,cAAc,CAAC,mBAAmB;QACvD,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAc;QAC1B,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,YAAY,CAAC,OAAO;QAC1B,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU,CAAC,cAAc,EAAE;KACzC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PublicContourSetData } from '../../../types';
2
+ export declare function validateContourSet(contourSetData: PublicContourSetData): void;
@@ -0,0 +1,22 @@
1
+ export function validateContourSet(contourSetData) {
2
+ if (!contourSetData || contourSetData.data.length === 0) {
3
+ throw new Error('Invalid contour set data, see publicContourSetData type for more info');
4
+ }
5
+ if (!contourSetData.id) {
6
+ throw new Error('Invalid contour set data, each contour set must have an id');
7
+ }
8
+ if (!contourSetData.data || !Array.isArray(contourSetData.data)) {
9
+ throw new Error('Invalid contour set data, each contour set must have an array of contours');
10
+ }
11
+ contourSetData.data.forEach((contourData) => {
12
+ if (!contourData.points || !Array.isArray(contourData.points)) {
13
+ throw new Error('Invalid contour set data, each contour must have an array of points');
14
+ }
15
+ contourData.points.forEach((point) => {
16
+ if (!point || !Array.isArray(point) || point.length !== 3) {
17
+ throw new Error('Invalid contour set data, each point must be an array of length 3');
18
+ }
19
+ });
20
+ });
21
+ }
22
+ //# sourceMappingURL=validateContourSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateContourSet.js","sourceRoot":"","sources":["../../../../../src/loaders/utils/contourSet/validateContourSet.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,cAAoC;IACrE,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACvD,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;KACH;IAGD,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;KACH;IAED,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QAC/D,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;KACH;IAED,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QAC1C,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;SACH;QAED,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzD,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { IGeometry, PublicSurfaceData } from '../../../types';
2
+ export declare function createSurface(geometryId: string, SurfaceData: PublicSurfaceData): IGeometry;
@@ -0,0 +1,23 @@
1
+ import { GeometryType } from '../../../enums';
2
+ import { validateSurface } from './validateSurface';
3
+ import { Surface } from '../../../cache/classes/Surface';
4
+ export function createSurface(geometryId, SurfaceData) {
5
+ validateSurface(SurfaceData);
6
+ const surface = new Surface({
7
+ id: SurfaceData.id,
8
+ color: SurfaceData.color,
9
+ frameOfReferenceUID: SurfaceData.frameOfReferenceUID,
10
+ data: {
11
+ points: SurfaceData.data.points,
12
+ polys: SurfaceData.data.polys,
13
+ },
14
+ });
15
+ const geometry = {
16
+ id: geometryId,
17
+ type: GeometryType.SURFACE,
18
+ data: surface,
19
+ sizeInBytes: surface.getSizeInBytes(),
20
+ };
21
+ return geometry;
22
+ }
23
+ //# sourceMappingURL=createSurface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSurface.js","sourceRoot":"","sources":["../../../../../src/loaders/utils/surface/createSurface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,WAA8B;IAG9B,eAAe,CAAC,WAAW,CAAC,CAAC;IAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;QACpD,IAAI,EAAE;YACJ,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM;YAC/B,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK;SAC9B;KACF,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAc;QAC1B,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,YAAY,CAAC,OAAO;QAC1B,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE;KACtC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PublicSurfaceData } from '../../../types';
2
+ export declare function validateSurface(contourSetData: PublicSurfaceData): void;
@@ -0,0 +1,7 @@
1
+ export function validateSurface(contourSetData) {
2
+ const { data } = contourSetData;
3
+ if (!data.points || !data.polys) {
4
+ throw new Error('Invalid surface data');
5
+ }
6
+ }
7
+ //# sourceMappingURL=validateSurface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateSurface.js","sourceRoot":"","sources":["../../../../../src/loaders/utils/surface/validateSurface.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,cAAiC;IAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;IAEhC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;AACH,CAAC"}
@@ -9,4 +9,5 @@ export declare type ActorEntry = {
9
9
  actor: Actor | VolumeActor | ImageActor;
10
10
  referenceId?: string;
11
11
  slabThickness?: number;
12
+ clippingFilter?: any;
12
13
  };
@@ -1,9 +1,10 @@
1
+ import { Surface } from '../cache/classes/Surface';
1
2
  import { GeometryType } from '../enums';
2
3
  import { IContourSet } from './IContourSet';
3
4
  interface IGeometry {
4
5
  id: string;
5
6
  type: GeometryType;
6
- data: IContourSet;
7
+ data: IContourSet | Surface;
7
8
  sizeInBytes: number;
8
9
  }
9
10
  export default IGeometry;
@@ -0,0 +1,12 @@
1
+ import Point3 from './Point3';
2
+ declare type PublicSurfaceData = {
3
+ id: string;
4
+ data: SurfaceData;
5
+ frameOfReferenceUID: string;
6
+ color?: Point3;
7
+ };
8
+ declare type SurfaceData = {
9
+ points: number[];
10
+ polys: number[];
11
+ };
12
+ export type { PublicSurfaceData, SurfaceData };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SurfaceData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurfaceData.js","sourceRoot":"","sources":["../../../src/types/SurfaceData.ts"],"names":[],"mappings":""}
@@ -57,6 +57,7 @@ import type ActorSliceRange from './ActorSliceRange';
57
57
  import type ImageSliceData from './ImageSliceData';
58
58
  import type IGeometry from './IGeometry';
59
59
  import type { PublicContourSetData, ContourSetData, ContourData } from './ContourData';
60
+ import type { PublicSurfaceData, SurfaceData } from './SurfaceData';
60
61
  import type ICachedGeometry from './ICachedGeometry';
61
62
  import type { IContourSet } from './IContourSet';
62
63
  import type { IContour } from './IContour';
@@ -67,4 +68,4 @@ import type { PixelDataTypedArray } from './PixelDataTypedArray';
67
68
  import type { ImagePixelModule } from './ImagePixelModule';
68
69
  import type { ImagePlaneModule } from './ImagePlaneModule';
69
70
  import type { AffineMatrix } from './AffineMatrix';
70
- 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, IImageLoadObject, IVolumeLoadObject, IVolumeInput, VolumeInputCallback, ViewportPreset, Metadata, OrientationVectors, Point2, Point3, Point4, Mat3, Plane, ViewportInputOptions, VOIRange, VOI, DisplayArea, FlipDirection, ICachedImage, ICachedVolume, CPUFallbackEnabledElement, CPUFallbackViewport, CPUFallbackTransform, CPUFallbackColormapData, CPUFallbackViewportDisplayedArea, CPUFallbackColormapsData, CPUFallbackColormap, TransformMatrix2D, CPUFallbackLookupTable, CPUFallbackLUT, CPUFallbackRenderingTools, CustomEventType, ActorSliceRange, ImageSliceData, IGeometry, IGeometryLoadObject, ICachedGeometry, PublicContourSetData, ContourSetData, ContourData, IContourSet, IContour, RGB, ColormapPublic, ColormapRegistration, PixelDataTypedArray, ImagePixelModule, ImagePlaneModule, 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, 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, };
@@ -1,2 +1,6 @@
1
+ import { mat3 } from 'gl-matrix';
1
2
  import { IImageVolume, Point3 } from '../types';
2
- export default function getSpacingInNormalDirection(imageVolume: IImageVolume, viewPlaneNormal: Point3): number;
3
+ export default function getSpacingInNormalDirection(imageVolume: IImageVolume | {
4
+ direction: mat3;
5
+ spacing: Point3;
6
+ }, viewPlaneNormal: Point3): number;
@@ -1 +1 @@
1
- {"version":3,"file":"getSpacingInNormalDirection.js","sourceRoot":"","sources":["../../../src/utilities/getSpacingInNormalDirection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAcjC,MAAM,CAAC,OAAO,UAAU,2BAA2B,CACjD,WAAyB,EACzB,eAAuB;IAEvB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAG3C,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC;IAEhD,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAQ,eAAe,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAQ,eAAe,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAQ,eAAe,CAAC;KACzC,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAEvC,IAAI,CAAC,GAAG,CACN,gBAAgB,EAChB,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAC5B,CAAC;IAEF,MAAM,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE/D,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"getSpacingInNormalDirection.js","sourceRoot":"","sources":["../../../src/utilities/getSpacingInNormalDirection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,WAAW,CAAC;AAcvC,MAAM,CAAC,OAAO,UAAU,2BAA2B,CACjD,WAAgE,EAChE,eAAuB;IAEvB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAG3C,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAW,CAAC;IAEhD,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAQ,eAAe,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAQ,eAAe,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAQ,eAAe,CAAC;KACzC,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAEvC,IAAI,CAAC,GAAG,CACN,gBAAgB,EAChB,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAC5B,CAAC;IAEF,MAAM,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE/D,OAAO,wBAAwB,CAAC;AAClC,CAAC"}