@kitware/vtk.js 24.18.10 → 25.0.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 (67) hide show
  1. package/BREAKING_CHANGES.md +5 -0
  2. package/Common/Core/DataArray.d.ts +1 -1
  3. package/Common/Core/Math/index.js +360 -337
  4. package/Common/Core/Math.d.ts +70 -8
  5. package/Common/Core/Math.js +2 -1
  6. package/Common/DataModel/DataSetAttributes/FieldData.d.ts +1 -1
  7. package/Common/DataModel/Line.js +1 -3
  8. package/Common/Transform/LandmarkTransform.js +11 -24
  9. package/Filters/General/OBBTree.js +21 -23
  10. package/Filters/Texture/TextureMapToPlane.js +6 -15
  11. package/IO/Core/HttpSceneLoader.d.ts +11 -2
  12. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +1 -1
  13. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +1 -1
  14. package/Interaction/Style/InteractorStyleTrackballCamera.js +1 -1
  15. package/Interaction/Widgets/PiecewiseGaussianWidget.js +1 -1
  16. package/Proxy/Core/View2DProxy.js +1 -1
  17. package/Rendering/Core/Camera.d.ts +12 -1
  18. package/Rendering/Core/CellPicker.d.ts +3 -3
  19. package/Rendering/Core/ColorTransferFunction.js +1 -1
  20. package/Rendering/Core/Coordinate.d.ts +7 -7
  21. package/Rendering/Core/Coordinate.js +1 -1
  22. package/Rendering/Core/CubeAxesActor.js +1 -1
  23. package/Rendering/Core/Glyph3DMapper.js +1 -1
  24. package/Rendering/Core/ImageMapper.d.ts +1 -1
  25. package/Rendering/Core/ImageMapper.js +2 -3
  26. package/Rendering/Core/ImageSlice.d.ts +4 -4
  27. package/Rendering/Core/InteractorObserver.d.ts +2 -2
  28. package/Rendering/Core/Mapper.js +1 -1
  29. package/Rendering/Core/Picker.d.ts +1 -1
  30. package/Rendering/Core/Prop3D.js +1 -1
  31. package/Rendering/Core/RenderWindow.d.ts +6 -6
  32. package/Rendering/Core/RenderWindowInteractor.js +1 -1
  33. package/Rendering/Core/Renderer.d.ts +8 -9
  34. package/Rendering/Core/Renderer.js +1 -1
  35. package/Rendering/Core/ScalarBarActor.js +1 -1
  36. package/Rendering/Core/VolumeMapper.js +1 -1
  37. package/Rendering/Core/VolumeProperty.d.ts +2 -2
  38. package/Rendering/Misc/SynchronizableRenderWindow.d.ts +1 -1
  39. package/Rendering/OpenGL/PolyDataMapper2D.js +1 -1
  40. package/Rendering/OpenGL/RenderWindow.d.ts +7 -7
  41. package/Rendering/OpenGL/Texture.js +1 -1
  42. package/Rendering/OpenGL/glsl/vtkVolumeFS.glsl.js +1 -1
  43. package/Widgets/Core/WidgetManager.d.ts +1 -1
  44. package/Widgets/Representations/HandleRepresentation.js +2 -1
  45. package/Widgets/Representations/PolyLineRepresentation.js +1 -1
  46. package/Widgets/Widgets3D/AngleWidget/state.js +2 -2
  47. package/Widgets/Widgets3D/AngleWidget.js +2 -2
  48. package/Widgets/Widgets3D/DistanceWidget/state.js +2 -2
  49. package/Widgets/Widgets3D/DistanceWidget.js +1 -1
  50. package/Widgets/Widgets3D/EllipseWidget.js +1 -4
  51. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +1 -1
  52. package/Widgets/Widgets3D/ImageCroppingWidget.js +2 -1
  53. package/Widgets/Widgets3D/LabelWidget/state.js +1 -1
  54. package/Widgets/Widgets3D/LabelWidget.js +1 -1
  55. package/Widgets/Widgets3D/LineWidget/behavior.js +11 -0
  56. package/Widgets/Widgets3D/LineWidget/helpers.js +1 -1
  57. package/Widgets/Widgets3D/LineWidget/state.js +3 -3
  58. package/Widgets/Widgets3D/LineWidget.js +1 -8
  59. package/Widgets/Widgets3D/PolyLineWidget.js +2 -8
  60. package/Widgets/Widgets3D/RectangleWidget.js +1 -4
  61. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +1 -1
  62. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +1 -1
  63. package/Widgets/Widgets3D/SphereWidget.js +4 -12
  64. package/Widgets/Widgets3D/SplineWidget/state.js +2 -2
  65. package/Widgets/Widgets3D/SplineWidget.js +2 -5
  66. package/package.json +1 -1
  67. package/types.d.ts +23 -13
@@ -21,7 +21,7 @@ function vtkDistanceWidget(publicAPI, model) {
21
21
  var superClass = _objectSpread({}, publicAPI); // --- Widget Requirement ---------------------------------------------------
22
22
 
23
23
 
24
- model.methodsToLink = ['activeScaleFactor', 'activeColor', 'useActiveColor', 'glyphResolution', 'defaultScale'];
24
+ model.methodsToLink = ['activeScaleFactor', 'activeColor', 'useActiveColor', 'glyphResolution', 'defaultScale', 'scaleInPixels'];
25
25
  model.behavior = widgetBehavior;
26
26
  model.widgetState = generateState();
27
27
 
@@ -32,10 +32,7 @@ function vtkEllipseWidget(publicAPI, model) {
32
32
  default:
33
33
  return [{
34
34
  builder: vtkSphereHandleRepresentation,
35
- labels: ['moveHandle'],
36
- initialValues: {
37
- scaleInPixels: true
38
- }
35
+ labels: ['moveHandle']
39
36
  }, {
40
37
  builder: vtkCircleContextRepresentation,
41
38
  labels: ['ellipseHandle']
@@ -41,7 +41,7 @@ function build() {
41
41
  mixins: ['name', 'origin', 'color', 'scale1', 'visible', 'manipulator'],
42
42
  name: name,
43
43
  initialValues: {
44
- scale1: 10,
44
+ scale1: 30,
45
45
  origin: [i, j, k],
46
46
  visible: true,
47
47
  name: name
@@ -101,7 +101,8 @@ function vtkImageCroppingWidget(publicAPI, model) {
101
101
  }); // --- Widget Requirement ---------------------------------------------------
102
102
 
103
103
  model.behavior = widgetBehavior;
104
- model.widgetState = build(); // Given a view type (geometry, slice, volume), return a description
104
+ model.widgetState = build();
105
+ model.methodsToLink = ['scaleInPixels']; // Given a view type (geometry, slice, volume), return a description
105
106
  // of what representations to create and what widget state to pass
106
107
  // to the respective representations.
107
108
 
@@ -6,7 +6,7 @@ function generateState() {
6
6
  mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator'],
7
7
  name: 'moveHandle',
8
8
  initialValues: {
9
- scale1: 0.1,
9
+ scale1: 10,
10
10
  visible: false
11
11
  }
12
12
  }).addStateFromMixin({
@@ -21,7 +21,7 @@ function vtkLabelWidget(publicAPI, model) {
21
21
  var superClass = _objectSpread({}, publicAPI); // --- Widget Requirement ---------------------------------------------------
22
22
 
23
23
 
24
- model.methodsToLink = ['textProps', 'fontProperties', 'strokeFontProperties'];
24
+ model.methodsToLink = ['textProps', 'fontProperties', 'strokeFontProperties', 'scaleInPixels'];
25
25
  model.behavior = widgetBehavior;
26
26
  model.widgetState = generateState();
27
27
 
@@ -350,6 +350,17 @@ function widgetBehavior(publicAPI, model) {
350
350
 
351
351
  model._interactor.render();
352
352
  };
353
+
354
+ publicAPI.reset = function () {
355
+ model.widgetState.deactivate();
356
+ model.widgetState.getMoveHandle().deactivate();
357
+ model.widgetState.getHandle1().setOrigin(null);
358
+ model.widgetState.getHandle2().setOrigin(null);
359
+ model.widgetState.getMoveHandle().setOrigin(null);
360
+ model.widgetState.getText().setOrigin(null);
361
+ model.widgetState.getText().setText('');
362
+ model.activeState = null;
363
+ };
353
364
  }
354
365
 
355
366
  export { widgetBehavior as default };
@@ -1,4 +1,4 @@
1
- import { s as subtract, x as multiplyScalar, k as add, B as areEquals } from '../../../Common/Core/Math/index.js';
1
+ import { s as subtract, x as multiplyScalar, k as add, C as areEquals } from '../../../Common/Core/Math/index.js';
2
2
 
3
3
  function calculateTextPosition(model) {
4
4
  var vector = [0, 0, 0];
@@ -12,7 +12,7 @@ function generateState() {
12
12
  mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator', 'shape'],
13
13
  name: 'moveHandle',
14
14
  initialValues: {
15
- scale1: 50,
15
+ scale1: 30,
16
16
  visible: true
17
17
  }
18
18
  }).addStateFromMixin({
@@ -20,14 +20,14 @@ function generateState() {
20
20
  mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator', 'shape'],
21
21
  name: 'handle1',
22
22
  initialValues: {
23
- scale1: 50
23
+ scale1: 30
24
24
  }
25
25
  }).addStateFromMixin({
26
26
  labels: ['handle2'],
27
27
  mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator', 'shape'],
28
28
  name: 'handle2',
29
29
  initialValues: {
30
- scale1: 50
30
+ scale1: 30
31
31
  }
32
32
  }).addStateFromMixin({
33
33
  labels: ['SVGtext'],
@@ -26,7 +26,7 @@ function vtkLineWidget(publicAPI, model) {
26
26
  model.widgetState = generateState();
27
27
  model.behavior = widgetBehavior; // --- Widget Requirement ---------------------------------------------------
28
28
 
29
- model.methodsToLink = ['activeScaleFactor', 'activeColor', 'useActiveColor', 'glyphResolution', 'defaultScale'];
29
+ model.methodsToLink = ['activeScaleFactor', 'activeColor', 'useActiveColor', 'glyphResolution', 'defaultScale', 'scaleInPixels'];
30
30
 
31
31
  publicAPI.getRepresentationsForViewType = function (viewType) {
32
32
  switch (viewType) {
@@ -39,9 +39,6 @@ function vtkLineWidget(publicAPI, model) {
39
39
  builder: vtkArrowHandleRepresentation,
40
40
  labels: ['handle1'],
41
41
  initialValues: {
42
- /* to scale handle size when zooming/dezooming, optional */
43
- scaleInPixels: true,
44
-
45
42
  /*
46
43
  * This table sets the visibility of the handles' actors
47
44
  * 1st actor is a displayActor, which hides a rendered object on the HTML layer.
@@ -69,9 +66,6 @@ function vtkLineWidget(publicAPI, model) {
69
66
  builder: vtkArrowHandleRepresentation,
70
67
  labels: ['handle2'],
71
68
  initialValues: {
72
- /* to scale handle size when zooming/dezooming, optional */
73
- scaleInPixels: true,
74
-
75
69
  /*
76
70
  * This table sets the visibility of the handles' actors
77
71
  * 1st actor is a displayActor, which hides a rendered object on the HTML layer.
@@ -99,7 +93,6 @@ function vtkLineWidget(publicAPI, model) {
99
93
  builder: vtkArrowHandleRepresentation,
100
94
  labels: ['moveHandle'],
101
95
  initialValues: {
102
- scaleInPixels: true,
103
96
  visibilityFlagArray: [false, false],
104
97
  coincidentTopologyParameters: {
105
98
  Point: {
@@ -34,16 +34,10 @@ function vtkPolyLineWidget(publicAPI, model) {
34
34
  default:
35
35
  return [{
36
36
  builder: vtkSphereHandleRepresentation,
37
- labels: ['handles'],
38
- initialValues: {
39
- scaleInPixels: true
40
- }
37
+ labels: ['handles']
41
38
  }, {
42
39
  builder: vtkSphereHandleRepresentation,
43
- labels: ['moveHandle'],
44
- initialValues: {
45
- scaleInPixels: true
46
- }
40
+ labels: ['moveHandle']
47
41
  }, {
48
42
  builder: vtkSVGLandmarkRepresentation,
49
43
  initialValues: {
@@ -32,10 +32,7 @@ function vtkRectangleWidget(publicAPI, model) {
32
32
  default:
33
33
  return [{
34
34
  builder: vtkSphereHandleRepresentation,
35
- labels: ['moveHandle'],
36
- initialValues: {
37
- scaleInPixels: true
38
- }
35
+ labels: ['moveHandle']
39
36
  }, {
40
37
  builder: vtkRectangleContextRepresentation,
41
38
  labels: ['rectangleHandle']
@@ -3,7 +3,7 @@ import macro from '../../../macros.js';
3
3
  import vtkBoundingBox from '../../../Common/DataModel/BoundingBox.js';
4
4
  import vtkLine from '../../../Common/DataModel/Line.js';
5
5
  import vtkPlanePointManipulator from '../../Manipulators/PlaneManipulator.js';
6
- import { s as subtract, l as normalize, d as dot, j as cross, m as multiplyAccumulate, x as multiplyScalar, S as signedAngleBetweenVectors } from '../../../Common/Core/Math/index.js';
6
+ import { s as subtract, l as normalize, d as dot, j as cross, m as multiplyAccumulate, x as multiplyScalar, T as signedAngleBetweenVectors } from '../../../Common/Core/Math/index.js';
7
7
  import { updateState, getAssociatedLinesName, boundPointOnPlane, rotateVector } from './helpers.js';
8
8
  import { InteractionMethodsName, ScrollingMethods } from './Constants.js';
9
9
 
@@ -3,7 +3,7 @@ import vtkBoundingBox, { STATIC } from '../../../Common/DataModel/BoundingBox.js
3
3
  import vtkCubeSource from '../../../Filters/Sources/CubeSource.js';
4
4
  import vtkCutter from '../../../Filters/Core/Cutter.js';
5
5
  import vtkPlane from '../../../Common/DataModel/Plane.js';
6
- import { s as subtract, l as normalize, j as cross, x as multiplyScalar, m as multiplyAccumulate, S as signedAngleBetweenVectors } from '../../../Common/Core/Math/index.js';
6
+ import { s as subtract, l as normalize, j as cross, x as multiplyScalar, m as multiplyAccumulate, T as signedAngleBetweenVectors } from '../../../Common/Core/Math/index.js';
7
7
  import vtkMatrixBuilder from '../../../Common/Core/MatrixBuilder.js';
8
8
  import { ViewTypes } from '../../Core/WidgetManager/Constants.js';
9
9
 
@@ -18,26 +18,18 @@ function vtkSphereWidget(publicAPI, model) {
18
18
  var superClass = _objectSpread({}, publicAPI);
19
19
 
20
20
  model.behavior = widgetBehavior;
21
+ model.methodsToLink = ['scaleInPixels'];
21
22
 
22
23
  publicAPI.getRepresentationsForViewType = function (viewType) {
23
24
  return [{
24
25
  builder: vtkSphereHandleRepresentation,
25
- labels: ['moveHandle'],
26
- initialValues: {
27
- scaleInPixels: true
28
- }
26
+ labels: ['moveHandle']
29
27
  }, {
30
28
  builder: vtkSphereHandleRepresentation,
31
- labels: ['centerHandle'],
32
- initialValues: {
33
- scaleInPixels: true
34
- }
29
+ labels: ['centerHandle']
35
30
  }, {
36
31
  builder: vtkSphereHandleRepresentation,
37
- labels: ['borderHandle'],
38
- initialValues: {
39
- scaleInPixels: true
40
- }
32
+ labels: ['borderHandle']
41
33
  }, {
42
34
  builder: vtkSphereContextRepresentation,
43
35
  labels: ['sphereHandle']
@@ -29,7 +29,7 @@ function generateState() {
29
29
  mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator'],
30
30
  name: 'moveHandle',
31
31
  initialValues: {
32
- scale1: 0.05,
32
+ scale1: 10,
33
33
  visible: false
34
34
  }
35
35
  }).addDynamicMixinState({
@@ -37,7 +37,7 @@ function generateState() {
37
37
  mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator'],
38
38
  name: 'handle',
39
39
  initialValues: {
40
- scale1: 0.05
40
+ scale1: 10
41
41
  }
42
42
  }).build();
43
43
  }
@@ -20,7 +20,7 @@ function vtkSplineWidget(publicAPI, model) {
20
20
  var superClass = _objectSpread({}, publicAPI); // --- Widget Requirement ---------------------------------------------------
21
21
 
22
22
 
23
- model.methodsToLink = ['boundaryCondition', 'close', 'outputBorder', 'fill', 'borderColor', 'errorBorderColor'];
23
+ model.methodsToLink = ['boundaryCondition', 'close', 'outputBorder', 'fill', 'borderColor', 'errorBorderColor', 'scaleInPixels'];
24
24
  model.behavior = widgetBehavior;
25
25
  model.widgetState = generateState();
26
26
 
@@ -33,10 +33,7 @@ function vtkSplineWidget(publicAPI, model) {
33
33
  default:
34
34
  return [{
35
35
  builder: vtkSphereHandleRepresentation,
36
- labels: ['handles', 'moveHandle'],
37
- initialValues: {
38
- scaleInPixels: true
39
- }
36
+ labels: ['handles', 'moveHandle']
40
37
  }, {
41
38
  builder: vtkSplineContextRepresentation,
42
39
  labels: ['handles', 'moveHandle']
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitware/vtk.js",
3
- "version": "24.18.10",
3
+ "version": "25.0.0",
4
4
  "description": "Visualization Toolkit for the Web",
5
5
  "keywords": [
6
6
  "3d",
package/types.d.ts CHANGED
@@ -22,16 +22,16 @@ declare type double = number;
22
22
  declare type int = number;
23
23
 
24
24
  declare type TypedArray =
25
- | number[]
26
- | Uint32Array
27
- | Uint16Array
28
- | Uint8Array
29
- | Uint8ClampedArray
30
- | Int32Array
31
- | Int16Array
32
- | Int8Array
33
- | Float64Array
34
- | Float32Array;
25
+ | number[]
26
+ | Uint32Array
27
+ | Uint16Array
28
+ | Uint8Array
29
+ | Uint8ClampedArray
30
+ | Int32Array
31
+ | Int16Array
32
+ | Int8Array
33
+ | Float64Array
34
+ | Float32Array;
35
35
 
36
36
  declare type Bounds = [number, number, number, number, number, number];
37
37
  declare type CellType = number;
@@ -43,9 +43,19 @@ declare type Vector2 = [number, number];
43
43
  declare type Vector3 = [number, number, number];
44
44
  declare type Vector4 = [number, number, number, number];
45
45
 
46
- declare type Matrix = number[][];
47
- declare type Matrix2x2 = [Vector2, Vector2];
48
- declare type Matrix3x3 = [Vector3, Vector3, Vector3];
46
+ declare type Matrix = number[];
47
+ declare type Matrix2x2 = [number, number, number, number, number, number];
48
+ declare type Matrix3x3 = [
49
+ number,
50
+ number,
51
+ number,
52
+ number,
53
+ number,
54
+ number,
55
+ number,
56
+ number,
57
+ number
58
+ ];
49
59
  /**
50
60
  * @deprecated The `Point` type is depracted, please use `Vector3` instead.
51
61
  */