@cornerstonejs/tools 0.66.1 → 0.66.3
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.
- package/dist/cjs/tools/StackScrollTool.js +2 -2
- package/dist/cjs/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js +6 -6
- package/dist/cjs/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js.map +1 -1
- package/dist/esm/tools/StackScrollTool.js +2 -2
- package/dist/esm/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js +6 -6
- package/dist/esm/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
- package/src/tools/StackScrollTool.ts +2 -2
- package/src/utilities/math/polyline/getSubPixelSpacingAndXYDirections.ts +6 -6
|
@@ -9,7 +9,7 @@ class StackScrollTool extends base_1.BaseTool {
|
|
|
9
9
|
configuration: {
|
|
10
10
|
invert: false,
|
|
11
11
|
debounceIfNotLoaded: true,
|
|
12
|
-
loop: false
|
|
12
|
+
loop: false,
|
|
13
13
|
},
|
|
14
14
|
}) {
|
|
15
15
|
super(toolProps, defaultToolProps);
|
|
@@ -42,7 +42,7 @@ class StackScrollTool extends base_1.BaseTool {
|
|
|
42
42
|
delta: invert ? -imageIdIndexOffset : imageIdIndexOffset,
|
|
43
43
|
volumeId,
|
|
44
44
|
debounceLoading: debounceIfNotLoaded,
|
|
45
|
-
loop: loop
|
|
45
|
+
loop: loop,
|
|
46
46
|
});
|
|
47
47
|
this.deltaY = deltaY % pixelsPerImage;
|
|
48
48
|
}
|
|
@@ -41,19 +41,19 @@ const getSubPixelSpacingAndXYDirections = (viewport, subPixelResolution) => {
|
|
|
41
41
|
else {
|
|
42
42
|
throw new Error('No support yet for oblique plane planar contours');
|
|
43
43
|
}
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const
|
|
44
|
+
const absViewUpDotI = Math.abs(gl_matrix_1.vec3.dot(viewUp, iVector));
|
|
45
|
+
const absViewUpDotJ = Math.abs(gl_matrix_1.vec3.dot(viewUp, jVector));
|
|
46
|
+
const absViewUpDotK = Math.abs(gl_matrix_1.vec3.dot(viewUp, kVector));
|
|
47
47
|
let ySpacing;
|
|
48
|
-
if (Math.abs(1 -
|
|
48
|
+
if (Math.abs(1 - absViewUpDotI) < EPSILON) {
|
|
49
49
|
ySpacing = volumeSpacing[0];
|
|
50
50
|
yDir = iVector;
|
|
51
51
|
}
|
|
52
|
-
else if (Math.abs(1 -
|
|
52
|
+
else if (Math.abs(1 - absViewUpDotJ) < EPSILON) {
|
|
53
53
|
ySpacing = volumeSpacing[1];
|
|
54
54
|
yDir = jVector;
|
|
55
55
|
}
|
|
56
|
-
else if (Math.abs(1 -
|
|
56
|
+
else if (Math.abs(1 - absViewUpDotK) < EPSILON) {
|
|
57
57
|
ySpacing = volumeSpacing[2];
|
|
58
58
|
yDir = kVector;
|
|
59
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSubPixelSpacingAndXYDirections.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/getSubPixelSpacingAndXYDirections.ts"],"names":[],"mappings":";;AAAA,8CAAoD;AAEpD,yCAAiC;AAEjC,MAAM,OAAO,GAAG,IAAI,CAAC;AAcrB,MAAM,iCAAiC,GAAG,CACxC,QAAsD,EACtD,kBAA0B,EACyC,EAAE;IACrE,IAAI,OAAO,CAAC;IACZ,IAAI,IAAI,CAAC;IACT,IAAI,IAAI,CAAC;IAET,IAAI,QAAQ,YAAY,oBAAa,EAAE;QAErC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAE1C,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;KAC7B;SAAM;QAEL,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;QACxD,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAGzD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAiB,CAAC;QACtD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAiB,CAAC;QACtD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAiB,CAAC;QAEtD,MAAM,SAAS,GAAG,gBAAI,CAAC,MAAM,EAAE,CAAC;QAEhC,gBAAI,CAAC,KAAK,CAAC,SAAS,EAAQ,MAAM,EAAQ,eAAe,CAAC,CAAC;QAE3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAGhE,IAAI,QAAQ,CAAC;QACb,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,OAAO,EAAE;YAC5C,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,OAAO,CAAC;SAChB;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,OAAO,EAAE;YACnD,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,OAAO,CAAC;SAChB;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,OAAO,EAAE;YACnD,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,OAAO,CAAC;SAChB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACrE;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"getSubPixelSpacingAndXYDirections.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/getSubPixelSpacingAndXYDirections.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ class StackScrollTool extends BaseTool {
|
|
|
7
7
|
configuration: {
|
|
8
8
|
invert: false,
|
|
9
9
|
debounceIfNotLoaded: true,
|
|
10
|
-
loop: false
|
|
10
|
+
loop: false,
|
|
11
11
|
},
|
|
12
12
|
}) {
|
|
13
13
|
super(toolProps, defaultToolProps);
|
|
@@ -40,7 +40,7 @@ class StackScrollTool extends BaseTool {
|
|
|
40
40
|
delta: invert ? -imageIdIndexOffset : imageIdIndexOffset,
|
|
41
41
|
volumeId,
|
|
42
42
|
debounceLoading: debounceIfNotLoaded,
|
|
43
|
-
loop: loop
|
|
43
|
+
loop: loop,
|
|
44
44
|
});
|
|
45
45
|
this.deltaY = deltaY % pixelsPerImage;
|
|
46
46
|
}
|
|
@@ -39,19 +39,19 @@ const getSubPixelSpacingAndXYDirections = (viewport, subPixelResolution) => {
|
|
|
39
39
|
else {
|
|
40
40
|
throw new Error('No support yet for oblique plane planar contours');
|
|
41
41
|
}
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
42
|
+
const absViewUpDotI = Math.abs(vec3.dot(viewUp, iVector));
|
|
43
|
+
const absViewUpDotJ = Math.abs(vec3.dot(viewUp, jVector));
|
|
44
|
+
const absViewUpDotK = Math.abs(vec3.dot(viewUp, kVector));
|
|
45
45
|
let ySpacing;
|
|
46
|
-
if (Math.abs(1 -
|
|
46
|
+
if (Math.abs(1 - absViewUpDotI) < EPSILON) {
|
|
47
47
|
ySpacing = volumeSpacing[0];
|
|
48
48
|
yDir = iVector;
|
|
49
49
|
}
|
|
50
|
-
else if (Math.abs(1 -
|
|
50
|
+
else if (Math.abs(1 - absViewUpDotJ) < EPSILON) {
|
|
51
51
|
ySpacing = volumeSpacing[1];
|
|
52
52
|
yDir = jVector;
|
|
53
53
|
}
|
|
54
|
-
else if (Math.abs(1 -
|
|
54
|
+
else if (Math.abs(1 - absViewUpDotK) < EPSILON) {
|
|
55
55
|
ySpacing = volumeSpacing[2];
|
|
56
56
|
yDir = kVector;
|
|
57
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSubPixelSpacingAndXYDirections.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/getSubPixelSpacingAndXYDirections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,GAAG,IAAI,CAAC;AAcrB,MAAM,iCAAiC,GAAG,CACxC,QAAsD,EACtD,kBAA0B,EACyC,EAAE;IACrE,IAAI,OAAO,CAAC;IACZ,IAAI,IAAI,CAAC;IACT,IAAI,IAAI,CAAC;IAET,IAAI,QAAQ,YAAY,aAAa,EAAE;QAErC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAE1C,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;KAC7B;SAAM;QAEL,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;QACxD,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAGzD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAiB,CAAC;QACtD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAiB,CAAC;QACtD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAiB,CAAC;QAEtD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAEhC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAQ,MAAM,EAAQ,eAAe,CAAC,CAAC;QAE3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAGhE,IAAI,QAAQ,CAAC;QACb,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,OAAO,EAAE;YAC5C,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,OAAO,CAAC;SAChB;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,OAAO,EAAE;YACnD,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,OAAO,CAAC;SAChB;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,OAAO,EAAE;YACnD,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,OAAO,CAAC;SAChB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACrE;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"getSubPixelSpacingAndXYDirections.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/getSubPixelSpacingAndXYDirections.ts"],"names":[],"mappings":"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"}
|