@kitware/vtk.js 24.5.0 → 24.5.3

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 (153) hide show
  1. package/Common/Core/Base64.d.ts +4 -2
  2. package/Common/Core/CellArray.d.ts +2 -2
  3. package/Common/Core/DataArray.d.ts +2 -2
  4. package/Common/Core/Endian.d.ts +1 -1
  5. package/Common/Core/ImageHelper.d.ts +1 -1
  6. package/Common/Core/LookupTable.d.ts +1 -1
  7. package/Common/Core/Math.d.ts +1 -1
  8. package/Common/Core/MatrixBuilder.d.ts +1 -1
  9. package/Common/Core/Points.d.ts +2 -2
  10. package/Common/Core/PriorityQueue.d.ts +1 -1
  11. package/Common/Core/ProgressHandler.d.ts +1 -1
  12. package/Common/Core/ScalarsToColors.d.ts +3 -3
  13. package/Common/Core/StringArray.d.ts +1 -1
  14. package/Common/Core/VariantArray.d.ts +1 -1
  15. package/Common/DataModel/Box.d.ts +2 -2
  16. package/Common/DataModel/CardinalSpline1D.d.ts +1 -1
  17. package/Common/DataModel/Cell.d.ts +3 -3
  18. package/Common/DataModel/Cone.d.ts +2 -2
  19. package/Common/DataModel/Cylinder.d.ts +2 -2
  20. package/Common/DataModel/DataSet.d.ts +1 -1
  21. package/Common/DataModel/DataSetAttributes/FieldData.d.ts +4 -2
  22. package/Common/DataModel/DataSetAttributes.d.ts +3 -3
  23. package/Common/DataModel/ImageData.d.ts +1 -1
  24. package/Common/DataModel/Line.d.ts +1 -1
  25. package/Common/DataModel/PiecewiseFunction.d.ts +2 -2
  26. package/Common/DataModel/Plane.d.ts +2 -2
  27. package/Common/DataModel/PointSet.d.ts +2 -2
  28. package/Common/DataModel/PolyData.d.ts +2 -2
  29. package/Common/DataModel/Polygon.d.ts +2 -2
  30. package/Common/DataModel/SelectionNode.d.ts +2 -2
  31. package/Common/DataModel/Sphere.d.ts +2 -2
  32. package/Common/DataModel/Spline1D.d.ts +1 -1
  33. package/Common/DataModel/Spline3D.d.ts +1 -1
  34. package/Common/DataModel/Triangle.d.ts +1 -1
  35. package/Common/Transform/LandmarkTransform.d.ts +2 -2
  36. package/Filters/General/AppendPolyData.d.ts +1 -1
  37. package/Filters/General/ImageCropFilter.d.ts +1 -1
  38. package/Filters/General/ImageOutlineFilter.d.ts +1 -1
  39. package/Filters/General/ImageSliceFilter.d.ts +1 -1
  40. package/Filters/General/ImageStreamline.d.ts +3 -3
  41. package/Filters/General/LineFilter.d.ts +1 -1
  42. package/Filters/General/OutlineFilter.d.ts +1 -1
  43. package/Filters/General/TriangleFilter.d.ts +1 -1
  44. package/Filters/General/TubeFilter.d.ts +2 -2
  45. package/Filters/Sources/Arrow2DSource.d.ts +2 -2
  46. package/Filters/Sources/ArrowSource.d.ts +2 -2
  47. package/Filters/Sources/CircleSource.d.ts +2 -2
  48. package/Filters/Sources/ConeSource.d.ts +2 -2
  49. package/Filters/Sources/CubeSource.d.ts +2 -2
  50. package/Filters/Sources/Cursor3D.d.ts +3 -3
  51. package/Filters/Sources/CylinderSource.d.ts +2 -2
  52. package/Filters/Sources/LineSource.d.ts +2 -2
  53. package/Filters/Sources/PlaneSource.d.ts +2 -2
  54. package/Filters/Sources/PointSource.d.ts +2 -2
  55. package/Filters/Sources/SphereSource.d.ts +2 -2
  56. package/Filters/Texture/TextureMapToPlane.d.ts +1 -1
  57. package/Filters/Texture/TextureMapToSphere.d.ts +1 -1
  58. package/IO/Core/DataAccessHelper.d.ts +4 -4
  59. package/IO/Core/HttpDataSetReader.d.ts +1 -1
  60. package/IO/Core/HttpSceneLoader.d.ts +5 -5
  61. package/IO/Core/ImageStream/DefaultProtocol.d.ts +1 -1
  62. package/IO/Core/ImageStream/ViewStream.d.ts +4 -4
  63. package/IO/Core/ImageStream.d.ts +3 -3
  64. package/IO/Core/WSLinkClient.d.ts +1 -1
  65. package/IO/Geometry/DracoReader.d.ts +5 -5
  66. package/IO/Geometry/PLYReader.d.ts +5 -5
  67. package/IO/Geometry/PLYWriter.d.ts +2 -2
  68. package/IO/Geometry/STLReader.d.ts +5 -5
  69. package/IO/Geometry/STLWriter.d.ts +2 -2
  70. package/IO/Misc/ElevationReader.d.ts +5 -5
  71. package/IO/Misc/ITKImageReader.d.ts +1 -1
  72. package/IO/Misc/ITKPolyDataReader.d.ts +1 -1
  73. package/IO/Misc/JSONNucleoReader.d.ts +5 -5
  74. package/IO/Misc/JSONReader.d.ts +1 -1
  75. package/IO/Misc/MTLReader.d.ts +6 -6
  76. package/IO/Misc/OBJReader.d.ts +5 -5
  77. package/IO/Misc/PDBReader.d.ts +5 -5
  78. package/IO/XML/XMLReader.d.ts +5 -5
  79. package/Interaction/Widgets/OrientationMarkerWidget.d.ts +6 -6
  80. package/Rendering/Core/AbstractMapper.d.ts +2 -2
  81. package/Rendering/Core/AbstractMapper3D.d.ts +1 -1
  82. package/Rendering/Core/AbstractPicker.d.ts +2 -2
  83. package/Rendering/Core/Actor.d.ts +1 -1
  84. package/Rendering/Core/Actor2D.d.ts +1 -1
  85. package/Rendering/Core/Camera.d.ts +2 -2
  86. package/Rendering/Core/CellPicker.d.ts +2 -2
  87. package/Rendering/Core/ColorTransferFunction.d.ts +1 -1
  88. package/Rendering/Core/Coordinate.d.ts +1 -1
  89. package/Rendering/Core/Glyph3DMapper.d.ts +1 -1
  90. package/Rendering/Core/ImageMapper.d.ts +1 -1
  91. package/Rendering/Core/ImageProperty.d.ts +1 -1
  92. package/Rendering/Core/ImageSlice.d.ts +1 -1
  93. package/Rendering/Core/Light.d.ts +2 -2
  94. package/Rendering/Core/Mapper.d.ts +1 -1
  95. package/Rendering/Core/Mapper2D.d.ts +1 -1
  96. package/Rendering/Core/Picker.d.ts +1 -1
  97. package/Rendering/Core/PointPicker.d.ts +1 -1
  98. package/Rendering/Core/Prop.d.ts +1 -1
  99. package/Rendering/Core/Prop3D.d.ts +1 -1
  100. package/Rendering/Core/Property.d.ts +2 -2
  101. package/Rendering/Core/Property2D.d.ts +2 -2
  102. package/Rendering/Core/RenderWindow.d.ts +2 -2
  103. package/Rendering/Core/RenderWindowInteractor.d.ts +123 -109
  104. package/Rendering/Core/Renderer.d.ts +1 -1
  105. package/Rendering/Core/ScalarBarActor.d.ts +2 -2
  106. package/Rendering/Core/ScalarBarActor.js +2 -2
  107. package/Rendering/Core/Texture.d.ts +1 -1
  108. package/Rendering/Core/Viewport.d.ts +2 -2
  109. package/Rendering/Core/Volume.d.ts +1 -1
  110. package/Rendering/Core/VolumeMapper.d.ts +1 -1
  111. package/Rendering/Core/VolumeProperty.d.ts +1 -1
  112. package/Rendering/Misc/CanvasView.d.ts +2 -2
  113. package/Rendering/Misc/FullScreenRenderWindow.d.ts +8 -8
  114. package/Rendering/Misc/GenericRenderWindow.d.ts +6 -6
  115. package/Rendering/Misc/RemoteView.d.ts +2 -2
  116. package/Rendering/Misc/RenderWindowWithControlBar.d.ts +1 -1
  117. package/Rendering/Misc/SynchronizableRenderWindow.d.ts +2 -2
  118. package/Rendering/Misc/TextureLODsDownloader.d.ts +3 -3
  119. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +5 -1
  120. package/Rendering/OpenGL/RenderWindow.d.ts +7 -7
  121. package/Rendering/SceneGraph/RenderPass.d.ts +1 -1
  122. package/Rendering/SceneGraph/ViewNode.d.ts +1 -1
  123. package/Rendering/SceneGraph/ViewNode.js +28 -2
  124. package/Rendering/SceneGraph/ViewNodeFactory.d.ts +1 -1
  125. package/Rendering/WebGPU/CellArrayMapper.js +629 -0
  126. package/Rendering/WebGPU/FullScreenQuad.js +4 -6
  127. package/Rendering/WebGPU/Glyph3DMapper.js +60 -27
  128. package/Rendering/WebGPU/ImageMapper.js +23 -60
  129. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +4 -6
  130. package/Rendering/WebGPU/Pipeline.js +12 -0
  131. package/Rendering/WebGPU/PolyDataMapper.js +49 -623
  132. package/Rendering/WebGPU/RenderEncoder.js +34 -0
  133. package/Rendering/WebGPU/Renderer.js +4 -62
  134. package/Rendering/WebGPU/ShaderDescription.js +6 -6
  135. package/Rendering/WebGPU/{MapperHelper.js → SimpleMapper.js} +64 -38
  136. package/Rendering/WebGPU/SphereMapper.js +41 -37
  137. package/Rendering/WebGPU/StickMapper.js +35 -30
  138. package/Rendering/WebGPU/StorageBuffer.js +2 -2
  139. package/Rendering/WebGPU/UniformBuffer.js +1 -1
  140. package/Rendering/WebGPU/Volume.js +1 -14
  141. package/Rendering/WebGPU/VolumePass.js +15 -19
  142. package/Rendering/WebGPU/VolumePassFSQ.js +19 -25
  143. package/Widgets/Manipulators/LineManipulator.d.ts +1 -1
  144. package/Widgets/Manipulators/PlaneManipulator.d.ts +1 -1
  145. package/Widgets/Manipulators/TrackballManipulator.d.ts +1 -1
  146. package/Widgets/Representations/WidgetRepresentation.d.ts +1 -1
  147. package/Widgets/Widgets3D/SphereWidget.d.ts +2 -2
  148. package/_virtual/rollup-plugin-web-worker-loader__helper__funcToSource.js +8 -8
  149. package/interfaces.d.ts +2 -2
  150. package/macros.d.ts +1 -1
  151. package/package.json +1 -1
  152. package/types.d.ts +1 -1
  153. package/tsconfig.json +0 -8
@@ -1,11 +1,10 @@
1
1
  import { newInstance as newInstance$1, vtkErrorMacro as vtkErrorMacro$1 } from '../../macros.js';
2
- import vtkWebGPUPolyDataMapper from './PolyDataMapper.js';
2
+ import vtkWebGPUCellArrayMapper from './CellArrayMapper.js';
3
3
  import vtkWebGPUBufferManager from './BufferManager.js';
4
4
  import vtkWebGPUShaderCache from './ShaderCache.js';
5
5
  import { registerOverride } from './ViewNodeFactory.js';
6
6
 
7
- var BufferUsage = vtkWebGPUBufferManager.BufferUsage,
8
- PrimitiveTypes = vtkWebGPUBufferManager.PrimitiveTypes;
7
+ var BufferUsage = vtkWebGPUBufferManager.BufferUsage;
9
8
  var vtkErrorMacro = vtkErrorMacro$1; // Vertices
10
9
  // 013 - 032 - 324 - 453
11
10
  //
@@ -34,6 +33,21 @@ var vtkWebGPUStickMapperVS = "\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//
34
33
  function vtkWebGPUStickMapper(publicAPI, model) {
35
34
  // Set our className
36
35
  model.classHierarchy.push('vtkWebGPUStickMapper');
36
+ var cellMapperBuildPass = publicAPI.buildPass;
37
+
38
+ publicAPI.buildPass = function (prepass) {
39
+ if (prepass) {
40
+ if (!model.renderable.getStatic()) {
41
+ model.renderable.update();
42
+ }
43
+
44
+ var poly = model.renderable.getInputData();
45
+ publicAPI.setCellArray(poly.getVerts());
46
+ publicAPI.setCurrentInput(poly);
47
+ }
48
+
49
+ cellMapperBuildPass(prepass);
50
+ };
37
51
 
38
52
  publicAPI.replaceShaderNormal = function (hash, pipeline, vertexInput) {
39
53
  var vDesc = pipeline.getShaderDescription('vertex');
@@ -62,32 +76,27 @@ function vtkWebGPUStickMapper(publicAPI, model) {
62
76
  // or vertex input changes/ bind groups/ etc
63
77
 
64
78
 
65
- publicAPI.computePipelineHash = function (vertexInput) {
66
- var pipelineHash = 'stm';
79
+ publicAPI.computePipelineHash = function () {
80
+ model.pipelineHash = 'stm';
67
81
 
68
- if (vertexInput.hasAttribute("colorVI")) {
69
- pipelineHash += "c";
82
+ if (model.vertexInput.hasAttribute("colorVI")) {
83
+ model.pipelineHash += "c";
70
84
  }
71
85
 
72
- pipelineHash += model.renderEncoder.getPipelineHash();
73
- return pipelineHash;
74
- }; // was originally buildIBOs() but not using IBOs right now
75
-
86
+ model.pipelineHash += model.renderEncoder.getPipelineHash();
87
+ };
76
88
 
77
- publicAPI.buildPrimitives = function () {
89
+ publicAPI.updateBuffers = function () {
78
90
  var poly = model.currentInput;
79
- var device = model.WebGPURenderWindow.getDevice();
80
- model.renderable.mapScalars(poly, 1.0); // handle triangles
81
-
82
- var i = PrimitiveTypes.Triangles;
91
+ model.renderable.mapScalars(poly, 1.0);
92
+ var device = model.device;
83
93
  var points = poly.getPoints();
84
94
  var pointData = poly.getPointData();
85
95
  var numPoints = points.getNumberOfPoints();
86
96
  var pointArray = points.getData();
87
- var primHelper = model.primitives[i];
88
- primHelper.setNumberOfInstances(numPoints);
89
- primHelper.setNumberOfVertices(12);
90
- var vertexInput = model.primitives[i].getVertexInput();
97
+ publicAPI.setNumberOfInstances(numPoints);
98
+ publicAPI.setNumberOfVertices(12);
99
+ var vertexInput = model.vertexInput;
91
100
  var buffRequest = {
92
101
  owner: points,
93
102
  hash: 'stm',
@@ -198,9 +207,8 @@ function vtkWebGPUStickMapper(publicAPI, model) {
198
207
  var _buff2 = device.getBufferManager().getBuffer(buffRequest);
199
208
 
200
209
  vertexInput.addBuffer(_buff2, ['orientMC'], 'instance');
201
- }
210
+ } // deal with colors but only if modified
202
211
 
203
- model.renderable.mapScalars(poly, 1.0); // deal with colors but only if modified
204
212
 
205
213
  var haveColors = false;
206
214
 
@@ -251,11 +259,8 @@ function vtkWebGPUStickMapper(publicAPI, model) {
251
259
  vertexInput.removeBufferIfPresent('colorVI');
252
260
  }
253
261
 
254
- primHelper.setPipelineHash(publicAPI.computePipelineHash(vertexInput));
255
- primHelper.setWebGPURenderer(model.WebGPURenderer);
256
- primHelper.setTopology('triangle-list');
257
- primHelper.build(model.renderEncoder, device);
258
- primHelper.registerToDraw();
262
+ publicAPI.setTopology('triangle-list');
263
+ publicAPI.updateUBO();
259
264
  };
260
265
  } // ----------------------------------------------------------------------------
261
266
  // Object factory
@@ -268,11 +273,11 @@ function extend(publicAPI, model) {
268
273
  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
269
274
  Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance
270
275
 
271
- vtkWebGPUPolyDataMapper.extend(publicAPI, model, initialValues);
272
- model.primitives[PrimitiveTypes.Triangles].setVertexShaderTemplate(vtkWebGPUStickMapperVS); // Object methods
276
+ vtkWebGPUCellArrayMapper.extend(publicAPI, model, initialValues);
277
+ publicAPI.setVertexShaderTemplate(vtkWebGPUStickMapperVS); // Object methods
273
278
 
274
279
  vtkWebGPUStickMapper(publicAPI, model);
275
- var sr = model.primitives[PrimitiveTypes.Triangles].getShaderReplacements();
280
+ var sr = model.shaderReplacements;
276
281
  sr.set('replaceShaderPosition', publicAPI.replaceShaderPosition);
277
282
  sr.set('replaceShaderNormal', publicAPI.replaceShaderNormal);
278
283
  } // ----------------------------------------------------------------------------
@@ -176,10 +176,10 @@ function vtkWebGPUStorageBuffer(publicAPI, model) {
176
176
 
177
177
  for (var i = 0; i < model.bufferEntries.length; i++) {
178
178
  var entry = model.bufferEntries[i];
179
- lines.push(" ".concat(entry.name, ": ").concat(entry.type, ";"));
179
+ lines.push(" ".concat(entry.name, ": ").concat(entry.type, ","));
180
180
  }
181
181
 
182
- lines.push("\n};\nstruct ".concat(model.label, "Struct\n{\n values: array<").concat(model.label, "StructEntry>;\n};\n@binding(").concat(binding, ") @group(").concat(group, ") var<storage, read> ").concat(model.label, ": ").concat(model.label, "Struct;\n"));
182
+ lines.push("\n};\nstruct ".concat(model.label, "Struct\n{\n values: array<").concat(model.label, "StructEntry>,\n};\n@binding(").concat(binding, ") @group(").concat(group, ") var<storage, read> ").concat(model.label, ": ").concat(model.label, "Struct;\n"));
183
183
  return lines.join('\n');
184
184
  };
185
185
 
@@ -306,7 +306,7 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
306
306
 
307
307
  for (var i = 0; i < model.bufferEntries.length; i++) {
308
308
  var entry = model.bufferEntries[i];
309
- lines.push(" ".concat(entry.name, ": ").concat(entry.type, ";"));
309
+ lines.push(" ".concat(entry.name, ": ").concat(entry.type, ","));
310
310
  }
311
311
 
312
312
  lines.push("};\n@binding(".concat(binding, ") @group(").concat(group, ") var<uniform> ").concat(model.label, ": ").concat(model.label, "Struct;"));
@@ -23,10 +23,7 @@ function vtkWebGPUVolume(publicAPI, model) {
23
23
  model.propID = model.WebGPURenderWindow.getUniquePropID();
24
24
  }
25
25
 
26
- publicAPI.prepareNodes();
27
- model.renderable.getMapper().update(); // publicAPI.addMissingNode(model.renderable.getMapper());
28
-
29
- publicAPI.removeUnusedNodes();
26
+ model.renderable.getMapper().update();
30
27
  }
31
28
  };
32
29
 
@@ -81,16 +78,6 @@ function vtkWebGPUVolume(publicAPI, model) {
81
78
  }
82
79
  };
83
80
 
84
- publicAPI.traverseVolumePass = function (renderPass) {
85
- if (!model.renderable || !model.renderable.getNestedVisibility() || model.WebGPURenderer.getSelector() && !model.renderable.getNestedPickable()) {
86
- return;
87
- }
88
-
89
- publicAPI.apply(renderPass, true);
90
- model.children[0].traverse(renderPass);
91
- publicAPI.apply(renderPass, false);
92
- };
93
-
94
81
  publicAPI.getKeyMatrices = function (wgpuRen) {
95
82
  // has the actor or stabilization center changed?
96
83
  if (Math.max(model.renderable.getMTime(), wgpuRen.getStabilizedTime()) > model.keyMatricesTime.getMTime()) {
@@ -4,7 +4,7 @@ import vtkPolyData from '../../Common/DataModel/PolyData.js';
4
4
  import vtkProperty from '../Core/Property.js';
5
5
  import vtkRenderPass from '../SceneGraph/RenderPass.js';
6
6
  import vtkWebGPUBufferManager from './BufferManager.js';
7
- import vtkWebGPUMapperHelper from './MapperHelper.js';
7
+ import vtkWebGPUSimpleMapper from './SimpleMapper.js';
8
8
  import vtkWebGPURenderEncoder from './RenderEncoder.js';
9
9
  import vtkWebGPUShaderCache from './ShaderCache.js';
10
10
  import vtkWebGPUTexture from './Texture.js';
@@ -150,16 +150,6 @@ function vtkWebGPUVolumePass(publicAPI, model) {
150
150
  // final composite
151
151
 
152
152
 
153
- model._copyEncoder.setColorTextureView(0, model.colorTextureView);
154
-
155
- model._copyEncoder.attachTextureViews();
156
-
157
- renNode.setRenderEncoder(model._copyEncoder);
158
-
159
- model._copyEncoder.begin(viewNode.getCommandEncoder());
160
-
161
- renNode.scissorAndViewport(model._copyEncoder);
162
-
163
153
  model._volumeCopyQuad.setWebGPURenderer(renNode);
164
154
 
165
155
  if (model._useSmallViewport) {
@@ -174,7 +164,15 @@ function vtkWebGPUVolumePass(publicAPI, model) {
174
164
 
175
165
  model._copyUBO.sendIfNeeded(device);
176
166
 
177
- model._volumeCopyQuad.render(model._copyEncoder, viewNode.getDevice());
167
+ model._copyEncoder.setColorTextureView(0, model.colorTextureView);
168
+
169
+ model._copyEncoder.attachTextureViews();
170
+
171
+ model._copyEncoder.begin(viewNode.getCommandEncoder());
172
+
173
+ renNode.scissorAndViewport(model._copyEncoder);
174
+
175
+ model._volumeCopyQuad.prepareAndDraw(model._copyEncoder);
178
176
 
179
177
  model._copyEncoder.end();
180
178
  }; // unsubscribe from our listeners
@@ -235,7 +233,6 @@ function vtkWebGPUVolumePass(publicAPI, model) {
235
233
  publicAPI.rayCastPass = function (viewNode, renNode, volumes) {
236
234
  var encoder = model._firstGroup ? model._clearEncoder : model._mergeEncoder;
237
235
  encoder.attachTextureViews();
238
- renNode.setRenderEncoder(encoder);
239
236
  encoder.begin(viewNode.getCommandEncoder());
240
237
 
241
238
  var width = model._colorTextureView.getTexture().getWidth();
@@ -252,7 +249,7 @@ function vtkWebGPUVolumePass(publicAPI, model) {
252
249
  encoder.getHandle().setScissorRect(0, 0, width, height);
253
250
  model.fullScreenQuad.setWebGPURenderer(renNode);
254
251
  model.fullScreenQuad.setVolumes(volumes);
255
- model.fullScreenQuad.render(encoder, viewNode.getDevice());
252
+ model.fullScreenQuad.prepareAndDraw(encoder);
256
253
  encoder.end();
257
254
  };
258
255
 
@@ -348,8 +345,7 @@ function vtkWebGPUVolumePass(publicAPI, model) {
348
345
  };
349
346
 
350
347
  publicAPI.drawDepthRange = function (renNode, viewNode) {
351
- var device = viewNode.getDevice(); // copy current depth buffer to
352
-
348
+ // copy current depth buffer to
353
349
  model._depthRangeTexture.resizeToMatch(model.colorTextureView.getTexture());
354
350
 
355
351
  model._depthRangeTexture2.resizeToMatch(model.colorTextureView.getTexture());
@@ -362,9 +358,9 @@ function vtkWebGPUVolumePass(publicAPI, model) {
362
358
 
363
359
  model._mapper.setWebGPURenderer(renNode);
364
360
 
365
- model._mapper.build(model._depthRangeEncoder, device);
361
+ model._mapper.prepareToDraw(model._depthRangeEncoder);
366
362
 
367
- model._mapper.registerToDraw();
363
+ model._mapper.registerDrawCallback(model._depthRangeEncoder);
368
364
 
369
365
  renNode.volumeDepthRangePass(false);
370
366
  };
@@ -652,7 +648,7 @@ function extend(publicAPI, model) {
652
648
 
653
649
  vtkRenderPass.extend(publicAPI, model, initialValues);
654
650
  model._lastScale = 2.0;
655
- model._mapper = vtkWebGPUMapperHelper.newInstance();
651
+ model._mapper = vtkWebGPUSimpleMapper.newInstance();
656
652
 
657
653
  model._mapper.setFragmentShaderTemplate(DepthBoundsFS);
658
654
 
@@ -423,8 +423,11 @@ function vtkWebGPUVolumePassFSQ(publicAPI, model) {
423
423
  model.componentSSBO.send(device);
424
424
  };
425
425
 
426
- publicAPI.updateBuffers = function (device) {
427
- // compute the min step size
426
+ var superClassUpdateBuffers = publicAPI.updateBuffers;
427
+
428
+ publicAPI.updateBuffers = function () {
429
+ superClassUpdateBuffers(); // compute the min step size
430
+
428
431
  var sampleDist = model.volumes[0].getRenderable().getMapper().getSampleDistance();
429
432
 
430
433
  for (var i = 0; i < model.volumes.length; i++) {
@@ -440,7 +443,7 @@ function vtkWebGPUVolumePassFSQ(publicAPI, model) {
440
443
  if (model.sampleDist !== sampleDist) {
441
444
  model.sampleDist = sampleDist;
442
445
  model.UBO.setValue('SampleDistance', sampleDist);
443
- model.UBO.sendIfNeeded(device);
446
+ model.UBO.sendIfNeeded(model.device);
444
447
  } // add in 3d volume textures
445
448
 
446
449
 
@@ -456,7 +459,7 @@ function vtkWebGPUVolumePassFSQ(publicAPI, model) {
456
459
  imageData: image,
457
460
  owner: image.getPointData().getScalars()
458
461
  };
459
- var newTex = device.getTextureManager().getTexture(treq);
462
+ var newTex = model.device.getTextureManager().getTexture(treq);
460
463
 
461
464
  if (!model.textureViews[vidx + 4] || model.textureViews[vidx + 4].getTexture() !== newTex) {
462
465
  var tview = newTex.createView("volTexture".concat(vidx));
@@ -473,8 +476,18 @@ function vtkWebGPUVolumePassFSQ(publicAPI, model) {
473
476
  }
474
477
 
475
478
  model.lastVolumeLength = model.volumes.length;
476
- publicAPI.updateLUTImage(device);
477
- publicAPI.updateSSBO(device);
479
+ publicAPI.updateLUTImage(model.device);
480
+ publicAPI.updateSSBO(model.device);
481
+
482
+ if (!model.clampSampler) {
483
+ model.clampSampler = vtkWebGPUSampler.newInstance({
484
+ label: 'clampSampler'
485
+ });
486
+ model.clampSampler.create(model.device, {
487
+ minFilter: 'linear',
488
+ magFilter: 'linear'
489
+ });
490
+ }
478
491
  };
479
492
 
480
493
  publicAPI.computePipelineHash = function () {
@@ -503,25 +516,6 @@ function vtkWebGPUVolumePassFSQ(publicAPI, model) {
503
516
  }
504
517
  };
505
518
 
506
- var superclassBuild = publicAPI.build;
507
-
508
- publicAPI.build = function (renderEncoder, device) {
509
- publicAPI.computePipelineHash();
510
- publicAPI.updateBuffers(device);
511
-
512
- if (!model.clampSampler) {
513
- model.clampSampler = vtkWebGPUSampler.newInstance({
514
- label: 'clampSampler'
515
- });
516
- model.clampSampler.create(device, {
517
- minFilter: 'linear',
518
- magFilter: 'linear'
519
- });
520
- }
521
-
522
- superclassBuild(renderEncoder, device);
523
- };
524
-
525
519
  var superclassGetBindables = publicAPI.getBindables;
526
520
 
527
521
  publicAPI.getBindables = function () {
@@ -1,4 +1,4 @@
1
- import { vtkObject } from '../../interfaces';
1
+ import { vtkObject } from './../../interfaces';
2
2
 
3
3
  /**
4
4
  *
@@ -1,4 +1,4 @@
1
- import { vtkObject } from '../../interfaces';
1
+ import { vtkObject } from './../../interfaces';
2
2
 
3
3
  /**
4
4
  *
@@ -1,4 +1,4 @@
1
- import { vtkObject } from '../../interfaces';
1
+ import { vtkObject } from './../../interfaces';
2
2
 
3
3
  /**
4
4
  *
@@ -1,4 +1,4 @@
1
- import vtkProp from '../../Rendering/Core/Prop';
1
+ import vtkProp from './../../Rendering/Core/Prop';
2
2
 
3
3
  export interface IWidgetRepresentationInitialValues {
4
4
  labels?: Array<any>,
@@ -1,5 +1,5 @@
1
- import vtkAbstractWidget from '../Core/AbstractWidget';
2
- import { Vector3, Bounds } from '../../types';
1
+ import vtkAbstractWidget from './../Core/AbstractWidget';
2
+ import { Vector3, Bounds } from './../../types';
3
3
 
4
4
  export interface ISphereWidgetHandleState {
5
5
  getOrigin(): Vector3;
@@ -1,14 +1,14 @@
1
1
  function funcToSource(fn, sourcemapArg) {
2
2
  var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;
3
- var source = fn.toString();
4
- var lines = source.split('\n');
5
- lines.pop();
6
- lines.shift();
7
- var blankPrefixLength = lines[0].search(/\S/);
8
3
  var regex = /(['"])__worker_loader_strict__(['"])/g;
9
- for (var i = 0, n = lines.length; i < n; ++i) {
10
- lines[i] = lines[i].substring(blankPrefixLength).replace(regex, '$1use strict$2') + '\n';
11
- }
4
+ var lines = [];
5
+
6
+ // instead of extracting the function source code, just return the function as if it's being evaluated
7
+ // by the caller.
8
+ var source = fn.toString();
9
+ source = source.replace(regex, '$1use strict$2');
10
+ lines.push('(' + source + ')()');
11
+
12
12
  if (sourcemap) {
13
13
  lines.push('\/\/# sourceMappingURL=' + sourcemap + '\n');
14
14
  }
package/interfaces.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import vtkDataArray from '././Common/Core/DataArray';
2
- import { vtkPipelineConnection } from '././types';
1
+ import vtkDataArray from './Common/Core/DataArray';
2
+ import { vtkPipelineConnection } from './types';
3
3
 
4
4
  /**
5
5
  * Object returned on any subscription call
package/macros.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { vtkSubscription, vtkDebouncedFunction, vtkProperty, vtkPropertyDomain } from '././interfaces';
1
+ import { vtkSubscription, vtkDebouncedFunction, vtkProperty, vtkPropertyDomain } from './interfaces';
2
2
 
3
3
  /**
4
4
  * Allow user to redefine vtkXXXMacro method call.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitware/vtk.js",
3
- "version": "24.5.0",
3
+ "version": "24.5.3",
4
4
  "description": "Visualization Toolkit for the Web",
5
5
  "keywords": [
6
6
  "3d",
package/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { vtkOutputPort } from '././interfaces';
1
+ import { vtkOutputPort } from './interfaces';
2
2
 
3
3
  /** Alias type for value that can be null */
4
4
  declare type Nullable<T> = T | null;
package/tsconfig.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "include": ["Sources/**/*"],
3
- "compilerOptions": {
4
- "allowJs": true,
5
- "declaration": true,
6
- "emitDeclarationOnly": true
7
- }
8
- }