@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.
- package/Common/Core/CellArray.js +14 -3
- package/IO/XML/XMLImageDataReader.js +6 -0
- package/IO/XML/XMLImageDataWriter.js +2 -1
- package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +5 -2
- package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +3 -1
- package/Interaction/Style/InteractorStyleManipulator.js +1 -1
- package/Rendering/Core/Mapper.js +1 -1
- package/Rendering/Core/RenderWindowInteractor.js +1 -2
- package/Rendering/Core/Renderer.d.ts +1 -1
- package/Rendering/WebGPU/BindGroup.js +1 -1
- package/Rendering/WebGPU/BufferManager/Constants.js +1 -1
- package/Rendering/WebGPU/BufferManager.js +92 -275
- package/Rendering/WebGPU/CellArrayMapper.js +45 -34
- package/Rendering/WebGPU/IndexBuffer.js +397 -0
- package/Rendering/WebGPU/RenderEncoder.js +1 -1
- package/Rendering/WebGPU/SimpleMapper.js +7 -1
- package/Rendering/WebGPU/VertexInput.js +7 -2
- package/Rendering/WebGPU/VolumePass.js +15 -5
- package/Widgets/Core/WidgetManager.js +11 -2
- package/Widgets/Manipulators/TrackballManipulator.js +1 -1
- package/Widgets/Representations/ArrowHandleRepresentation.js +12 -3
- package/Widgets/Representations/CircleContextRepresentation.js +12 -3
- package/Widgets/Representations/CubeHandleRepresentation.js +13 -4
- package/Widgets/Representations/SphereContextRepresentation.js +12 -3
- package/Widgets/Representations/SphereHandleRepresentation.js +12 -3
- package/index.d.ts +1 -1
- package/package.json +1 -1
package/Common/Core/CellArray.js
CHANGED
|
@@ -22,7 +22,14 @@ function extractCellSizes(cellArray) {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
function getNumberOfCells(cellArray) {
|
|
25
|
-
|
|
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
|
-
|
|
48
|
-
|
|
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().
|
|
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().
|
|
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().
|
|
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().
|
|
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().
|
|
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
|
|
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().
|
|
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
|
|
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().
|
|
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;
|
package/Rendering/Core/Mapper.js
CHANGED
|
@@ -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.
|
|
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 = {
|
|
@@ -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'
|
|
108
|
+
macro.setGet(publicAPI, model, ['label', 'device', 'arrayInformation']);
|
|
109
109
|
vtkWebGPUBindGroup(publicAPI, model);
|
|
110
110
|
} // ----------------------------------------------------------------------------
|
|
111
111
|
|