@kitware/vtk.js 21.5.1 → 22.0.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 (138) hide show
  1. package/CONTRIBUTING.md +2 -2
  2. package/Common/Core/CellArray.js +2 -2
  3. package/Common/Core/DataArray.js +2 -2
  4. package/Common/Core/MatrixBuilder.d.ts +1 -1
  5. package/Common/Core/ScalarsToColors.js +12 -11
  6. package/Common/DataModel/BoundingBox.js +2 -2
  7. package/Common/DataModel/Box.js +2 -2
  8. package/Common/DataModel/CellTypes.js +2 -2
  9. package/Common/DataModel/Cylinder.js +2 -2
  10. package/Common/DataModel/DataSet.js +2 -2
  11. package/Common/DataModel/DataSetAttributes.js +2 -2
  12. package/Common/DataModel/ImplicitBoolean.js +2 -2
  13. package/Common/DataModel/Line.js +2 -2
  14. package/Common/DataModel/PiecewiseFunction.js +3 -3
  15. package/Common/DataModel/Plane.js +2 -2
  16. package/Common/DataModel/SelectionNode.js +2 -2
  17. package/Common/DataModel/Sphere.js +2 -2
  18. package/Common/DataModel/StructuredData.js +2 -2
  19. package/Common/DataModel/Triangle.js +2 -2
  20. package/Common/Transform/LandmarkTransform.js +2 -2
  21. package/Filters/Core/Cutter.js +2 -2
  22. package/Filters/General/Calculator.js +2 -2
  23. package/Filters/Sources/Arrow2DSource.js +2 -2
  24. package/Filters/Sources/CircleSource.js +2 -2
  25. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +6 -12
  26. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +11 -19
  27. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +8 -15
  28. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +11 -19
  29. package/IO/Core/HttpSceneLoader.js +2 -2
  30. package/IO/Core/ImageStream/DefaultProtocol.js +2 -6
  31. package/IO/Geometry/PLYWriter/Constants.js +19 -0
  32. package/IO/Geometry/PLYWriter.d.ts +203 -0
  33. package/IO/Geometry/PLYWriter.js +323 -0
  34. package/IO/Geometry/STLWriter.js +2 -2
  35. package/IO/Geometry.js +3 -1
  36. package/IO/XML/XMLImageDataWriter.js +2 -2
  37. package/IO/XML/XMLPolyDataWriter.js +2 -2
  38. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +2 -2
  39. package/Imaging/Core/AbstractImageInterpolator.js +2 -2
  40. package/Imaging/Core/ImageInterpolator.js +12 -12
  41. package/Imaging/Core/ImageReslice.js +10 -10
  42. package/Imaging/Hybrid/SampleFunction.js +2 -2
  43. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +2 -2
  44. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +2 -2
  45. package/Interaction/Style/InteractorStyleManipulator.js +2 -2
  46. package/Interaction/Style/InteractorStyleRemoteMouse.js +2 -2
  47. package/Interaction/UI/FPSMonitor.js +2 -2
  48. package/Interaction/UI/Slider.js +2 -2
  49. package/Interaction/Widgets/AbstractWidget.js +2 -2
  50. package/Interaction/Widgets/DistanceRepresentation.js +2 -2
  51. package/Interaction/Widgets/DistanceWidget.js +2 -2
  52. package/Interaction/Widgets/HandleRepresentation.js +2 -2
  53. package/Interaction/Widgets/HandleWidget.js +2 -2
  54. package/Interaction/Widgets/ImageCroppingRegionsWidget.js +2 -2
  55. package/Interaction/Widgets/LabelRepresentation.js +2 -2
  56. package/Interaction/Widgets/LabelWidget.js +2 -2
  57. package/Interaction/Widgets/LineRepresentation.js +2 -2
  58. package/Interaction/Widgets/LineWidget.js +2 -2
  59. package/Interaction/Widgets/OrientationMarkerWidget.js +2 -2
  60. package/Interaction/Widgets/PiecewiseGaussianWidget.js +2 -2
  61. package/Interaction/Widgets/ResliceCursor/ResliceCursor.js +2 -2
  62. package/Interaction/Widgets/ResliceCursor/ResliceCursorActor.js +2 -2
  63. package/Interaction/Widgets/ResliceCursor/ResliceCursorPolyDataAlgorithm.js +2 -2
  64. package/Interaction/Widgets/ResliceCursor/ResliceCursorWidget.js +2 -2
  65. package/Interaction/Widgets/SphereHandleRepresentation.js +2 -2
  66. package/Proxy/Core/PiecewiseFunctionProxy.js +2 -2
  67. package/Proxy/Core/ProxyManager/core.js +2 -2
  68. package/Proxy/Core/ProxyManager/properties.js +2 -2
  69. package/Proxy/Core/ProxyManager/state.js +2 -2
  70. package/Proxy/Representations/SliceRepresentationProxy.js +2 -2
  71. package/Rendering/Core/AbstractMapper.d.ts +4 -4
  72. package/Rendering/Core/AbstractMapper.js +18 -7
  73. package/Rendering/Core/Actor.js +2 -2
  74. package/Rendering/Core/AnnotatedCubeActor.js +2 -2
  75. package/Rendering/Core/AxesActor.js +2 -2
  76. package/Rendering/Core/CellPicker.js +2 -2
  77. package/Rendering/Core/ColorTransferFunction.d.ts +312 -259
  78. package/Rendering/Core/ColorTransferFunction.js +2 -2
  79. package/Rendering/Core/Coordinate.js +2 -2
  80. package/Rendering/Core/CubeAxesActor.js +2 -2
  81. package/Rendering/Core/Follower.js +2 -2
  82. package/Rendering/Core/Glyph3DMapper.js +2 -2
  83. package/Rendering/Core/ImageMapper.js +2 -2
  84. package/Rendering/Core/InteractorObserver.js +2 -2
  85. package/Rendering/Core/InteractorStyle.js +2 -2
  86. package/Rendering/Core/Mapper.js +2 -2
  87. package/Rendering/Core/Picker.js +2 -2
  88. package/Rendering/Core/Property.js +2 -2
  89. package/Rendering/Core/RenderWindowInteractor.js +9 -9
  90. package/Rendering/Core/ScalarBarActor.js +2 -2
  91. package/Rendering/Core/VolumeMapper.js +1 -4
  92. package/Rendering/Core/VolumeProperty.js +2 -2
  93. package/Rendering/Core.js +2 -2
  94. package/Rendering/Misc/RenderWindowWithControlBar.js +2 -2
  95. package/Rendering/Misc/SynchronizableRenderWindow/vtkObjectManager.js +2 -2
  96. package/Rendering/Misc/SynchronizableRenderWindow.js +2 -2
  97. package/Rendering/OpenGL/BufferObject.js +5 -5
  98. package/Rendering/OpenGL/CellArrayBufferObject.js +2 -1
  99. package/Rendering/OpenGL/Glyph3DMapper.js +2 -2
  100. package/Rendering/OpenGL/HardwareSelector.js +2 -2
  101. package/Rendering/OpenGL/RenderWindow.js +49 -5
  102. package/Rendering/OpenGL/SphereMapper.js +2 -2
  103. package/Rendering/OpenGL/StickMapper.js +2 -2
  104. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +2 -2
  105. package/Rendering/OpenGL/Texture.js +2 -2
  106. package/Rendering/OpenGL/VolumeMapper.js +11 -18
  107. package/Rendering/WebGPU/Buffer.js +2 -2
  108. package/Rendering/WebGPU/BufferManager.js +2 -2
  109. package/Rendering/WebGPU/Glyph3DMapper.js +2 -2
  110. package/Rendering/WebGPU/HardwareSelector.js +1 -1
  111. package/Rendering/WebGPU/MapperHelper.js +2 -1
  112. package/Rendering/WebGPU/PolyDataMapper.js +1 -1
  113. package/Rendering/WebGPU/StorageBuffer.js +1 -1
  114. package/Rendering/WebGPU/TextureManager.js +1 -1
  115. package/Rendering/WebGPU/UniformBuffer.js +69 -52
  116. package/Rendering/WebGPU/VolumePass.js +55 -12
  117. package/Rendering/WebGPU/VolumePassFSQ.js +4 -1
  118. package/Widgets/Core/AbstractWidgetFactory.js +2 -2
  119. package/Widgets/Representations/ArrowHandleRepresentation.js +2 -2
  120. package/Widgets/Representations/ContextRepresentation.js +2 -2
  121. package/Widgets/Representations/HandleRepresentation.js +2 -2
  122. package/Widgets/Representations/PolyLineRepresentation.js +2 -2
  123. package/Widgets/Representations/ResliceCursorContextRepresentation.js +2 -2
  124. package/Widgets/SVG/SVGLandmarkRepresentation.js +2 -2
  125. package/Widgets/Widgets3D/EllipseWidget/behavior.js +2 -2
  126. package/Widgets/Widgets3D/EllipseWidget.js +2 -2
  127. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +2 -2
  128. package/Widgets/Widgets3D/LineWidget/behavior.js +2 -2
  129. package/Widgets/Widgets3D/RectangleWidget/behavior.js +2 -2
  130. package/Widgets/Widgets3D/RectangleWidget.js +2 -2
  131. package/Widgets/Widgets3D/ShapeWidget/behavior.js +2 -2
  132. package/Widgets/Widgets3D/ShapeWidget.js +2 -2
  133. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +44 -44
  134. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +1 -1
  135. package/macros.js +2 -2
  136. package/package.json +52 -54
  137. package/vtk.js +2 -2
  138. package/Utilities/config/rules-linter.js +0 -13
@@ -2,9 +2,9 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import macro from '../../macros.js';
3
3
  import Constants from './BufferManager/Constants.js';
4
4
 
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
 
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
 
9
9
  var forwarded = ['getMappedRange', 'mapAsync', 'unmap'];
10
10
 
@@ -6,9 +6,9 @@ import vtkWebGPUTypes from './Types.js';
6
6
  import vtkProperty from '../Core/Property.js';
7
7
  import Constants from './BufferManager/Constants.js';
8
8
 
9
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
10
 
11
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12
12
  var BufferUsage = Constants.BufferUsage,
13
13
  PrimitiveTypes = Constants.PrimitiveTypes;
14
14
  var Representation = vtkProperty.Representation;
@@ -6,9 +6,9 @@ import vtkWebGPUShaderCache from './ShaderCache.js';
6
6
  import vtkWebGPUBufferManager from './BufferManager.js';
7
7
  import { registerOverride } from './ViewNodeFactory.js';
8
8
 
9
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
10
 
11
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12
12
  var PrimitiveTypes = vtkWebGPUBufferManager.PrimitiveTypes; // ----------------------------------------------------------------------------
13
13
  // vtkWebGPUSphereMapper methods
14
14
  // ----------------------------------------------------------------------------
@@ -247,7 +247,7 @@ function vtkWebGPUHardwareSelector(publicAPI, model) {
247
247
  model.WebGPURenderWindow.initialize();
248
248
  _context.next = 8;
249
249
  return new Promise(function (resolve) {
250
- return model.WebGPURenderWindow.onInitialized(resolve);
250
+ model.WebGPURenderWindow.onInitialized(resolve);
251
251
  });
252
252
 
253
253
  case 8:
@@ -32,7 +32,8 @@ function vtkWebGPUMapperHelper(publicAPI, model) {
32
32
  sdrs.push(vDesc);
33
33
  sdrs.push(fDesc); // look for replacements to invoke
34
34
 
35
- var scode = model.vertexShaderTemplate + model.fragmentShaderTemplate;
35
+ var scode = model.vertexShaderTemplate + model.fragmentShaderTemplate; // eslint-disable-next-line prefer-regex-literals
36
+
36
37
  var re = new RegExp('//VTK::[^:]*::', 'g');
37
38
  var unique = scode.match(re).filter(function (v, i, a) {
38
39
  return a.indexOf(v) === i;
@@ -245,8 +245,8 @@ function vtkWebGPUPolyDataMapper(publicAPI, model) {
245
245
  case BufferUsage.Verts:
246
246
  return 'point-list';
247
247
 
248
- default:
249
248
  case BufferUsage.Lines:
249
+ default:
250
250
  return 'line-list';
251
251
  }
252
252
  };
@@ -178,7 +178,7 @@ function vtkWebGPUStorageBuffer(publicAPI, model) {
178
178
  lines.push(" ".concat(entry.name, ": ").concat(entry.type, ";"));
179
179
  }
180
180
 
181
- lines.push("\n};\n[[block]] struct ".concat(model.name, "Struct\n{\n values: array<").concat(model.name, "StructEntry>;\n};\n[[binding(").concat(binding, "), group(").concat(group, ")]] var<storage, read> ").concat(model.name, ": ").concat(model.name, "Struct;\n"));
181
+ lines.push("\n};\nstruct ".concat(model.name, "Struct\n{\n values: array<").concat(model.name, "StructEntry>;\n};\n[[binding(").concat(binding, "), group(").concat(group, ")]] var<storage, read> ").concat(model.name, ": ").concat(model.name, "Struct;\n"));
182
182
  return lines.join('\n');
183
183
  };
184
184
 
@@ -45,9 +45,9 @@ function vtkWebGPUTextureManager(publicAPI, model) {
45
45
  req.format = 'rg';
46
46
  break;
47
47
 
48
- default:
49
48
  case 3:
50
49
  case 4:
50
+ default:
51
51
  req.format = 'rgba';
52
52
  break;
53
53
  }
@@ -45,18 +45,34 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
45
45
  }
46
46
 
47
47
  var currOffset = 0;
48
- var newEntries = []; // pack anything whose size is a multiple of 16 bytes first
49
- // this includes a couple types that don't require 16 byte alignment
50
- // such as mat2x2<f32> but that is OK
48
+ var newEntries = []; // compute the max alignment, this is required as WebGPU defines a UBO to have
49
+ // a size that is a multiple of the maxAlignment
50
+
51
+ var maxAlignment = 4;
51
52
 
52
53
  for (var i = 0; i < model.bufferEntries.length; i++) {
53
54
  var entry = model.bufferEntries[i];
54
55
 
55
- if (entry.packed === false && entry.sizeInBytes % 16 === 0) {
56
- entry.packed = true;
57
- entry.offset = currOffset;
58
- newEntries.push(entry);
59
- currOffset += entry.sizeInBytes;
56
+ if (entry.sizeInBytes % 16 === 0) {
57
+ maxAlignment = Math.max(16, maxAlignment);
58
+ }
59
+
60
+ if (entry.sizeInBytes % 8 === 0) {
61
+ maxAlignment = Math.max(8, maxAlignment);
62
+ }
63
+ } // pack anything whose size is a multiple of 16 bytes first
64
+ // this includes a couple types that don't require 16 byte alignment
65
+ // such as mat2x2<f32> but that is OK
66
+
67
+
68
+ for (var _i = 0; _i < model.bufferEntries.length; _i++) {
69
+ var _entry = model.bufferEntries[_i];
70
+
71
+ if (_entry.packed === false && _entry.sizeInBytes % 16 === 0) {
72
+ _entry.packed = true;
73
+ _entry.offset = currOffset;
74
+ newEntries.push(_entry);
75
+ currOffset += _entry.sizeInBytes;
60
76
  }
61
77
  } // now it gets tough, we have the following common types (f32, i32, u32)
62
78
  // - vec2<f32> 8 byte size, 8 byte alignment
@@ -65,18 +81,18 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
65
81
  // try adding 12 byte, 4 byte pairs
66
82
 
67
83
 
68
- for (var _i = 0; _i < model.bufferEntries.length; _i++) {
69
- var _entry = model.bufferEntries[_i];
84
+ for (var _i2 = 0; _i2 < model.bufferEntries.length; _i2++) {
85
+ var _entry2 = model.bufferEntries[_i2];
70
86
 
71
- if (_entry.packed === false && _entry.sizeInBytes === 12) {
87
+ if (_entry2.packed === false && _entry2.sizeInBytes === 12) {
72
88
  for (var i2 = 0; i2 < model.bufferEntries.length; i2++) {
73
89
  var entry2 = model.bufferEntries[i2];
74
90
 
75
91
  if (entry2.packed === false && entry2.sizeInBytes === 4) {
76
- _entry.packed = true;
77
- _entry.offset = currOffset;
78
- newEntries.push(_entry);
79
- currOffset += _entry.sizeInBytes;
92
+ _entry2.packed = true;
93
+ _entry2.offset = currOffset;
94
+ newEntries.push(_entry2);
95
+ currOffset += _entry2.sizeInBytes;
80
96
  entry2.packed = true;
81
97
  entry2.offset = currOffset;
82
98
  newEntries.push(entry2);
@@ -88,22 +104,22 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
88
104
  } // try adding 8 byte, 8 byte pairs
89
105
 
90
106
 
91
- for (var _i2 = 0; _i2 < model.bufferEntries.length; _i2++) {
92
- var _entry2 = model.bufferEntries[_i2];
107
+ for (var _i3 = 0; _i3 < model.bufferEntries.length; _i3++) {
108
+ var _entry3 = model.bufferEntries[_i3];
93
109
 
94
- if (!_entry2.packed && _entry2.sizeInBytes % 8 === 0) {
95
- for (var _i3 = _i2 + 1; _i3 < model.bufferEntries.length; _i3++) {
96
- var _entry3 = model.bufferEntries[_i3];
110
+ if (!_entry3.packed && _entry3.sizeInBytes % 8 === 0) {
111
+ for (var _i4 = _i3 + 1; _i4 < model.bufferEntries.length; _i4++) {
112
+ var _entry4 = model.bufferEntries[_i4];
97
113
 
98
- if (!_entry3.packed && _entry3.sizeInBytes % 8 === 0) {
99
- _entry2.packed = true;
100
- _entry2.offset = currOffset;
101
- newEntries.push(_entry2);
102
- currOffset += _entry2.sizeInBytes;
114
+ if (!_entry4.packed && _entry4.sizeInBytes % 8 === 0) {
103
115
  _entry3.packed = true;
104
116
  _entry3.offset = currOffset;
105
117
  newEntries.push(_entry3);
106
118
  currOffset += _entry3.sizeInBytes;
119
+ _entry4.packed = true;
120
+ _entry4.offset = currOffset;
121
+ newEntries.push(_entry4);
122
+ currOffset += _entry4.sizeInBytes;
107
123
  break;
108
124
  }
109
125
  }
@@ -111,28 +127,28 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
111
127
  } // try adding 8 byte, 4 byte 4 byte triplets
112
128
 
113
129
 
114
- for (var _i4 = 0; _i4 < model.bufferEntries.length; _i4++) {
115
- var _entry4 = model.bufferEntries[_i4];
130
+ for (var _i5 = 0; _i5 < model.bufferEntries.length; _i5++) {
131
+ var _entry5 = model.bufferEntries[_i5];
116
132
 
117
- if (!_entry4.packed && _entry4.sizeInBytes % 8 === 0) {
133
+ if (!_entry5.packed && _entry5.sizeInBytes % 8 === 0) {
118
134
  var found = false;
119
135
 
120
- for (var _i5 = 0; !found && _i5 < model.bufferEntries.length; _i5++) {
121
- var _entry5 = model.bufferEntries[_i5];
136
+ for (var _i6 = 0; !found && _i6 < model.bufferEntries.length; _i6++) {
137
+ var _entry6 = model.bufferEntries[_i6];
122
138
 
123
- if (!_entry5.packed && _entry5.sizeInBytes === 4) {
124
- for (var i3 = _i5 + 1; i3 < model.bufferEntries.length; i3++) {
139
+ if (!_entry6.packed && _entry6.sizeInBytes === 4) {
140
+ for (var i3 = _i6 + 1; i3 < model.bufferEntries.length; i3++) {
125
141
  var entry3 = model.bufferEntries[i3];
126
142
 
127
143
  if (!entry3.packed && entry3.sizeInBytes === 4) {
128
- _entry4.packed = true;
129
- _entry4.offset = currOffset;
130
- newEntries.push(_entry4);
131
- currOffset += _entry4.sizeInBytes;
132
144
  _entry5.packed = true;
133
145
  _entry5.offset = currOffset;
134
146
  newEntries.push(_entry5);
135
147
  currOffset += _entry5.sizeInBytes;
148
+ _entry6.packed = true;
149
+ _entry6.offset = currOffset;
150
+ newEntries.push(_entry6);
151
+ currOffset += _entry6.sizeInBytes;
136
152
  entry3.packed = true;
137
153
  entry3.offset = currOffset;
138
154
  newEntries.push(entry3);
@@ -149,27 +165,27 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
149
165
  // in a failed UBO
150
166
 
151
167
 
152
- for (var _i6 = 0; _i6 < model.bufferEntries.length; _i6++) {
153
- var _entry6 = model.bufferEntries[_i6];
154
-
155
- if (!_entry6.packed && _entry6.sizeInBytes > 4) {
156
- _entry6.packed = true;
157
- _entry6.offset = currOffset;
158
- newEntries.push(_entry6);
159
- currOffset += _entry6.sizeInBytes;
160
- }
161
- } // finally add remaining 4 byte items
162
-
163
-
164
168
  for (var _i7 = 0; _i7 < model.bufferEntries.length; _i7++) {
165
169
  var _entry7 = model.bufferEntries[_i7];
166
170
 
167
- if (!_entry7.packed) {
171
+ if (!_entry7.packed && _entry7.sizeInBytes > 4) {
168
172
  _entry7.packed = true;
169
173
  _entry7.offset = currOffset;
170
174
  newEntries.push(_entry7);
171
175
  currOffset += _entry7.sizeInBytes;
172
176
  }
177
+ } // finally add remaining 4 byte items
178
+
179
+
180
+ for (var _i8 = 0; _i8 < model.bufferEntries.length; _i8++) {
181
+ var _entry8 = model.bufferEntries[_i8];
182
+
183
+ if (!_entry8.packed) {
184
+ _entry8.packed = true;
185
+ _entry8.offset = currOffset;
186
+ newEntries.push(_entry8);
187
+ currOffset += _entry8.sizeInBytes;
188
+ }
173
189
  } // update entries and entryNames
174
190
 
175
191
 
@@ -177,11 +193,12 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
177
193
 
178
194
  model._bufferEntryNames.clear();
179
195
 
180
- for (var _i8 = 0; _i8 < model.bufferEntries.length; _i8++) {
181
- model._bufferEntryNames.set(model.bufferEntries[_i8].name, _i8);
196
+ for (var _i9 = 0; _i9 < model.bufferEntries.length; _i9++) {
197
+ model._bufferEntryNames.set(model.bufferEntries[_i9].name, _i9);
182
198
  }
183
199
 
184
200
  model.sizeInBytes = currOffset;
201
+ model.sizeInBytes = maxAlignment * Math.ceil(model.sizeInBytes / maxAlignment);
185
202
  model.sortDirty = false;
186
203
  };
187
204
 
@@ -284,7 +301,7 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
284
301
  publicAPI.getShaderCode = function (binding, group) {
285
302
  // sort the entries
286
303
  publicAPI.sortBufferEntries();
287
- var lines = ["[[block]] struct ".concat(model.name, "Struct\n{")];
304
+ var lines = ["struct ".concat(model.name, "Struct\n{")];
288
305
 
289
306
  for (var i = 0; i < model.bufferEntries.length; i++) {
290
307
  var entry = model.bufferEntries[i];
@@ -9,6 +9,7 @@ import vtkWebGPURenderEncoder from './RenderEncoder.js';
9
9
  import vtkWebGPUShaderCache from './ShaderCache.js';
10
10
  import vtkWebGPUTexture from './Texture.js';
11
11
  import vtkWebGPUVolumePassFSQ from './VolumePassFSQ.js';
12
+ import { f as distance2BetweenPoints } from '../../Common/Core/Math/index.js';
12
13
 
13
14
  var Representation = vtkProperty.Representation;
14
15
  var BufferUsage = vtkWebGPUBufferManager.BufferUsage,
@@ -46,26 +47,71 @@ function vtkWebGPUVolumePass(publicAPI, model) {
46
47
  } // we just render our delegates in order
47
48
 
48
49
 
49
- model.currentParent = viewNode; // first render the boxes to generate a min max depth
50
- // map for all the volumes
51
-
52
- publicAPI.renderDepthBounds(renNode, viewNode); // then perform the ray casting using the depth bounds texture
50
+ model.currentParent = viewNode; // then perform the ray casting using the depth bounds texture
53
51
 
54
52
  if (!model.finalEncoder) {
55
53
  publicAPI.createFinalEncoder(viewNode);
54
+ } // first render the boxes to generate a min max depth
55
+ // map for all the volumes
56
+
57
+
58
+ publicAPI.renderDepthBounds(renNode, viewNode);
59
+
60
+ if (!model.fullScreenQuad) {
61
+ model.fullScreenQuad = vtkWebGPUVolumePassFSQ.newInstance();
62
+ model.fullScreenQuad.setDevice(viewNode.getDevice());
63
+ model.fullScreenQuad.setTextureViews(_toConsumableArray(model.depthRangeEncoder.getColorTextureViews()));
56
64
  }
57
65
 
58
- publicAPI.finalPass(viewNode, renNode);
66
+ var device = viewNode.getDevice(); // -4 because we use know we use textures for min, max, ofun and tfun
67
+
68
+ var maxVolumes = device.getHandle().limits.maxSampledTexturesPerShaderStage - 4;
69
+ var cameraPos = renNode.getRenderable().getActiveCamera().getPosition();
70
+
71
+ if (model.volumes.length > maxVolumes) {
72
+ // sort from back to front based on volume centroid
73
+ var distances = [];
74
+
75
+ for (var v = 0; v < model.volumes.length; v++) {
76
+ var bounds = model.volumes[v].getRenderable().getBounds();
77
+ var centroid = [0.5 * (bounds[1] + bounds[0]), 0.5 * (bounds[3] + bounds[2]), 0.5 * (bounds[5] + bounds[4])];
78
+ distances[v] = distance2BetweenPoints(centroid, cameraPos);
79
+ } // sort by distance
80
+
81
+
82
+ var volumeOrder = _toConsumableArray(Array(model.volumes.length).keys());
83
+
84
+ volumeOrder.sort(function (a, b) {
85
+ return distances[b] - distances[a];
86
+ }); // render in chunks back to front
87
+
88
+ var volumesToRender = []; // start with smallest chunk so that the last (closest) chunk
89
+ // has a full maxVolumes;
90
+
91
+ var chunkSize = volumeOrder.length % maxVolumes;
92
+
93
+ for (var _v = 0; _v < volumeOrder.length; _v++) {
94
+ volumesToRender.push(model.volumes[volumeOrder[_v]]);
95
+
96
+ if (volumesToRender.length >= chunkSize) {
97
+ publicAPI.finalPass(viewNode, renNode, volumesToRender);
98
+ volumesToRender = [];
99
+ chunkSize = maxVolumes;
100
+ }
101
+ }
102
+ } else {
103
+ publicAPI.finalPass(viewNode, renNode, model.volumes);
104
+ }
59
105
  };
60
106
 
61
- publicAPI.finalPass = function (viewNode, renNode) {
107
+ publicAPI.finalPass = function (viewNode, renNode, volumes) {
62
108
  model.finalEncoder.setColorTextureView(0, model.colorTextureView);
63
109
  model.finalEncoder.attachTextureViews();
64
110
  renNode.setRenderEncoder(model.finalEncoder);
65
111
  model.finalEncoder.begin(viewNode.getCommandEncoder());
66
112
  renNode.scissorAndViewport(model.finalEncoder);
67
113
  model.fullScreenQuad.setWebGPURenderer(renNode);
68
- model.fullScreenQuad.setVolumes(model.volumes);
114
+ model.fullScreenQuad.setVolumes(volumes);
69
115
  model.fullScreenQuad.render(model.finalEncoder, viewNode.getDevice());
70
116
  model.finalEncoder.end();
71
117
  };
@@ -114,7 +160,7 @@ function vtkWebGPUVolumePass(publicAPI, model) {
114
160
 
115
161
  var stime = renNode.getStabilizedTime();
116
162
 
117
- if (!model._lastMTimes[model.volumes.length] || stime !== model._lastMTimes[model.volumes.length]) {
163
+ if (model._lastMTimes.length <= model.volumes.length || stime !== model._lastMTimes[model.volumes.length]) {
118
164
  update = true;
119
165
  model._lastMTimes[model.volumes.length] = stime;
120
166
  } // if no need to update then return
@@ -218,7 +264,7 @@ function vtkWebGPUVolumePass(publicAPI, model) {
218
264
  fDesc.addOutput('vec4<f32>', 'outColor1');
219
265
  fDesc.addOutput('vec4<f32>', 'outColor2');
220
266
  var code = fDesc.getCode();
221
- code = vtkWebGPUShaderCache.substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor1 = vec4<f32>(stopval, 0.0, 0.0, 0.0);', 'output.outColor2 = vec4<f32>(input.fragPos.z, 0.0, 0.0, 0.0);']).result;
267
+ code = vtkWebGPUShaderCache.substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor1 = vec4<f32>(input.fragPos.z, 0.0, 0.0, 0.0);', 'output.outColor2 = vec4<f32>(stopval, 0.0, 0.0, 0.0);']).result;
222
268
  fDesc.setCode(code);
223
269
  });
224
270
  model.depthRangeEncoder.setDescription({
@@ -271,9 +317,6 @@ function vtkWebGPUVolumePass(publicAPI, model) {
271
317
  };
272
318
 
273
319
  publicAPI.createFinalEncoder = function (viewNode) {
274
- model.fullScreenQuad = vtkWebGPUVolumePassFSQ.newInstance();
275
- model.fullScreenQuad.setDevice(viewNode.getDevice());
276
- model.fullScreenQuad.setTextureViews(_toConsumableArray(model.depthRangeEncoder.getColorTextureViews()));
277
320
  model.finalEncoder = vtkWebGPURenderEncoder.newInstance();
278
321
  model.finalEncoder.setDescription({
279
322
  colorAttachments: [{
@@ -454,7 +454,10 @@ function vtkWebGPUVolumePassFSQ(publicAPI, model) {
454
454
 
455
455
 
456
456
  if (model.volumes.length < model.lastVolumeLength) {
457
- model.textureViews.splice(model.volumes.length, model.lastVolumeLength - model.volumes.length);
457
+ // we may have gaps in the array right now so no splice
458
+ for (var _i3 = model.volumes.length; _i3 < model.lastVolumeLength; _i3++) {
459
+ model.textureViews.pop();
460
+ }
458
461
  }
459
462
 
460
463
  model.lastVolumeLength = model.volumes.length;
@@ -4,9 +4,9 @@ import macro from '../../macros.js';
4
4
  import vtkAbstractWidget from './AbstractWidget.js';
5
5
  import { extractRenderingComponents } from './WidgetManager.js';
6
6
 
7
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
7
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
8
 
9
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
9
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
10
 
11
11
  function NoOp() {} // ----------------------------------------------------------------------------
12
12
 
@@ -18,9 +18,9 @@ import { ScalarMode } from '../../Rendering/Core/Mapper/Constants.js';
18
18
  import { mat4, mat3, vec3 } from 'gl-matrix';
19
19
  import { RenderingTypes } from '../Core/WidgetManager/Constants.js';
20
20
 
21
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
22
 
23
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
24
  var ShapeType = Constants.ShapeType,
25
25
  Shapes2D = Constants.Shapes2D,
26
26
  ShapesOrientable = Constants.ShapesOrientable; // ----------------------------------------------------------------------------
@@ -2,9 +2,9 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import vtkWidgetRepresentation from './WidgetRepresentation.js';
3
3
  import { Behavior } from './WidgetRepresentation/Constants.js';
4
4
 
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
 
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  // vtkWidgetRepresentation
9
9
  // ----------------------------------------------------------------------------
10
10
 
@@ -3,9 +3,9 @@ import macro from '../../macros.js';
3
3
  import vtkWidgetRepresentation from './WidgetRepresentation.js';
4
4
  import { Behavior } from './WidgetRepresentation/Constants.js';
5
5
 
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
 
8
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
9
  // vtkHandleRepresentation methods
10
10
  // ----------------------------------------------------------------------------
11
11
 
@@ -9,9 +9,9 @@ import vtkTubeFilter from '../../Filters/General/TubeFilter.js';
9
9
  import vtkWidgetRepresentation from './WidgetRepresentation.js';
10
10
  import { RenderingTypes } from '../Core/WidgetManager/Constants.js';
11
11
 
12
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
13
 
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
15
  // vtkPolyLineRepresentation methods
16
16
  // ----------------------------------------------------------------------------
17
17
 
@@ -11,9 +11,9 @@ import vtkWidgetRepresentation from './WidgetRepresentation.js';
11
11
  import { RenderingTypes } from '../Core/WidgetManager/Constants.js';
12
12
  import { InteractionMethodsName } from '../Widgets3D/ResliceCursorWidget/Constants.js';
13
13
 
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
 
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
17
  // vtkResliceCursorContextRepresentation methods
18
18
  // ----------------------------------------------------------------------------
19
19
 
@@ -3,9 +3,9 @@ import macro from '../../macros.js';
3
3
  import vtkSVGRepresentation from './SVGRepresentation.js';
4
4
  import { fontSizeToPixels, VerticalTextAlignment } from './SVGLandmarkRepresentation/Constants.js';
5
5
 
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
 
8
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
9
  var createSvgElement = vtkSVGRepresentation.createSvgElement; // ----------------------------------------------------------------------------
10
10
  // vtkSVGLandmarkRepresentation
11
11
  // ----------------------------------------------------------------------------
@@ -2,9 +2,9 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import widgetBehavior$1 from '../ShapeWidget/behavior.js';
3
3
  import { vec3 } from 'gl-matrix';
4
4
 
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
 
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  function widgetBehavior(publicAPI, model) {
9
9
  model.shapeHandle = model.widgetState.getEllipseHandle();
10
10
  model.point1Handle = model.widgetState.getPoint1Handle();
@@ -11,9 +11,9 @@ import generateState from './EllipseWidget/state.js';
11
11
  import { BehaviorCategory, ShapeBehavior } from './ShapeWidget/Constants.js';
12
12
  import { ViewTypes } from '../Core/WidgetManager/Constants.js';
13
13
 
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
 
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
17
  // Factory
18
18
  // ----------------------------------------------------------------------------
19
19
 
@@ -1,9 +1,9 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import macro from '../../../macros.js';
3
3
 
4
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
5
 
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
7
  function widgetBehavior(publicAPI, model) {
8
8
  model.classHierarchy.push('vtkInteractiveOrientationWidgetProp');
9
9
  macro.event(publicAPI, model, 'OrientationChange'); // --------------------------------------------------------------------------
@@ -5,9 +5,9 @@ import macro from '../../../macros.js';
5
5
  import { g as subtract, k as add, l as normalize } from '../../../Common/Core/Math/index.js';
6
6
  import { getNumberOfPlacedHandles, isHandlePlaced, calculateTextPosition, updateTextPosition, getPoint } from './helpers.js';
7
7
 
8
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
 
10
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
11
  var ShapeType = Constants.ShapeType; // Total number of points to place
12
12
 
13
13
  var MAX_POINTS = 2;