@kitware/vtk.js 24.5.6 → 24.7.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.
Files changed (32) hide show
  1. package/Common/Core/CellArray.js +14 -3
  2. package/IO/XML/XMLImageDataReader.js +6 -0
  3. package/IO/XML/XMLImageDataWriter.js +2 -1
  4. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +1 -1
  5. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +1 -1
  6. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +1 -1
  7. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +1 -1
  8. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +1 -1
  9. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +5 -2
  10. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +3 -1
  11. package/Interaction/Style/InteractorStyleManipulator.js +1 -1
  12. package/Rendering/Core/Mapper.js +1 -1
  13. package/Rendering/Core/RenderWindowInteractor.js +1 -2
  14. package/Rendering/Core/Renderer.d.ts +1 -1
  15. package/Rendering/WebGPU/BindGroup.js +1 -1
  16. package/Rendering/WebGPU/BufferManager/Constants.js +1 -1
  17. package/Rendering/WebGPU/BufferManager.js +92 -275
  18. package/Rendering/WebGPU/CellArrayMapper.js +45 -34
  19. package/Rendering/WebGPU/IndexBuffer.js +397 -0
  20. package/Rendering/WebGPU/RenderEncoder.js +1 -1
  21. package/Rendering/WebGPU/SimpleMapper.js +7 -1
  22. package/Rendering/WebGPU/VertexInput.js +7 -2
  23. package/Rendering/WebGPU/VolumePass.js +15 -5
  24. package/Widgets/Core/WidgetManager.js +11 -2
  25. package/Widgets/Manipulators/TrackballManipulator.js +1 -1
  26. package/Widgets/Representations/ArrowHandleRepresentation.js +12 -3
  27. package/Widgets/Representations/CircleContextRepresentation.js +12 -3
  28. package/Widgets/Representations/CubeHandleRepresentation.js +13 -4
  29. package/Widgets/Representations/SphereContextRepresentation.js +12 -3
  30. package/Widgets/Representations/SphereHandleRepresentation.js +12 -3
  31. package/index.d.ts +1 -1
  32. package/package.json +1 -1
@@ -22,7 +22,14 @@ function extractCellSizes(cellArray) {
22
22
  }
23
23
 
24
24
  function getNumberOfCells(cellArray) {
25
- return extractCellSizes(cellArray).length;
25
+ var cellId = 0;
26
+
27
+ for (var cellArrayIndex = 0; cellArrayIndex < cellArray.length;) {
28
+ cellArrayIndex += cellArray[cellArrayIndex] + 1;
29
+ cellId++;
30
+ }
31
+
32
+ return cellId;
26
33
  } // ----------------------------------------------------------------------------
27
34
  // Static API
28
35
  // ----------------------------------------------------------------------------
@@ -44,8 +51,12 @@ function vtkCellArray(publicAPI, model) {
44
51
  return model.numberOfCells;
45
52
  }
46
53
 
47
- model.cellSizes = extractCellSizes(model.values);
48
- model.numberOfCells = model.cellSizes.length;
54
+ if (model.cellSizes) {
55
+ model.numberOfCells = model.cellSizes.length;
56
+ } else {
57
+ model.numberOfCells = getNumberOfCells(model.values);
58
+ }
59
+
49
60
  return model.numberOfCells;
50
61
  };
51
62
 
@@ -10,6 +10,8 @@ function vtkXMLImageDataReader(publicAPI, model) {
10
10
  model.classHierarchy.push('vtkXMLImageDataReader');
11
11
 
12
12
  publicAPI.parseXML = function (rootElem, type, compressor, byteOrder, headerType) {
13
+ var _imageDataElem$getAtt;
14
+
13
15
  var imageDataElem = rootElem.getElementsByTagName(model.dataType)[0];
14
16
  var origin = imageDataElem.getAttribute('Origin').split(' ').map(function (t) {
15
17
  return Number(t);
@@ -17,6 +19,9 @@ function vtkXMLImageDataReader(publicAPI, model) {
17
19
  var spacing = imageDataElem.getAttribute('Spacing').split(' ').map(function (t) {
18
20
  return Number(t);
19
21
  });
22
+ var direction = (_imageDataElem$getAtt = imageDataElem.getAttribute('Direction')) === null || _imageDataElem$getAtt === void 0 ? void 0 : _imageDataElem$getAtt.split(' ').map(function (t) {
23
+ return Number(t);
24
+ });
20
25
  var pieces = imageDataElem.getElementsByTagName('Piece');
21
26
  var nbPieces = pieces.length;
22
27
 
@@ -29,6 +34,7 @@ function vtkXMLImageDataReader(publicAPI, model) {
29
34
  var imageData = vtkImageData.newInstance({
30
35
  origin: origin,
31
36
  spacing: spacing,
37
+ direction: direction,
32
38
  extent: extent
33
39
  }); // Fill data
34
40
 
@@ -22,7 +22,8 @@ function vtkXMLImageDataWriter(publicAPI, model) {
22
22
  var imageData = parent.ele('ImageData', {
23
23
  WholeExtent: dataObject.getExtent().join(' '),
24
24
  Origin: dataObject.getOrigin().join(' '),
25
- Spacing: dataObject.getSpacing().join(' ')
25
+ Spacing: dataObject.getSpacing().join(' '),
26
+ Direction: dataObject.getDirection().join(' ')
26
27
  });
27
28
  var piece = imageData.ele('Piece', {
28
29
  Extent: dataObject.getExtent().join(' ')
@@ -43,7 +43,7 @@ function vtkMouseCameraAxisRotateManipulator(publicAPI, model) {
43
43
  mat4.translate(trans, trans, center);
44
44
  var dx = model.previousPosition.x - position.x;
45
45
  var dy = model.previousPosition.y - position.y;
46
- var size = interactor.getView().getSize(); // Azimuth
46
+ var size = interactor.getView().getViewportSize(renderer); // Azimuth
47
47
 
48
48
  mat4.rotate(trans, trans, radiansFromDegrees(360.0 * dx / size[0] * rotationFactor), rotationAxis); // Elevation
49
49
 
@@ -23,7 +23,7 @@ function vtkMouseCameraTrackballMultiRotateManipulator(publicAPI, model) {
23
23
  var currentManipulator = null;
24
24
 
25
25
  publicAPI.onButtonDown = function (interactor, renderer, position) {
26
- var viewSize = interactor.getView().getSize();
26
+ var viewSize = interactor.getView().getViewportSize(renderer);
27
27
  var viewCenter = [0.5 * viewSize[0], 0.5 * viewSize[1]];
28
28
  var rotateRadius = 0.9 * max(viewCenter[0], viewCenter[1]);
29
29
  var dist2 = sqr(viewCenter[0] - position.x) + sqr(viewCenter[1] - position.y);
@@ -33,7 +33,7 @@ function vtkMouseCameraTrackballPanManipulator(publicAPI, model) {
33
33
  var right = [0, 0, 0];
34
34
  cross(vpn, up, right); // These are different because y is flipped.
35
35
 
36
- var height = interactor.getView().getSize()[1];
36
+ var height = interactor.getView().getViewportSize(renderer)[1];
37
37
  var dx = (pos.x - lastPos.x) / height;
38
38
  var dy = (lastPos.y - pos.y) / height;
39
39
  var scale = camera.getParallelScale();
@@ -42,7 +42,7 @@ function vtkMouseCameraTrackballRotateManipulator(publicAPI, model) {
42
42
 
43
43
  var dx = model.previousPosition.x - position.x;
44
44
  var dy = model.previousPosition.y - position.y;
45
- var size = interactor.getView().getSize(); // Azimuth
45
+ var size = interactor.getView().getViewportSize(renderer); // Azimuth
46
46
 
47
47
  var viewUp = camera.getViewUp();
48
48
 
@@ -11,7 +11,7 @@ function vtkMouseCameraTrackballZoomManipulator(publicAPI, model) {
11
11
 
12
12
  publicAPI.onButtonDown = function (interactor, renderer, position) {
13
13
  model.previousPosition = position;
14
- var size = interactor.getView().getSize();
14
+ var size = interactor.getView().getViewportSize(renderer);
15
15
  var camera = renderer.getActiveCamera();
16
16
  var direction = model.flipDirection ? -1 : 1;
17
17
 
@@ -26,7 +26,9 @@ function vtkMouseCameraUnicamManipulator(publicAPI, model) {
26
26
  }); //----------------------------------------------------------------------------
27
27
 
28
28
  var normalize$1 = function normalize(position, interactor) {
29
- var _interactor$getView$g = interactor.getView().getSize(),
29
+ var renderer = interactor.findPokedRenderer();
30
+
31
+ var _interactor$getView$g = interactor.getView().getViewportSize(renderer),
30
32
  _interactor$getView$g2 = _slicedToArray(_interactor$getView$g, 2),
31
33
  width = _interactor$getView$g2[0],
32
34
  height = _interactor$getView$g2[1];
@@ -63,8 +65,9 @@ function vtkMouseCameraUnicamManipulator(publicAPI, model) {
63
65
  normalize(atV);
64
66
  var l = dot(cameraToPointVec, atV);
65
67
  var viewAngle = radiansFromDegrees(camera.getViewAngle());
68
+ var renderer = interactor.findPokedRenderer();
66
69
 
67
- var _interactor$getView$g3 = interactor.getView().getSize(),
70
+ var _interactor$getView$g3 = interactor.getView().getViewportSize(renderer),
68
71
  _interactor$getView$g4 = _slicedToArray(_interactor$getView$g3, 2),
69
72
  width = _interactor$getView$g4[0],
70
73
  height = _interactor$getView$g4[1];
@@ -55,7 +55,9 @@ function vtkMouseCameraUnicamRotateManipulator(publicAPI, model) {
55
55
 
56
56
 
57
57
  var normalize$1 = function normalize(position, interactor) {
58
- var _interactor$getView$g = interactor.getView().getSize(),
58
+ var renderer = interactor.findPokedRenderer();
59
+
60
+ var _interactor$getView$g = interactor.getView().getViewportSize(renderer),
59
61
  _interactor$getView$g2 = _slicedToArray(_interactor$getView$g, 2),
60
62
  width = _interactor$getView$g2[0],
61
63
  height = _interactor$getView$g2[1];
@@ -42,7 +42,7 @@ function dollyToPosition(fact, position, renderer, rwi) {
42
42
 
43
43
  if (cam.getParallelProjection()) {
44
44
  // Zoom relatively to the cursor
45
- var aSize = rwi.getView().getSize();
45
+ var aSize = rwi.getView().getViewportSize(renderer);
46
46
  var w = aSize[0];
47
47
  var h = aSize[1];
48
48
  var x0 = w / 2;
@@ -445,7 +445,7 @@ function vtkMapper(publicAPI, model) {
445
445
  points: input.getPoints().getNumberOfValues() / 3,
446
446
  verts: input.getVerts().getNumberOfValues() - input.getVerts().getNumberOfCells(),
447
447
  lines: input.getLines().getNumberOfValues() - 2 * input.getLines().getNumberOfCells(),
448
- triangles: input.getPolys().getNumberOfValues() - 3 * input.getLines().getNumberOfCells()
448
+ triangles: input.getPolys().getNumberOfValues() - 3 * input.getPolys().getNumberOfCells()
449
449
  };
450
450
  return pcount;
451
451
  };
@@ -118,10 +118,9 @@ function vtkRenderWindowInteractor(publicAPI, model) {
118
118
  };
119
119
 
120
120
  function getScreenEventPositionFor(source) {
121
- var bounds = model.container.getBoundingClientRect();
122
-
123
121
  var canvas = model._view.getCanvas();
124
122
 
123
+ var bounds = canvas.getBoundingClientRect();
125
124
  var scaleX = canvas.width / bounds.width;
126
125
  var scaleY = canvas.height / bounds.height;
127
126
  var position = {
@@ -559,7 +559,7 @@ export interface vtkRenderer extends vtkViewport {
559
559
  /**
560
560
  * Get the number of visible actors.
561
561
  */
562
- visibleActorCount(): void;
562
+ visibleActorCount(): number;
563
563
 
564
564
  /**
565
565
  * Not Implemented yet
@@ -105,7 +105,7 @@ function extend(publicAPI, model) {
105
105
  mtime: 0
106
106
  });
107
107
  macro.get(publicAPI, model, ['bindGroupTime', 'handle', 'sizeInBytes', 'usage']);
108
- macro.setGet(publicAPI, model, ['label', 'device', 'arrayInformation', 'sourceTime']);
108
+ macro.setGet(publicAPI, model, ['label', 'device', 'arrayInformation']);
109
109
  vtkWebGPUBindGroup(publicAPI, model);
110
110
  } // ----------------------------------------------------------------------------
111
111
 
@@ -12,7 +12,7 @@ var BufferUsage = {
12
12
  Texture: 10,
13
13
  RawVertex: 11,
14
14
  Storage: 12,
15
- CellIndex: 13
15
+ Index: 13
16
16
  };
17
17
  var PrimitiveTypes = {
18
18
  Start: 0,