@kitware/vtk.js 28.8.2 → 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.
package/CONTRIBUTING.md CHANGED
@@ -119,6 +119,10 @@ To create and debug a test:
119
119
  The vtk.js documentation is part of the code repository and is entirely written in
120
120
  [markdown](https://daringfireball.net/projects/markdown/).
121
121
 
122
+ If you create an example, please list it in the [examples landing page](Documentation/content/examples/index.md).
123
+
124
+ Images and GIF videos added to the [gallery](Documentation/content/docs/gallery) must be compressed as much as possible. You may want to use [ezgif.com](https://ezgif.com/).
125
+
122
126
  ## Reporting Issues
123
127
 
124
128
  If you encounter problems using vtk.js you may be able to find the solutions in the
@@ -1,6 +1,7 @@
1
1
  import type vtkPolyData from './../../Common/DataModel/PolyData';
2
2
  import type vtkPlane from './../../Common/DataModel/Plane';
3
3
  import vtkAbstractRepresentationProxy from './../Core/AbstractRepresentationProxy';
4
+ import { RGBColor } from './../../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 '../../macros.js';
2
+ import vtkActor from '../../Rendering/Core/Actor.js';
3
+ import vtkCutter from '../../Filters/Core/Cutter.js';
4
+ import vtkImageDataOutlineFilter from '../../Filters/General/ImageDataOutlineFilter.js';
2
5
  import vtkImageSlice from '../../Rendering/Core/ImageSlice.js';
3
6
  import vtkImageResliceMapper from '../../Rendering/Core/ImageResliceMapper.js';
7
+ import vtkMapper from '../../Rendering/Core/Mapper.js';
4
8
  import { SlabTypes } from '../../Rendering/Core/ImageResliceMapper/Constants.js';
5
9
  import vtkPlane from '../../Common/DataModel/Plane.js';
6
10
  import vtkAbstractRepresentationProxy from '../Core/AbstractRepresentationProxy.js';
@@ -58,10 +62,25 @@ function vtkResliceRepresentationProxy(publicAPI, model) {
58
62
  model.slicePlane = vtkPlane.newInstance();
59
63
  model.slicePlane.setNormal(0, 1, 0);
60
64
  model.mapper.setSlicePlane(model.slicePlane);
61
- model.mapper.setSlabType(SlabTypes.MAX); // connect rendering pipeline
65
+ model.mapper.setSlabType(SlabTypes.MAX); // for the slice polygon outline
66
+
67
+ model.outline = {
68
+ iof: vtkImageDataOutlineFilter.newInstance(),
69
+ sof: vtkCutter.newInstance({
70
+ cutFunction: model.slicePlane
71
+ }),
72
+ mapper: vtkMapper.newInstance(),
73
+ actor: vtkActor.newInstance({
74
+ visibility: false
75
+ })
76
+ };
77
+ model.outline.sof.setInputConnection(model.outline.iof.getOutputPort());
78
+ model.outline.mapper.setInputConnection(model.outline.sof.getOutputPort()); // connect rendering pipeline
62
79
 
63
80
  model.actor.setMapper(model.mapper);
64
81
  model.actors.push(model.actor);
82
+ model.outline.actor.setMapper(model.outline.mapper);
83
+ model.actors.push(model.outline.actor);
65
84
 
66
85
  function setInputData(inputDataset) {
67
86
  var state = updateDomains(inputDataset, publicAPI.getDataArray(), model, publicAPI.updateProxyProperty);
@@ -73,7 +92,8 @@ function vtkResliceRepresentationProxy(publicAPI, model) {
73
92
  model.sourceDependencies.push(model.mapper);
74
93
  model.sourceDependencies.push({
75
94
  setInputData: setInputData
76
- }); // API ----------------------------------------------------------------------
95
+ });
96
+ model.sourceDependencies.push(model.outline.iof); // API ----------------------------------------------------------------------
77
97
 
78
98
  var parentSetColorBy = publicAPI.setColorBy;
79
99
 
@@ -107,6 +127,8 @@ function extend(publicAPI, model) {
107
127
 
108
128
  vtkResliceRepresentationProxy(publicAPI, model); // Proxyfy
109
129
 
130
+ model.outlineActor = model.outline.actor;
131
+ model.outlineProperty = model.outline.actor.getProperty();
110
132
  macro.proxyPropertyMapping(publicAPI, model, {
111
133
  visibility: {
112
134
  modelKey: 'actor',
@@ -143,6 +165,18 @@ function extend(publicAPI, model) {
143
165
  slabTrapezoidIntegration: {
144
166
  modelKey: 'mapper',
145
167
  property: 'slabTrapezoidIntegration'
168
+ },
169
+ outlineVisibility: {
170
+ modelKey: 'outlineActor',
171
+ property: 'visibility'
172
+ },
173
+ outlineColor: {
174
+ modelKey: 'outlineProperty',
175
+ property: 'color'
176
+ },
177
+ outlineLineWidth: {
178
+ modelKey: 'outlineProperty',
179
+ property: 'lineWidth'
146
180
  }
147
181
  });
148
182
  } // ----------------------------------------------------------------------------
@@ -53,7 +53,7 @@ function vtkPolyLineRepresentation(publicAPI, model) {
53
53
  }
54
54
 
55
55
  if (closePolyLine) {
56
- cellData[cellSize - 1] = 0;
56
+ cellData[cellSize] = 0;
57
57
  }
58
58
 
59
59
  lines.setData(cellData);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitware/vtk.js",
3
- "version": "28.8.2",
3
+ "version": "28.9.0",
4
4
  "description": "Visualization Toolkit for the Web",
5
5
  "keywords": [
6
6
  "3d",