vtk.js 28.8.3 → 28.9.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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * @project vtk.js
3
- * @build Thu, Aug 24, 2023 7:00 PM ET
3
+ * @build Fri, Sep 1, 2023 3:42 PM ET
4
4
  * @copyright Copyright (c) 2023 Kitware, Inc.
5
5
  *
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * @project vtk.js
3
- * @build Thu, Aug 24, 2023 7:00 PM ET
3
+ * @build Fri, Sep 1, 2023 3:42 PM ET
4
4
  * @copyright Copyright (c) 2023 Kitware, Inc.
5
5
  *
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * @project vtk.js
3
- * @build Thu, Aug 24, 2023 7:00 PM ET
3
+ * @build Fri, Sep 1, 2023 3:42 PM ET
4
4
  * @copyright Copyright (c) 2023 Kitware, Inc.
5
5
  *
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * @project vtk.js
3
- * @build Thu, Aug 24, 2023 7:00 PM ET
3
+ * @build Fri, Sep 1, 2023 3:42 PM ET
4
4
  * @copyright Copyright (c) 2023 Kitware, Inc.
5
5
  *
6
6
  */
@@ -1,6 +1,7 @@
1
1
  import type vtkPolyData from 'vtk.js/Sources/Common/DataModel/PolyData';
2
2
  import type vtkPlane from 'vtk.js/Sources/Common/DataModel/Plane';
3
3
  import vtkAbstractRepresentationProxy from 'vtk.js/Sources/Proxy/Core/AbstractRepresentationProxy';
4
+ import { RGBColor } from 'vtk.js/Sources/types';
4
5
 
5
6
  export interface vtkResliceRepresentationProxy
6
7
  extends vtkAbstractRepresentationProxy {
@@ -15,6 +16,12 @@ export interface vtkResliceRepresentationProxy
15
16
  getWindowLevel(): number;
16
17
  setInterpolationType(type: number): boolean;
17
18
  getInterpolationType(): number;
19
+ setOutlineLineWidth(lineWidth: number): boolean;
20
+ getOutlineLineWidth(): number;
21
+ setOutlineColor(color: RGBColor): boolean;
22
+ getOutlineColor(): RGBColor;
23
+ setOutlineVisibility(visibility: boolean): boolean;
24
+ getOutlineVisibility(): boolean;
18
25
  setSlabType(type: number): boolean;
19
26
  getSlabtype(): number;
20
27
  setSlicePlane(plane: vtkPlane): boolean;
@@ -1,6 +1,10 @@
1
1
  import macro from 'vtk.js/Sources/macros';
2
+ import vtkActor from 'vtk.js/Sources/Rendering/Core/Actor';
3
+ import vtkCutter from 'vtk.js/Sources/Filters/Core/Cutter';
4
+ import vtkImageDataOutlineFilter from 'vtk.js/Sources/Filters/General/ImageDataOutlineFilter';
2
5
  import vtkImageSlice from 'vtk.js/Sources/Rendering/Core/ImageSlice';
3
6
  import vtkImageResliceMapper from 'vtk.js/Sources/Rendering/Core/ImageResliceMapper';
7
+ import vtkMapper from 'vtk.js/Sources/Rendering/Core/Mapper';
4
8
  import { SlabTypes } from 'vtk.js/Sources/Rendering/Core/ImageResliceMapper/Constants';
5
9
  import vtkPlane from 'vtk.js/Sources/Common/DataModel/Plane';
6
10
 
@@ -72,9 +76,21 @@ function vtkResliceRepresentationProxy(publicAPI, model) {
72
76
  model.mapper.setSlicePlane(model.slicePlane);
73
77
  model.mapper.setSlabType(SlabTypes.MAX);
74
78
 
79
+ // for the slice polygon outline
80
+ model.outline = {
81
+ iof: vtkImageDataOutlineFilter.newInstance(),
82
+ sof: vtkCutter.newInstance({ cutFunction: model.slicePlane }),
83
+ mapper: vtkMapper.newInstance(),
84
+ actor: vtkActor.newInstance({ visibility: false }),
85
+ };
86
+ model.outline.sof.setInputConnection(model.outline.iof.getOutputPort());
87
+ model.outline.mapper.setInputConnection(model.outline.sof.getOutputPort());
88
+
75
89
  // connect rendering pipeline
76
90
  model.actor.setMapper(model.mapper);
77
91
  model.actors.push(model.actor);
92
+ model.outline.actor.setMapper(model.outline.mapper);
93
+ model.actors.push(model.outline.actor);
78
94
 
79
95
  function setInputData(inputDataset) {
80
96
  const state = updateDomains(
@@ -91,6 +107,7 @@ function vtkResliceRepresentationProxy(publicAPI, model) {
91
107
  // Keep things updated
92
108
  model.sourceDependencies.push(model.mapper);
93
109
  model.sourceDependencies.push({ setInputData });
110
+ model.sourceDependencies.push(model.outline.iof);
94
111
 
95
112
  // API ----------------------------------------------------------------------
96
113
 
@@ -128,6 +145,8 @@ export function extend(publicAPI, model, initialValues = {}) {
128
145
  vtkResliceRepresentationProxy(publicAPI, model);
129
146
 
130
147
  // Proxyfy
148
+ model.outlineActor = model.outline.actor;
149
+ model.outlineProperty = model.outline.actor.getProperty();
131
150
  macro.proxyPropertyMapping(publicAPI, model, {
132
151
  visibility: { modelKey: 'actor', property: 'visibility' },
133
152
  windowWidth: { modelKey: 'property', property: 'colorWindow' },
@@ -141,6 +160,9 @@ export function extend(publicAPI, model, initialValues = {}) {
141
160
  modelKey: 'mapper',
142
161
  property: 'slabTrapezoidIntegration',
143
162
  },
163
+ outlineVisibility: { modelKey: 'outlineActor', property: 'visibility' },
164
+ outlineColor: { modelKey: 'outlineProperty', property: 'color' },
165
+ outlineLineWidth: { modelKey: 'outlineProperty', property: 'lineWidth' },
144
166
  });
145
167
  }
146
168
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vtk.js",
3
- "version": "28.8.3",
3
+ "version": "28.9.0",
4
4
  "description": "Visualization Toolkit for the Web",
5
5
  "keywords": [
6
6
  "3d",
package/vtk-bundle.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>vtk.js [24 Aug 2023 at 19:01]</title>
6
+ <title>vtk.js [1 Sep 2023 at 15:43]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>vtk.js [24 Aug 2023 at 19:01]</title>
6
+ <title>vtk.js [1 Sep 2023 at 15:43]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * @project vtk.js
3
- * @build Thu, Aug 24, 2023 7:00 PM ET
3
+ * @build Fri, Sep 1, 2023 3:42 PM ET
4
4
  * @copyright Copyright (c) 2023 Kitware, Inc.
5
5
  *
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * @project vtk.js
3
- * @build Thu, Aug 24, 2023 7:00 PM ET
3
+ * @build Fri, Sep 1, 2023 3:42 PM ET
4
4
  * @copyright Copyright (c) 2023 Kitware, Inc.
5
5
  *
6
6
  */