@cornerstonejs/tools 0.32.0 → 0.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import { Types } from '@cornerstonejs/core';
2
+ export default function areViewportsCoplanar(viewport1: Types.IStackViewport, viewport2: Types.IStackViewport): boolean;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const gl_matrix_1 = require("gl-matrix");
4
+ function areViewportsCoplanar(viewport1, viewport2) {
5
+ const { viewPlaneNormal: viewPlaneNormal1 } = viewport1.getCamera();
6
+ const { viewPlaneNormal: viewPlaneNormal2 } = viewport2.getCamera();
7
+ const dotProducts = gl_matrix_1.vec3.dot(viewPlaneNormal1, viewPlaneNormal2);
8
+ return Math.abs(dotProducts) > 0.9;
9
+ }
10
+ exports.default = areViewportsCoplanar;
11
+ //# sourceMappingURL=areViewportsCoplanar%20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"areViewportsCoplanar .js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/areViewportsCoplanar .ts"],"names":[],"mappings":";;AAAA,yCAAiC;AAGjC,SAAwB,oBAAoB,CAC1C,SAA+B,EAC/B,SAA+B;IAE/B,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IACpE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IACpE,MAAM,WAAW,GAAG,gBAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;AACrC,CAAC;AARD,uCAQC"}
@@ -8,10 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  const gl_matrix_1 = require("gl-matrix");
13
16
  const core_1 = require("@cornerstonejs/core");
14
17
  const utilities_1 = require("../../utilities");
18
+ const areViewportsCoplanar_1 = __importDefault(require("./areViewportsCoplanar "));
15
19
  function stackImageSyncCallback(synchronizerInstance, sourceViewport, targetViewport) {
16
20
  return __awaiter(this, void 0, void 0, function* () {
17
21
  const renderingEngine = (0, core_1.getRenderingEngine)(targetViewport.renderingEngineId);
@@ -26,6 +30,9 @@ function stackImageSyncCallback(synchronizerInstance, sourceViewport, targetView
26
30
  const imagePlaneModule1 = core_1.metaData.get('imagePlaneModule', imageId1);
27
31
  const sourceImagePositionPatient = imagePlaneModule1.imagePositionPatient;
28
32
  const targetImageIds = tViewport.getImageIds();
33
+ if (!(0, areViewportsCoplanar_1.default)(sViewport, tViewport)) {
34
+ return;
35
+ }
29
36
  if (frameOfReferenceUID1 === frameOfReferenceUID2) {
30
37
  const closestImageIdIndex = _getClosestImageIdIndex(sourceImagePositionPatient, targetImageIds);
31
38
  if (closestImageIdIndex.index !== -1 &&
@@ -1 +1 @@
1
- {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Types } from '@cornerstonejs/core';
2
+ export default function areViewportsCoplanar(viewport1: Types.IStackViewport, viewport2: Types.IStackViewport): boolean;
@@ -0,0 +1,8 @@
1
+ import { vec3 } from 'gl-matrix';
2
+ export default function areViewportsCoplanar(viewport1, viewport2) {
3
+ const { viewPlaneNormal: viewPlaneNormal1 } = viewport1.getCamera();
4
+ const { viewPlaneNormal: viewPlaneNormal2 } = viewport2.getCamera();
5
+ const dotProducts = vec3.dot(viewPlaneNormal1, viewPlaneNormal2);
6
+ return Math.abs(dotProducts) > 0.9;
7
+ }
8
+ //# sourceMappingURL=areViewportsCoplanar%20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"areViewportsCoplanar .js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/areViewportsCoplanar .ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,SAA+B,EAC/B,SAA+B;IAE/B,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IACpE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;AACrC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { vec3 } from 'gl-matrix';
2
2
  import { getRenderingEngine, metaData, utilities, } from '@cornerstonejs/core';
3
3
  import { jumpToSlice } from '../../utilities';
4
+ import areViewportsCoplanar from './areViewportsCoplanar ';
4
5
  export default async function stackImageSyncCallback(synchronizerInstance, sourceViewport, targetViewport) {
5
6
  const renderingEngine = getRenderingEngine(targetViewport.renderingEngineId);
6
7
  if (!renderingEngine) {
@@ -14,6 +15,9 @@ export default async function stackImageSyncCallback(synchronizerInstance, sourc
14
15
  const imagePlaneModule1 = metaData.get('imagePlaneModule', imageId1);
15
16
  const sourceImagePositionPatient = imagePlaneModule1.imagePositionPatient;
16
17
  const targetImageIds = tViewport.getImageIds();
18
+ if (!areViewportsCoplanar(sViewport, tViewport)) {
19
+ return;
20
+ }
17
21
  if (frameOfReferenceUID1 === frameOfReferenceUID2) {
18
22
  const closestImageIdIndex = _getClosestImageIdIndex(sourceImagePositionPatient, targetImageIds);
19
23
  if (closestImageIdIndex.index !== -1 &&
@@ -1 +1 @@
1
- {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"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"}