@kitware/vtk.js 24.5.2 → 24.5.5

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 (30) hide show
  1. package/Common/DataModel/DataSetAttributes/FieldData.d.ts +3 -1
  2. package/Rendering/Core/RenderWindowInteractor.d.ts +123 -109
  3. package/Rendering/Core/ScalarBarActor.js +2 -2
  4. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +5 -1
  5. package/Rendering/OpenGL/RenderWindow.d.ts +1 -1
  6. package/Rendering/OpenGL/VolumeMapper.js +1 -1
  7. package/Rendering/SceneGraph/ViewNode.js +28 -2
  8. package/Rendering/WebGPU/BufferManager.js +83 -14
  9. package/Rendering/WebGPU/CellArrayMapper.js +591 -0
  10. package/Rendering/WebGPU/Device.js +97 -57
  11. package/Rendering/WebGPU/FullScreenQuad.js +4 -6
  12. package/Rendering/WebGPU/Glyph3DMapper.js +62 -27
  13. package/Rendering/WebGPU/ImageMapper.js +23 -64
  14. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +4 -6
  15. package/Rendering/WebGPU/Pipeline.js +12 -0
  16. package/Rendering/WebGPU/PolyDataMapper.js +49 -623
  17. package/Rendering/WebGPU/RenderEncoder.js +34 -0
  18. package/Rendering/WebGPU/Renderer.js +4 -62
  19. package/Rendering/WebGPU/ShaderDescription.js +6 -6
  20. package/Rendering/WebGPU/{MapperHelper.js → SimpleMapper.js} +64 -38
  21. package/Rendering/WebGPU/SphereMapper.js +66 -64
  22. package/Rendering/WebGPU/StickMapper.js +73 -72
  23. package/Rendering/WebGPU/StorageBuffer.js +2 -3
  24. package/Rendering/WebGPU/Texture.js +0 -2
  25. package/Rendering/WebGPU/TextureManager.js +37 -7
  26. package/Rendering/WebGPU/UniformBuffer.js +1 -2
  27. package/Rendering/WebGPU/Volume.js +1 -14
  28. package/Rendering/WebGPU/VolumePass.js +16 -22
  29. package/Rendering/WebGPU/VolumePassFSQ.js +19 -29
  30. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { newInstance as newInstance$1, obj, setGet, newTypedArray, vtkDebugMacro as vtkDebugMacro$1 } from '../../macros.js';
2
+ import { newInstance as newInstance$1, obj, setGet, vtkErrorMacro as vtkErrorMacro$1, newTypedArray, vtkDebugMacro as vtkDebugMacro$1 } from '../../macros.js';
3
3
  import { j as cross, l as normalize } from '../../Common/Core/Math/index.js';
4
+ import vtkDataArray from '../../Common/Core/DataArray.js';
4
5
  import vtkWebGPUBuffer from './Buffer.js';
5
6
  import vtkWebGPUTypes from './Types.js';
6
7
  import vtkProperty from '../Core/Property.js';
@@ -12,7 +13,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
12
13
  var BufferUsage = Constants.BufferUsage,
13
14
  PrimitiveTypes = Constants.PrimitiveTypes;
14
15
  var Representation = vtkProperty.Representation;
15
- var vtkDebugMacro = vtkDebugMacro$1; // the webgpu constants all show up as undefined
16
+ var vtkDebugMacro = vtkDebugMacro$1,
17
+ vtkErrorMacro = vtkErrorMacro$1;
18
+ var VtkDataTypes = vtkDataArray.VtkDataTypes; // the webgpu constants all show up as undefined
16
19
 
17
20
  /* eslint-disable no-undef */
18
21
  // ----------------------------------------------------------------------------
@@ -62,6 +65,65 @@ var cellCounters = {
62
65
  }
63
66
  };
64
67
 
68
+ function _getFormatForDataArray(dataArray) {
69
+ var format;
70
+
71
+ switch (dataArray.getDataType()) {
72
+ case VtkDataTypes.UNSIGNED_CHAR:
73
+ format = 'uint8';
74
+ break;
75
+
76
+ case VtkDataTypes.FLOAT:
77
+ format = 'float32';
78
+ break;
79
+
80
+ case VtkDataTypes.UNSIGNED_INT:
81
+ format = 'uint32';
82
+ break;
83
+
84
+ case VtkDataTypes.INT:
85
+ format = 'sint32';
86
+ break;
87
+
88
+ case VtkDataTypes.DOUBLE:
89
+ format = 'float32';
90
+ break;
91
+
92
+ case VtkDataTypes.UNSIGNED_SHORT:
93
+ format = 'uint16';
94
+ break;
95
+
96
+ case VtkDataTypes.SHORT:
97
+ format = 'sin16';
98
+ break;
99
+
100
+ default:
101
+ format = 'float32';
102
+ break;
103
+ }
104
+
105
+ switch (dataArray.getNumberOfComponents()) {
106
+ case 2:
107
+ format += 'x2';
108
+ break;
109
+
110
+ case 3:
111
+ // only 32bit types support x3
112
+ if (!format.contains('32')) {
113
+ vtkErrorMacro("unsupported x3 type for ".concat(format));
114
+ }
115
+
116
+ format += 'x3';
117
+ break;
118
+
119
+ case 4:
120
+ format += 'x4';
121
+ break;
122
+ }
123
+
124
+ return format;
125
+ }
126
+
65
127
  function getPrimitiveName(primType) {
66
128
  switch (primType) {
67
129
  case PrimitiveTypes.Points:
@@ -443,27 +505,34 @@ function vtkWebGPUBufferManager(publicAPI, model) {
443
505
  } // is the buffer already present?
444
506
 
445
507
 
446
- publicAPI.hasBuffer = function (req) {
447
- if (req.owner) {
448
- // if a matching buffer already exists then return true
449
- var hash = req.time + req.format + req.usage + req.hash;
450
- return model.device.hasCachedObject(req.owner, hash);
451
- }
452
-
453
- return false;
508
+ publicAPI.hasBuffer = function (hash) {
509
+ return model.device.hasCachedObject(hash);
454
510
  };
455
511
 
456
512
  publicAPI.getBuffer = function (req) {
457
513
  // if we have a source the get/create/cache the buffer
458
- if (req.owner) {
459
- // if a matching buffer already exists then return it
460
- var hash = req.time + req.format + req.usage + req.hash;
461
- return model.device.getCachedObject(req.owner, hash, _createBuffer, req);
514
+ if (req.hash) {
515
+ return model.device.getCachedObject(req.hash, _createBuffer, req);
462
516
  }
463
517
 
464
518
  return _createBuffer(req);
465
519
  };
466
520
 
521
+ publicAPI.getBufferForPointArray = function (dataArray, cells, primitiveType, representation) {
522
+ var format = _getFormatForDataArray(dataArray);
523
+
524
+ var buffRequest = {
525
+ hash: "PA".concat(representation, "P").concat(primitiveType, "D").concat(dataArray.getMTime(), "C").concat(cells.getMTime()).concat(format),
526
+ usage: BufferUsage.PointArray,
527
+ format: format,
528
+ dataArray: dataArray,
529
+ cells: cells,
530
+ primitiveType: primitiveType,
531
+ representation: representation
532
+ };
533
+ return publicAPI.getBuffer(buffRequest);
534
+ };
535
+
467
536
  publicAPI.getFullScreenQuadBuffer = function () {
468
537
  if (model.fullScreenQuadBuffer) {
469
538
  return model.fullScreenQuadBuffer;