@kitware/vtk.js 28.10.2 → 28.11.0

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 (565) hide show
  1. package/Common/Core/Base64.js +53 -82
  2. package/Common/Core/CellArray.js +52 -60
  3. package/Common/Core/ClassHierarchy.js +8 -36
  4. package/Common/Core/DataArray/Constants.js +6 -6
  5. package/Common/Core/DataArray.js +185 -270
  6. package/Common/Core/Endian.js +14 -17
  7. package/Common/Core/HalfFloat.js +17 -34
  8. package/Common/Core/ImageHelper.js +17 -25
  9. package/Common/Core/LookupTable.js +131 -144
  10. package/Common/Core/Math/Constants.js +8 -8
  11. package/Common/Core/Math/index.js +754 -942
  12. package/Common/Core/Math.js +2 -4
  13. package/Common/Core/MatrixBuilder.js +99 -151
  14. package/Common/Core/Points.js +43 -43
  15. package/Common/Core/PriorityQueue.js +30 -28
  16. package/Common/Core/ProgressHandler.js +31 -32
  17. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  18. package/Common/Core/ScalarsToColors.js +196 -253
  19. package/Common/Core/StringArray.js +48 -73
  20. package/Common/Core/URLExtract.js +10 -29
  21. package/Common/Core/VariantArray.js +48 -73
  22. package/Common/Core.js +11 -11
  23. package/Common/DataModel/AbstractPointLocator.js +19 -17
  24. package/Common/DataModel/BoundingBox.js +322 -490
  25. package/Common/DataModel/Box.js +46 -63
  26. package/Common/DataModel/CardinalSpline1D.js +92 -102
  27. package/Common/DataModel/Cell.js +41 -61
  28. package/Common/DataModel/CellLinks.js +91 -127
  29. package/Common/DataModel/CellTypes/Constants.js +7 -6
  30. package/Common/DataModel/CellTypes.js +55 -74
  31. package/Common/DataModel/Collection.js +45 -61
  32. package/Common/DataModel/Cone.js +28 -20
  33. package/Common/DataModel/Cylinder.js +41 -35
  34. package/Common/DataModel/DataSet/Constants.js +11 -5
  35. package/Common/DataModel/DataSet.js +37 -25
  36. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  37. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  38. package/Common/DataModel/DataSetAttributes.js +96 -138
  39. package/Common/DataModel/EdgeLocator.js +45 -70
  40. package/Common/DataModel/ITKHelper.js +67 -137
  41. package/Common/DataModel/ImageData.js +115 -172
  42. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  43. package/Common/DataModel/ImplicitBoolean.js +66 -96
  44. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  45. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  46. package/Common/DataModel/KochanekSpline1D.js +78 -81
  47. package/Common/DataModel/Line/Constants.js +2 -2
  48. package/Common/DataModel/Line.js +82 -105
  49. package/Common/DataModel/Locator.js +17 -10
  50. package/Common/DataModel/Molecule.js +26 -17
  51. package/Common/DataModel/PiecewiseFunction.js +218 -239
  52. package/Common/DataModel/Plane.js +90 -113
  53. package/Common/DataModel/PointSet.js +30 -26
  54. package/Common/DataModel/PolyData/Constants.js +2 -2
  55. package/Common/DataModel/PolyData.js +95 -120
  56. package/Common/DataModel/PolyLine.js +44 -61
  57. package/Common/DataModel/Polygon/Constants.js +4 -4
  58. package/Common/DataModel/Polygon.js +128 -169
  59. package/Common/DataModel/Quad/Constants.js +2 -2
  60. package/Common/DataModel/Quad.js +61 -100
  61. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  62. package/Common/DataModel/SelectionNode.js +25 -21
  63. package/Common/DataModel/Sphere.js +40 -35
  64. package/Common/DataModel/Spline1D/Constants.js +3 -2
  65. package/Common/DataModel/Spline1D.js +34 -18
  66. package/Common/DataModel/Spline3D/Constants.js +2 -2
  67. package/Common/DataModel/Spline3D.js +46 -41
  68. package/Common/DataModel/StructuredData/Constants.js +2 -2
  69. package/Common/DataModel/StructuredData.js +9 -20
  70. package/Common/DataModel/Triangle.js +207 -250
  71. package/Common/DataModel.js +19 -19
  72. package/Common/System/MobileVR.js +56 -61
  73. package/Common/System/TimerLog.js +1 -1
  74. package/Common/System.js +2 -2
  75. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  76. package/Common/Transform/LandmarkTransform.js +133 -117
  77. package/Common/Transform/Transform.js +42 -57
  78. package/Common/Transform.js +2 -2
  79. package/Common/index.js +4 -4
  80. package/Filters/Core/Cutter.js +134 -146
  81. package/Filters/Core/PolyDataNormals.js +44 -50
  82. package/Filters/Core.js +2 -2
  83. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  84. package/Filters/Cornerstone.js +1 -1
  85. package/Filters/General/AppendPolyData.js +84 -100
  86. package/Filters/General/Calculator.js +95 -163
  87. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  88. package/Filters/General/ClipClosedSurface.js +341 -416
  89. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  90. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  91. package/Filters/General/ContourTriangulator/helper.js +684 -812
  92. package/Filters/General/ContourTriangulator.js +92 -89
  93. package/Filters/General/ImageCropFilter.js +77 -78
  94. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  95. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  96. package/Filters/General/ImageMarchingCubes.js +99 -112
  97. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  98. package/Filters/General/ImageMarchingSquares.js +93 -118
  99. package/Filters/General/ImageOutlineFilter.js +53 -54
  100. package/Filters/General/ImageSliceFilter.js +39 -30
  101. package/Filters/General/ImageStreamline.js +107 -124
  102. package/Filters/General/LineFilter.js +26 -15
  103. package/Filters/General/MoleculeToRepresentation.js +136 -149
  104. package/Filters/General/OBBTree/OBBNode.js +36 -34
  105. package/Filters/General/OBBTree/helper.js +19 -24
  106. package/Filters/General/OBBTree.js +396 -488
  107. package/Filters/General/OutlineFilter.js +52 -34
  108. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  109. package/Filters/General/PaintFilter.js +150 -162
  110. package/Filters/General/ScalarToRGBA.js +38 -33
  111. package/Filters/General/TriangleFilter.js +65 -62
  112. package/Filters/General/TubeFilter/Constants.js +4 -4
  113. package/Filters/General/TubeFilter.js +376 -496
  114. package/Filters/General/WarpScalar.js +58 -60
  115. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  116. package/Filters/General.js +21 -21
  117. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  118. package/Filters/Sources/Arrow2DSource.js +56 -56
  119. package/Filters/Sources/ArrowSource.js +39 -29
  120. package/Filters/Sources/CircleSource.js +43 -43
  121. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  122. package/Filters/Sources/ConeSource.js +51 -42
  123. package/Filters/Sources/CubeSource.js +75 -96
  124. package/Filters/Sources/Cursor3D.js +94 -109
  125. package/Filters/Sources/CylinderSource.js +90 -90
  126. package/Filters/Sources/ImageGridSource.js +43 -43
  127. package/Filters/Sources/LineSource.js +49 -39
  128. package/Filters/Sources/PlaneSource.js +97 -104
  129. package/Filters/Sources/PointSource.js +46 -37
  130. package/Filters/Sources/RTAnalyticSource.js +50 -48
  131. package/Filters/Sources/SLICSource.js +63 -73
  132. package/Filters/Sources/SphereSource.js +88 -78
  133. package/Filters/Sources/ViewFinderSource.js +26 -23
  134. package/Filters/Sources.js +14 -14
  135. package/Filters/Texture/TextureMapToPlane.js +95 -97
  136. package/Filters/Texture/TextureMapToSphere.js +46 -54
  137. package/Filters/Texture.js +2 -2
  138. package/Filters/index.js +5 -5
  139. package/IO/Core/BinaryHelper.js +12 -18
  140. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  141. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  142. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  143. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  144. package/IO/Core/DataAccessHelper.js +6 -6
  145. package/IO/Core/HttpDataSetReader.js +136 -139
  146. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  147. package/IO/Core/HttpSceneLoader.js +130 -179
  148. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  149. package/IO/Core/ImageStream/ViewStream.js +100 -103
  150. package/IO/Core/ImageStream.js +62 -54
  151. package/IO/Core/ResourceLoader.js +10 -9
  152. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  153. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  154. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  155. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  156. package/IO/Core/Serializer.js +6 -13
  157. package/IO/Core/WSLinkClient.js +90 -76
  158. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  159. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  160. package/IO/Core.js +7 -7
  161. package/IO/Geometry/DracoReader.js +118 -121
  162. package/IO/Geometry/PLYReader.js +163 -223
  163. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  164. package/IO/Geometry/PLYWriter.js +139 -154
  165. package/IO/Geometry/STLReader.js +123 -146
  166. package/IO/Geometry/STLWriter/Constants.js +2 -2
  167. package/IO/Geometry/STLWriter.js +83 -82
  168. package/IO/Geometry.js +5 -5
  169. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  170. package/IO/Legacy/PolyDataReader.js +48 -36
  171. package/IO/Legacy.js +2 -2
  172. package/IO/Misc/ElevationReader.js +67 -60
  173. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  174. package/IO/Misc/ITKImageReader.js +58 -45
  175. package/IO/Misc/ITKPolyDataReader.js +50 -38
  176. package/IO/Misc/JSONNucleoReader.js +49 -42
  177. package/IO/Misc/JSONReader.js +38 -33
  178. package/IO/Misc/MTLReader.js +74 -119
  179. package/IO/Misc/OBJReader.js +153 -206
  180. package/IO/Misc/PDBReader.js +70 -68
  181. package/IO/Misc/SkyboxReader.js +77 -82
  182. package/IO/Misc.js +9 -9
  183. package/IO/XML/XMLImageDataReader.js +36 -38
  184. package/IO/XML/XMLImageDataWriter.js +28 -21
  185. package/IO/XML/XMLPolyDataReader.js +49 -46
  186. package/IO/XML/XMLPolyDataWriter.js +43 -42
  187. package/IO/XML/XMLReader.js +262 -304
  188. package/IO/XML/XMLWriter/Constants.js +3 -3
  189. package/IO/XML/XMLWriter.js +70 -84
  190. package/IO/XML.js +6 -6
  191. package/IO/index.js +5 -5
  192. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  193. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  194. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  195. package/Imaging/Core/ImageInterpolator.js +201 -252
  196. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  197. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  198. package/Imaging/Core/ImageReslice.js +327 -464
  199. package/Imaging/Core.js +4 -4
  200. package/Imaging/Hybrid/SampleFunction.js +58 -51
  201. package/Imaging/Hybrid.js +1 -1
  202. package/Imaging/index.js +2 -2
  203. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  204. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  205. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  206. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  207. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  208. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  209. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  210. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  211. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  212. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  213. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  214. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  215. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  216. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  217. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  218. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  219. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  221. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  222. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  223. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  224. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  225. package/Interaction/Manipulators.js +21 -21
  226. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  227. package/Interaction/Misc.js +1 -1
  228. package/Interaction/Style/InteractorStyleImage.js +101 -121
  229. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  230. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  231. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  232. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  233. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  234. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  235. package/Interaction/Style.js +5 -5
  236. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  237. package/Interaction/UI/CornerAnnotation.js +65 -48
  238. package/Interaction/UI/FPSMonitor.js +104 -105
  239. package/Interaction/UI/Icons.js +1 -1
  240. package/Interaction/UI/Slider/Constants.js +2 -2
  241. package/Interaction/UI/Slider.js +78 -95
  242. package/Interaction/UI/VolumeController.js +104 -97
  243. package/Interaction/UI.js +5 -5
  244. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  245. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  246. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  247. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  248. package/Interaction/Widgets.js +2 -2
  249. package/Interaction/index.js +5 -5
  250. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  251. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  252. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  253. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  254. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  255. package/Proxy/Core/LookupTableProxy.js +49 -52
  256. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  257. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  258. package/Proxy/Core/ProxyManager/core.js +83 -106
  259. package/Proxy/Core/ProxyManager/properties.js +53 -76
  260. package/Proxy/Core/ProxyManager/state.js +100 -110
  261. package/Proxy/Core/ProxyManager/view.js +45 -55
  262. package/Proxy/Core/ProxyManager.js +16 -8
  263. package/Proxy/Core/SourceProxy.js +41 -38
  264. package/Proxy/Core/View2DProxy.js +143 -199
  265. package/Proxy/Core/ViewProxy.js +223 -269
  266. package/Proxy/Core.js +7 -7
  267. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  268. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  269. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  270. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  271. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  272. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  273. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  274. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  275. package/Proxy/Representations.js +7 -7
  276. package/Proxy/index.js +2 -2
  277. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  278. package/Rendering/Core/AbstractImageMapper.js +18 -19
  279. package/Rendering/Core/AbstractMapper.js +39 -55
  280. package/Rendering/Core/AbstractMapper3D.js +26 -31
  281. package/Rendering/Core/AbstractPicker.js +25 -21
  282. package/Rendering/Core/Actor.js +71 -93
  283. package/Rendering/Core/Actor2D.js +64 -78
  284. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  285. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  286. package/Rendering/Core/AxesActor.js +65 -87
  287. package/Rendering/Core/Camera.js +246 -271
  288. package/Rendering/Core/CellPicker.js +125 -148
  289. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  290. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  292. package/Rendering/Core/ColorTransferFunction.js +460 -546
  293. package/Rendering/Core/Coordinate/Constants.js +2 -2
  294. package/Rendering/Core/Coordinate.js +119 -198
  295. package/Rendering/Core/CubeAxesActor.js +294 -320
  296. package/Rendering/Core/Follower.js +46 -45
  297. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  298. package/Rendering/Core/Glyph3DMapper.js +96 -148
  299. package/Rendering/Core/HardwareSelector.js +36 -69
  300. package/Rendering/Core/ImageArrayMapper.js +87 -126
  301. package/Rendering/Core/ImageCPRMapper.js +134 -209
  302. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  303. package/Rendering/Core/ImageMapper.js +85 -144
  304. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  305. package/Rendering/Core/ImageProperty.js +66 -81
  306. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  307. package/Rendering/Core/ImageResliceMapper.js +36 -29
  308. package/Rendering/Core/ImageSlice.js +85 -127
  309. package/Rendering/Core/InteractorObserver.js +82 -73
  310. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  311. package/Rendering/Core/InteractorStyle.js +56 -58
  312. package/Rendering/Core/Light.js +43 -49
  313. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  314. package/Rendering/Core/Mapper/Constants.js +6 -6
  315. package/Rendering/Core/Mapper/Static.js +15 -12
  316. package/Rendering/Core/Mapper.js +194 -259
  317. package/Rendering/Core/Mapper2D.js +61 -100
  318. package/Rendering/Core/Picker.js +124 -143
  319. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  320. package/Rendering/Core/PointPicker.js +68 -79
  321. package/Rendering/Core/Prop/Constants.js +2 -2
  322. package/Rendering/Core/Prop.js +58 -106
  323. package/Rendering/Core/Prop3D.js +54 -83
  324. package/Rendering/Core/Property/Constants.js +6 -6
  325. package/Rendering/Core/Property.js +45 -74
  326. package/Rendering/Core/Property2D/Constants.js +2 -2
  327. package/Rendering/Core/Property2D.js +33 -42
  328. package/Rendering/Core/RenderWindow.js +70 -82
  329. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  330. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  331. package/Rendering/Core/Renderer.js +192 -256
  332. package/Rendering/Core/ScalarBarActor.js +267 -272
  333. package/Rendering/Core/Skybox.js +26 -24
  334. package/Rendering/Core/SphereMapper.js +22 -12
  335. package/Rendering/Core/StickMapper.js +22 -12
  336. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  337. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  338. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  339. package/Rendering/Core/Texture.js +99 -141
  340. package/Rendering/Core/Viewport.js +60 -88
  341. package/Rendering/Core/Volume.js +55 -77
  342. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  343. package/Rendering/Core/VolumeMapper.js +59 -91
  344. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  345. package/Rendering/Core/VolumeProperty.js +78 -115
  346. package/Rendering/Core.js +47 -49
  347. package/Rendering/Misc/CanvasView.js +62 -61
  348. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  349. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  350. package/Rendering/Misc/RemoteView.js +86 -80
  351. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  352. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  354. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  355. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  356. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  357. package/Rendering/Misc.js +7 -7
  358. package/Rendering/OpenGL/Actor.js +57 -68
  359. package/Rendering/OpenGL/Actor2D.js +56 -56
  360. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  361. package/Rendering/OpenGL/BufferObject.js +50 -65
  362. package/Rendering/OpenGL/Camera.js +35 -29
  363. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  364. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  365. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  366. package/Rendering/OpenGL/ForwardPass.js +53 -64
  367. package/Rendering/OpenGL/Framebuffer.js +61 -101
  368. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  369. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  370. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  371. package/Rendering/OpenGL/Helper.js +58 -73
  372. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  373. package/Rendering/OpenGL/ImageMapper.js +268 -361
  374. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  375. package/Rendering/OpenGL/ImageSlice.js +48 -54
  376. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  377. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  378. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  379. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  380. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  381. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  382. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  383. package/Rendering/OpenGL/RenderWindow.js +356 -510
  384. package/Rendering/OpenGL/Renderer.js +77 -89
  385. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  386. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  387. package/Rendering/OpenGL/Shader.js +37 -31
  388. package/Rendering/OpenGL/ShaderCache.js +67 -74
  389. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  390. package/Rendering/OpenGL/Skybox.js +99 -60
  391. package/Rendering/OpenGL/SphereMapper.js +94 -108
  392. package/Rendering/OpenGL/StickMapper.js +110 -114
  393. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  395. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  397. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  398. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  399. package/Rendering/OpenGL/Texture.js +443 -608
  400. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  401. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  402. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  403. package/Rendering/OpenGL/Volume.js +38 -34
  404. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  405. package/Rendering/OpenGL.js +28 -28
  406. package/Rendering/SceneGraph/RenderPass.js +34 -31
  407. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  408. package/Rendering/SceneGraph/ViewNode.js +82 -111
  409. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  410. package/Rendering/SceneGraph.js +4 -4
  411. package/Rendering/WebGPU/Actor.js +49 -49
  412. package/Rendering/WebGPU/Actor2D.js +45 -44
  413. package/Rendering/WebGPU/BindGroup.js +43 -50
  414. package/Rendering/WebGPU/Buffer.js +41 -50
  415. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  416. package/Rendering/WebGPU/BufferManager.js +111 -141
  417. package/Rendering/WebGPU/Camera.js +65 -67
  418. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  419. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  420. package/Rendering/WebGPU/Device.js +78 -133
  421. package/Rendering/WebGPU/ForwardPass.js +75 -72
  422. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  423. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  424. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  425. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  426. package/Rendering/WebGPU/ImageMapper.js +180 -171
  427. package/Rendering/WebGPU/ImageSlice.js +45 -44
  428. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  429. package/Rendering/WebGPU/OpaquePass.js +37 -36
  430. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  431. package/Rendering/WebGPU/Pipeline.js +37 -51
  432. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  433. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  434. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  435. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  436. package/Rendering/WebGPU/RenderWindow.js +262 -376
  437. package/Rendering/WebGPU/Renderer.js +224 -208
  438. package/Rendering/WebGPU/Sampler.js +27 -21
  439. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  440. package/Rendering/WebGPU/ShaderCache.js +43 -41
  441. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  442. package/Rendering/WebGPU/ShaderModule.js +26 -17
  443. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  444. package/Rendering/WebGPU/SphereMapper.js +200 -130
  445. package/Rendering/WebGPU/StickMapper.js +289 -152
  446. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  447. package/Rendering/WebGPU/Texture.js +79 -99
  448. package/Rendering/WebGPU/TextureManager.js +52 -54
  449. package/Rendering/WebGPU/TextureView.js +40 -43
  450. package/Rendering/WebGPU/Types.js +53 -70
  451. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  452. package/Rendering/WebGPU/VertexInput.js +64 -90
  453. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  454. package/Rendering/WebGPU/Volume.js +52 -51
  455. package/Rendering/WebGPU/VolumePass.js +218 -239
  456. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  457. package/Rendering/WebGPU.js +1 -1
  458. package/Rendering/index.js +5 -5
  459. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  460. package/Widgets/Core/AbstractWidget.js +49 -58
  461. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  462. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  463. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  464. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  465. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  466. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  467. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  468. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  469. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  470. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  471. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  472. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  474. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  475. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder.js +120 -149
  477. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  478. package/Widgets/Core/WidgetManager.js +249 -421
  479. package/Widgets/Core/WidgetState.js +48 -57
  480. package/Widgets/Core.js +5 -5
  481. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  482. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  483. package/Widgets/Manipulators/LineManipulator.js +31 -28
  484. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  485. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  486. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  487. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  488. package/Widgets/Manipulators.js +4 -2
  489. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  490. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  491. package/Widgets/Representations/ContextRepresentation.js +17 -14
  492. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  493. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  494. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  495. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  496. package/Widgets/Representations/HandleRepresentation.js +17 -14
  497. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  498. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  499. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  500. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  501. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  502. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  503. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  504. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  505. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  506. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  507. package/Widgets/Representations.js +13 -13
  508. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  509. package/Widgets/Widgets3D/AngleWidget.js +40 -38
  510. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  511. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  512. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  513. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  514. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  515. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  516. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  517. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  518. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  519. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  520. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  523. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  524. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  525. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  526. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  527. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  528. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  529. package/Widgets/Widgets3D/LineWidget.js +39 -35
  530. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  531. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  532. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  533. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  534. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  535. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  536. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  537. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  538. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +133 -209
  539. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  540. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
  541. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  542. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  543. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  544. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  545. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  546. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  547. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  548. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  549. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  550. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  551. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  552. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  553. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  554. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  555. package/Widgets/Widgets3D.js +15 -15
  556. package/Widgets/index.js +4 -4
  557. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  559. package/favicon.js +5 -6
  560. package/index.d.ts +4 -2
  561. package/index.js +4 -3
  562. package/macros.js +4 -1931
  563. package/macros2.js +1684 -0
  564. package/package.json +6 -6
  565. package/vtk.js +18 -31
@@ -1,6 +1,4 @@
1
- import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
2
- import _regeneratorRuntime from '@babel/runtime/regenerator';
3
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
4
2
  import { registerViewConstructor } from '../Core/RenderWindow.js';
5
3
  import vtkForwardPass from './ForwardPass.js';
6
4
  import vtkWebGPUBuffer from './Buffer.js';
@@ -11,29 +9,29 @@ import vtkRenderPass from '../SceneGraph/RenderPass.js';
11
9
  import vtkRenderWindowViewNode from '../SceneGraph/RenderWindowViewNode.js';
12
10
  import HalfFloat from '../../Common/Core/HalfFloat.js';
13
11
 
14
- var vtkErrorMacro = macro.vtkErrorMacro; // const IS_CHROME = navigator.userAgent.indexOf('Chrome') !== -1;
15
-
16
- var SCREENSHOT_PLACEHOLDER = {
12
+ const {
13
+ vtkErrorMacro
14
+ } = macro;
15
+ // const IS_CHROME = navigator.userAgent.indexOf('Chrome') !== -1;
16
+ const SCREENSHOT_PLACEHOLDER = {
17
17
  position: 'absolute',
18
18
  top: 0,
19
19
  left: 0,
20
20
  width: '100%',
21
21
  height: '100%'
22
- }; // ----------------------------------------------------------------------------
22
+ };
23
+
24
+ // ----------------------------------------------------------------------------
23
25
  // vtkWebGPURenderWindow methods
24
26
  // ----------------------------------------------------------------------------
25
27
 
26
28
  function vtkWebGPURenderWindow(publicAPI, model) {
27
29
  // Set our className
28
30
  model.classHierarchy.push('vtkWebGPURenderWindow');
31
+ publicAPI.getViewNodeFactory = () => model.myFactory;
29
32
 
30
- publicAPI.getViewNodeFactory = function () {
31
- return model.myFactory;
32
- }; // Auto update style
33
-
34
-
35
- var previousSize = [0, 0];
36
-
33
+ // Auto update style
34
+ const previousSize = [0, 0];
37
35
  function updateWindow() {
38
36
  // Canvas size
39
37
  if (model.renderable) {
@@ -44,35 +42,33 @@ function vtkWebGPURenderWindow(publicAPI, model) {
44
42
  model.canvas.setAttribute('height', model.size[1]);
45
43
  publicAPI.recreateSwapChain();
46
44
  }
47
- } // ImageStream size
48
-
45
+ }
49
46
 
47
+ // ImageStream size
50
48
  if (model.viewStream) {
51
49
  // If same size that's a NoOp
52
50
  model.viewStream.setSize(model.size[0], model.size[1]);
53
- } // Offscreen ?
54
-
51
+ }
55
52
 
56
- model.canvas.style.display = model.useOffScreen ? 'none' : 'block'; // Cursor type
53
+ // Offscreen ?
54
+ model.canvas.style.display = model.useOffScreen ? 'none' : 'block';
57
55
 
56
+ // Cursor type
58
57
  if (model.el) {
59
58
  model.el.style.cursor = model.cursorVisibility ? model.cursor : 'none';
60
- } // Invalidate cached DOM container size
61
-
59
+ }
62
60
 
61
+ // Invalidate cached DOM container size
63
62
  model.containerSize = null;
64
63
  }
65
-
66
64
  publicAPI.onModified(updateWindow);
67
-
68
- publicAPI.recreateSwapChain = function () {
65
+ publicAPI.recreateSwapChain = () => {
69
66
  if (model.context) {
70
67
  model.context.unconfigure();
71
68
  model.presentationFormat = navigator.gpu.getPreferredCanvasFormat(model.adapter);
72
- /* eslint-disable no-undef */
73
69
 
70
+ /* eslint-disable no-undef */
74
71
  /* eslint-disable no-bitwise */
75
-
76
72
  model.context.configure({
77
73
  device: model.device.getHandle(),
78
74
  format: model.presentationFormat,
@@ -84,18 +80,14 @@ function vtkWebGPURenderWindow(publicAPI, model) {
84
80
  model._configured = true;
85
81
  }
86
82
  };
83
+ publicAPI.getCurrentTexture = () => model.context.getCurrentTexture();
87
84
 
88
- publicAPI.getCurrentTexture = function () {
89
- return model.context.getCurrentTexture();
90
- }; // Builds myself.
91
-
92
-
93
- publicAPI.buildPass = function (prepass) {
85
+ // Builds myself.
86
+ publicAPI.buildPass = prepass => {
94
87
  if (prepass) {
95
88
  if (!model.renderable) {
96
89
  return;
97
90
  }
98
-
99
91
  publicAPI.prepareNodes();
100
92
  publicAPI.addMissingNodes(model.renderable.getRenderersByReference());
101
93
  publicAPI.removeUnusedNodes();
@@ -104,10 +96,11 @@ function vtkWebGPURenderWindow(publicAPI, model) {
104
96
  if (!model._configured) {
105
97
  publicAPI.recreateSwapChain();
106
98
  }
107
-
108
99
  model.commandEncoder = model.device.createCommandEncoder();
109
100
  }
110
- }; // publicAPI.traverseRenderers = (renPass) => {
101
+ };
102
+
103
+ // publicAPI.traverseRenderers = (renPass) => {
111
104
  // // iterate over renderers
112
105
  // const numlayers = publicAPI.getRenderable().getNumberOfLayers();
113
106
  // const renderers = publicAPI.getChildren();
@@ -122,137 +115,88 @@ function vtkWebGPURenderWindow(publicAPI, model) {
122
115
  // }
123
116
  // };
124
117
 
125
-
126
- publicAPI.initialize = function () {
118
+ publicAPI.initialize = () => {
127
119
  if (!model.initializing) {
128
120
  model.initializing = true;
129
-
130
121
  if (!navigator.gpu) {
131
122
  vtkErrorMacro('WebGPU is not enabled.');
132
123
  return;
133
124
  }
134
-
135
- publicAPI.create3DContextAsync().then(function () {
125
+ publicAPI.create3DContextAsync().then(() => {
136
126
  model.initialized = true;
137
-
138
127
  if (model.deleted) {
139
128
  return;
140
129
  }
141
-
142
130
  publicAPI.invokeInitialized();
143
131
  });
144
132
  }
145
133
  };
146
-
147
- publicAPI.setContainer = function (el) {
134
+ publicAPI.setContainer = el => {
148
135
  if (model.el && model.el !== el) {
149
136
  if (model.canvas.parentNode !== model.el) {
150
137
  vtkErrorMacro('Error: canvas parent node does not match container');
151
- } // Remove canvas from previous container
138
+ }
152
139
 
140
+ // Remove canvas from previous container
141
+ model.el.removeChild(model.canvas);
153
142
 
154
- model.el.removeChild(model.canvas); // If the renderer has previously added
143
+ // If the renderer has previously added
155
144
  // a background image, remove it from the DOM.
156
-
157
145
  if (model.el.contains(model.bgImage)) {
158
146
  model.el.removeChild(model.bgImage);
159
147
  }
160
148
  }
161
-
162
149
  if (model.el !== el) {
163
150
  model.el = el;
164
-
165
151
  if (model.el) {
166
- model.el.appendChild(model.canvas); // If the renderer is set to use a background
167
- // image, attach it to the DOM.
152
+ model.el.appendChild(model.canvas);
168
153
 
154
+ // If the renderer is set to use a background
155
+ // image, attach it to the DOM.
169
156
  if (model.useBackgroundImage) {
170
157
  model.el.appendChild(model.bgImage);
171
158
  }
172
- } // Trigger modified()
173
-
159
+ }
174
160
 
161
+ // Trigger modified()
175
162
  publicAPI.modified();
176
163
  }
177
164
  };
178
-
179
- publicAPI.getContainer = function () {
180
- return model.el;
181
- };
182
-
183
- publicAPI.getContainerSize = function () {
165
+ publicAPI.getContainer = () => model.el;
166
+ publicAPI.getContainerSize = () => {
184
167
  if (!model.containerSize && model.el) {
185
- var _model$el$getBounding = model.el.getBoundingClientRect(),
186
- width = _model$el$getBounding.width,
187
- height = _model$el$getBounding.height;
188
-
168
+ const {
169
+ width,
170
+ height
171
+ } = model.el.getBoundingClientRect();
189
172
  model.containerSize = [width, height];
190
173
  }
191
-
192
174
  return model.containerSize || model.size;
193
175
  };
194
-
195
- publicAPI.getFramebufferSize = function () {
196
- return model.size;
176
+ publicAPI.getFramebufferSize = () => model.size;
177
+ publicAPI.create3DContextAsync = async () => {
178
+ // Get a GPU device to render with
179
+ model.adapter = await navigator.gpu.requestAdapter({
180
+ powerPreference: 'high-performance'
181
+ });
182
+ if (model.deleted) {
183
+ return;
184
+ }
185
+ // console.log([...model.adapter.features]);
186
+ model.device = vtkWebGPUDevice.newInstance();
187
+ model.device.initialize(await model.adapter.requestDevice());
188
+ if (model.deleted) {
189
+ model.device = null;
190
+ return;
191
+ }
192
+ // model.device.getHandle().lost.then((info) => {
193
+ // console.log(`${info.message}`);
194
+ // publicAPI.releaseGraphicsResources();
195
+ // });
196
+ model.context = model.canvas.getContext('webgpu');
197
197
  };
198
-
199
- publicAPI.create3DContextAsync = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
200
- return _regeneratorRuntime.wrap(function _callee$(_context) {
201
- while (1) {
202
- switch (_context.prev = _context.next) {
203
- case 0:
204
- _context.next = 2;
205
- return navigator.gpu.requestAdapter({
206
- powerPreference: 'high-performance'
207
- });
208
-
209
- case 2:
210
- model.adapter = _context.sent;
211
-
212
- if (!model.deleted) {
213
- _context.next = 5;
214
- break;
215
- }
216
-
217
- return _context.abrupt("return");
218
-
219
- case 5:
220
- // console.log([...model.adapter.features]);
221
- model.device = vtkWebGPUDevice.newInstance();
222
- _context.t0 = model.device;
223
- _context.next = 9;
224
- return model.adapter.requestDevice();
225
-
226
- case 9:
227
- _context.t1 = _context.sent;
228
-
229
- _context.t0.initialize.call(_context.t0, _context.t1);
230
-
231
- if (!model.deleted) {
232
- _context.next = 14;
233
- break;
234
- }
235
-
236
- model.device = null;
237
- return _context.abrupt("return");
238
-
239
- case 14:
240
- // model.device.getHandle().lost.then((info) => {
241
- // console.log(`${info.message}`);
242
- // publicAPI.releaseGraphicsResources();
243
- // });
244
- model.context = model.canvas.getContext('webgpu');
245
-
246
- case 15:
247
- case "end":
248
- return _context.stop();
249
- }
250
- }
251
- }, _callee);
252
- }));
253
-
254
- publicAPI.releaseGraphicsResources = function () {
255
- var rp = vtkRenderPass.newInstance();
198
+ publicAPI.releaseGraphicsResources = () => {
199
+ const rp = vtkRenderPass.newInstance();
256
200
  rp.setCurrentOperation('Release');
257
201
  rp.traverse(publicAPI, null);
258
202
  model.adapter = null;
@@ -261,367 +205,299 @@ function vtkWebGPURenderWindow(publicAPI, model) {
261
205
  model.initialized = false;
262
206
  model.initializing = false;
263
207
  };
264
-
265
- publicAPI.setBackgroundImage = function (img) {
208
+ publicAPI.setBackgroundImage = img => {
266
209
  model.bgImage.src = img.src;
267
210
  };
211
+ publicAPI.setUseBackgroundImage = value => {
212
+ model.useBackgroundImage = value;
268
213
 
269
- publicAPI.setUseBackgroundImage = function (value) {
270
- model.useBackgroundImage = value; // Add or remove the background image from the
214
+ // Add or remove the background image from the
271
215
  // DOM as specified.
272
-
273
216
  if (model.useBackgroundImage && !model.el.contains(model.bgImage)) {
274
217
  model.el.appendChild(model.bgImage);
275
218
  } else if (!model.useBackgroundImage && model.el.contains(model.bgImage)) {
276
219
  model.el.removeChild(model.bgImage);
277
220
  }
278
221
  };
279
-
280
- function getCanvasDataURL() {
281
- return _getCanvasDataURL.apply(this, arguments);
282
- }
283
-
284
- function _getCanvasDataURL() {
285
- _getCanvasDataURL = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
286
- var format,
287
- temporaryCanvas,
288
- temporaryContext,
289
- result,
290
- imageData,
291
- mainBoundingClientRect,
292
- renderWindow,
293
- renderers,
294
- screenshot,
295
- _args3 = arguments;
296
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
297
- while (1) {
298
- switch (_context3.prev = _context3.next) {
299
- case 0:
300
- format = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : model.imageFormat;
301
- // Copy current canvas to not modify the original
302
- temporaryCanvas = document.createElement('canvas');
303
- temporaryContext = temporaryCanvas.getContext('2d');
304
- temporaryCanvas.width = model.canvas.width;
305
- temporaryCanvas.height = model.canvas.height;
306
- _context3.next = 7;
307
- return publicAPI.getPixelsAsync();
308
-
309
- case 7:
310
- result = _context3.sent;
311
- imageData = new ImageData(result.colorValues, result.width, result.height); // temporaryCanvas.putImageData(imageData, 0, 0);
312
-
313
- temporaryContext.putImageData(imageData, 0, 0); // Get current client rect to place canvas
314
-
315
- mainBoundingClientRect = model.canvas.getBoundingClientRect();
316
- renderWindow = model.renderable;
317
- renderers = renderWindow.getRenderers();
318
- renderers.forEach(function (renderer) {
319
- var viewProps = renderer.getViewProps();
320
- viewProps.forEach(function (viewProp) {
321
- // Check if the prop has a container that should have canvas
322
- if (viewProp.getContainer) {
323
- var container = viewProp.getContainer();
324
- var canvasList = container.getElementsByTagName('canvas'); // Go throughout all canvas and copy it into temporary main canvas
325
-
326
- for (var i = 0; i < canvasList.length; i++) {
327
- var currentCanvas = canvasList[i];
328
- var boundingClientRect = currentCanvas.getBoundingClientRect();
329
- var newXPosition = boundingClientRect.x - mainBoundingClientRect.x;
330
- var newYPosition = boundingClientRect.y - mainBoundingClientRect.y;
331
- temporaryContext.drawImage(currentCanvas, newXPosition, newYPosition);
332
- }
333
- }
334
- });
335
- });
336
- screenshot = temporaryCanvas.toDataURL(format);
337
- temporaryCanvas.remove();
338
- publicAPI.invokeImageReady(screenshot);
339
-
340
- case 17:
341
- case "end":
342
- return _context3.stop();
222
+ async function getCanvasDataURL() {
223
+ let format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : model.imageFormat;
224
+ // Copy current canvas to not modify the original
225
+ const temporaryCanvas = document.createElement('canvas');
226
+ const temporaryContext = temporaryCanvas.getContext('2d');
227
+ temporaryCanvas.width = model.canvas.width;
228
+ temporaryCanvas.height = model.canvas.height;
229
+ const result = await publicAPI.getPixelsAsync();
230
+ const imageData = new ImageData(result.colorValues, result.width, result.height);
231
+ // temporaryCanvas.putImageData(imageData, 0, 0);
232
+ temporaryContext.putImageData(imageData, 0, 0);
233
+
234
+ // Get current client rect to place canvas
235
+ const mainBoundingClientRect = model.canvas.getBoundingClientRect();
236
+ const renderWindow = model.renderable;
237
+ const renderers = renderWindow.getRenderers();
238
+ renderers.forEach(renderer => {
239
+ const viewProps = renderer.getViewProps();
240
+ viewProps.forEach(viewProp => {
241
+ // Check if the prop has a container that should have canvas
242
+ if (viewProp.getContainer) {
243
+ const container = viewProp.getContainer();
244
+ const canvasList = container.getElementsByTagName('canvas');
245
+ // Go throughout all canvas and copy it into temporary main canvas
246
+ for (let i = 0; i < canvasList.length; i++) {
247
+ const currentCanvas = canvasList[i];
248
+ const boundingClientRect = currentCanvas.getBoundingClientRect();
249
+ const newXPosition = boundingClientRect.x - mainBoundingClientRect.x;
250
+ const newYPosition = boundingClientRect.y - mainBoundingClientRect.y;
251
+ temporaryContext.drawImage(currentCanvas, newXPosition, newYPosition);
343
252
  }
344
253
  }
345
- }, _callee3);
346
- }));
347
- return _getCanvasDataURL.apply(this, arguments);
254
+ });
255
+ });
256
+ const screenshot = temporaryCanvas.toDataURL(format);
257
+ temporaryCanvas.remove();
258
+ publicAPI.invokeImageReady(screenshot);
348
259
  }
349
-
350
260
  publicAPI.captureNextImage = function () {
351
- var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'image/png';
352
-
353
- var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
354
- _ref2$resetCamera = _ref2.resetCamera,
355
- resetCamera = _ref2$resetCamera === void 0 ? false : _ref2$resetCamera,
356
- _ref2$size = _ref2.size,
357
- size = _ref2$size === void 0 ? null : _ref2$size,
358
- _ref2$scale = _ref2.scale,
359
- scale = _ref2$scale === void 0 ? 1 : _ref2$scale;
360
-
261
+ let format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'image/png';
262
+ let {
263
+ resetCamera = false,
264
+ size = null,
265
+ scale = 1
266
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
361
267
  if (model.deleted) {
362
268
  return null;
363
269
  }
364
-
365
270
  model.imageFormat = format;
366
- var previous = model.notifyStartCaptureImage;
271
+ const previous = model.notifyStartCaptureImage;
367
272
  model.notifyStartCaptureImage = true;
368
273
  model._screenshot = {
369
- size: !!size || scale !== 1 ? size || model.size.map(function (val) {
370
- return val * scale;
371
- }) : null
274
+ size: !!size || scale !== 1 ? size || model.size.map(val => val * scale) : null
372
275
  };
373
- return new Promise(function (resolve, reject) {
374
- var subscription = publicAPI.onImageReady(function (imageURL) {
276
+ return new Promise((resolve, reject) => {
277
+ const subscription = publicAPI.onImageReady(imageURL => {
375
278
  if (model._screenshot.size === null) {
376
279
  model.notifyStartCaptureImage = previous;
377
280
  subscription.unsubscribe();
378
-
379
281
  if (model._screenshot.placeHolder) {
380
282
  // resize the main canvas back to its original size and show it
381
- model.size = model._screenshot.originalSize; // process the resize
283
+ model.size = model._screenshot.originalSize;
382
284
 
383
- publicAPI.modified(); // restore the saved camera parameters, if applicable
285
+ // process the resize
286
+ publicAPI.modified();
384
287
 
288
+ // restore the saved camera parameters, if applicable
385
289
  if (model._screenshot.cameras) {
386
- model._screenshot.cameras.forEach(function (_ref3) {
387
- var restoreParamsFn = _ref3.restoreParamsFn,
388
- arg = _ref3.arg;
290
+ model._screenshot.cameras.forEach(_ref => {
291
+ let {
292
+ restoreParamsFn,
293
+ arg
294
+ } = _ref;
389
295
  return restoreParamsFn(arg);
390
296
  });
391
- } // Trigger a render at the original size
392
-
297
+ }
393
298
 
394
- publicAPI.traverseAllPasses(); // Remove and clean up the placeholder, revealing the original
299
+ // Trigger a render at the original size
300
+ publicAPI.traverseAllPasses();
395
301
 
302
+ // Remove and clean up the placeholder, revealing the original
396
303
  model.el.removeChild(model._screenshot.placeHolder);
397
-
398
304
  model._screenshot.placeHolder.remove();
399
-
400
305
  model._screenshot = null;
401
306
  }
402
-
403
307
  resolve(imageURL);
404
308
  } else {
405
309
  // Create a placeholder image overlay while we resize and render
406
- var tmpImg = document.createElement('img');
310
+ const tmpImg = document.createElement('img');
407
311
  tmpImg.style = SCREENSHOT_PLACEHOLDER;
408
312
  tmpImg.src = imageURL;
409
- model._screenshot.placeHolder = model.el.appendChild(tmpImg); // hide the main canvas
313
+ model._screenshot.placeHolder = model.el.appendChild(tmpImg);
410
314
 
411
- model.canvas.style.display = 'none'; // remember the main canvas original size, then resize it
315
+ // hide the main canvas
316
+ model.canvas.style.display = 'none';
412
317
 
318
+ // remember the main canvas original size, then resize it
413
319
  model._screenshot.originalSize = model.size;
414
320
  model.size = model._screenshot.size;
415
- model._screenshot.size = null; // process the resize
321
+ model._screenshot.size = null;
416
322
 
323
+ // process the resize
417
324
  publicAPI.modified();
418
-
419
325
  if (resetCamera) {
420
- var isUserResetCamera = resetCamera !== true; // If resetCamera was requested, we first save camera parameters
421
- // from all the renderers, so we can restore them later
326
+ const isUserResetCamera = resetCamera !== true;
422
327
 
423
- model._screenshot.cameras = model.renderable.getRenderers().map(function (renderer) {
424
- var camera = renderer.getActiveCamera();
425
- var params = camera.get('focalPoint', 'position', 'parallelScale');
328
+ // If resetCamera was requested, we first save camera parameters
329
+ // from all the renderers, so we can restore them later
330
+ model._screenshot.cameras = model.renderable.getRenderers().map(renderer => {
331
+ const camera = renderer.getActiveCamera();
332
+ const params = camera.get('focalPoint', 'position', 'parallelScale');
426
333
  return {
427
334
  resetCameraArgs: isUserResetCamera ? {
428
- renderer: renderer
335
+ renderer
429
336
  } : undefined,
430
337
  resetCameraFn: isUserResetCamera ? resetCamera : renderer.resetCamera,
431
338
  restoreParamsFn: camera.set,
432
339
  // "clone" the params so we don't keep refs to properties
433
340
  arg: JSON.parse(JSON.stringify(params))
434
341
  };
435
- }); // Perform the resetCamera() on each renderer only after capturing
342
+ });
343
+
344
+ // Perform the resetCamera() on each renderer only after capturing
436
345
  // the params from all active cameras, in case there happen to be
437
346
  // linked cameras among the renderers.
438
-
439
- model._screenshot.cameras.forEach(function (_ref4) {
440
- var resetCameraFn = _ref4.resetCameraFn,
441
- resetCameraArgs = _ref4.resetCameraArgs;
347
+ model._screenshot.cameras.forEach(_ref2 => {
348
+ let {
349
+ resetCameraFn,
350
+ resetCameraArgs
351
+ } = _ref2;
442
352
  return resetCameraFn(resetCameraArgs);
443
353
  });
444
- } // Trigger a render at the custom size
445
-
354
+ }
446
355
 
356
+ // Trigger a render at the custom size
447
357
  publicAPI.traverseAllPasses();
448
358
  }
449
359
  });
450
360
  });
451
361
  };
452
-
453
- publicAPI.traverseAllPasses = function () {
362
+ publicAPI.traverseAllPasses = () => {
454
363
  if (model.deleted) {
455
364
  return;
456
- } // if we are not initialized then we call initialize
365
+ }
366
+ // if we are not initialized then we call initialize
457
367
  // which is async so we will not actually get a render
458
368
  // so we queue up another traverse for when we are initialized
459
-
460
-
461
369
  if (!model.initialized) {
462
370
  publicAPI.initialize();
463
- var subscription = publicAPI.onInitialized(function () {
371
+ const subscription = publicAPI.onInitialized(() => {
464
372
  subscription.unsubscribe();
465
373
  publicAPI.traverseAllPasses();
466
374
  });
467
375
  } else {
468
376
  if (model.renderPasses) {
469
- for (var index = 0; index < model.renderPasses.length; ++index) {
377
+ for (let index = 0; index < model.renderPasses.length; ++index) {
470
378
  model.renderPasses[index].traverse(publicAPI, null);
471
379
  }
472
380
  }
473
-
474
381
  if (model.commandEncoder) {
475
382
  model.device.submitCommandEncoder(model.commandEncoder);
476
383
  model.commandEncoder = null;
477
-
478
384
  if (model.notifyStartCaptureImage) {
479
- model.device.onSubmittedWorkDone().then(function () {
385
+ model.device.onSubmittedWorkDone().then(() => {
480
386
  getCanvasDataURL();
481
387
  });
482
388
  }
483
389
  }
484
390
  }
485
391
  };
486
-
487
- publicAPI.setViewStream = function (stream) {
392
+ publicAPI.setViewStream = stream => {
488
393
  if (model.viewStream === stream) {
489
394
  return false;
490
395
  }
491
-
492
396
  if (model.subscription) {
493
397
  model.subscription.unsubscribe();
494
398
  model.subscription = null;
495
399
  }
496
-
497
400
  model.viewStream = stream;
498
-
499
401
  if (model.viewStream) {
500
402
  // Force background to be transparent + render
501
- var mainRenderer = model.renderable.getRenderers()[0];
502
- mainRenderer.getBackgroundByReference()[3] = 0; // Enable display of the background image
403
+ const mainRenderer = model.renderable.getRenderers()[0];
404
+ mainRenderer.getBackgroundByReference()[3] = 0;
503
405
 
504
- publicAPI.setUseBackgroundImage(true); // Bind to remote stream
406
+ // Enable display of the background image
407
+ publicAPI.setUseBackgroundImage(true);
505
408
 
506
- model.subscription = model.viewStream.onImageReady(function (e) {
507
- return publicAPI.setBackgroundImage(e.image);
508
- });
409
+ // Bind to remote stream
410
+ model.subscription = model.viewStream.onImageReady(e => publicAPI.setBackgroundImage(e.image));
509
411
  model.viewStream.setSize(model.size[0], model.size[1]);
510
412
  model.viewStream.invalidateCache();
511
413
  model.viewStream.render();
512
414
  publicAPI.modified();
513
415
  }
514
-
515
416
  return true;
516
417
  };
517
-
518
- publicAPI.getUniquePropID = function () {
519
- return model.nextPropID++;
520
- };
521
-
522
- publicAPI.getPropFromID = function (id) {
523
- for (var i = 0; i < model.children.length; i++) {
524
- var res = model.children[i].getPropFromID(id);
525
-
418
+ publicAPI.getUniquePropID = () => model.nextPropID++;
419
+ publicAPI.getPropFromID = id => {
420
+ for (let i = 0; i < model.children.length; i++) {
421
+ const res = model.children[i].getPropFromID(id);
526
422
  if (res !== null) {
527
423
  return res;
528
424
  }
529
425
  }
530
-
531
426
  return null;
532
427
  };
428
+ publicAPI.getPixelsAsync = async () => {
429
+ const device = model.device;
430
+ const texture = model.renderPasses[0].getOpaquePass().getColorTexture();
431
+
432
+ // as this is async we really don't want to store things in
433
+ // the class as multiple calls may start before resolving
434
+ // so anything specific to this request gets put into the
435
+ // result object (by value in most cases)
436
+ const result = {
437
+ width: texture.getWidth(),
438
+ height: texture.getHeight()
439
+ };
533
440
 
534
- publicAPI.getPixelsAsync = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
535
- var device, texture, result, colorBuffer, cmdEnc, cLoad, tmparray, y, x, doffset, soffset;
536
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
537
- while (1) {
538
- switch (_context2.prev = _context2.next) {
539
- case 0:
540
- device = model.device;
541
- texture = model.renderPasses[0].getOpaquePass().getColorTexture(); // as this is async we really don't want to store things in
542
- // the class as multiple calls may start before resolving
543
- // so anything specific to this request gets put into the
544
- // result object (by value in most cases)
545
-
546
- result = {
547
- width: texture.getWidth(),
548
- height: texture.getHeight()
549
- }; // must be a multiple of 256 bytes, so 32 texels with rgba16
550
-
551
- result.colorBufferWidth = 32 * Math.floor((result.width + 31) / 32);
552
- result.colorBufferSizeInBytes = result.colorBufferWidth * result.height * 8;
553
- colorBuffer = vtkWebGPUBuffer.newInstance();
554
- colorBuffer.setDevice(device);
555
- /* eslint-disable no-bitwise */
556
-
557
- /* eslint-disable no-undef */
558
-
559
- colorBuffer.create(result.colorBufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
560
- /* eslint-enable no-bitwise */
561
-
562
- /* eslint-enable no-undef */
563
-
564
- cmdEnc = model.device.createCommandEncoder();
565
- cmdEnc.copyTextureToBuffer({
566
- texture: texture.getHandle()
567
- }, {
568
- buffer: colorBuffer.getHandle(),
569
- bytesPerRow: 8 * result.colorBufferWidth,
570
- rowsPerImage: result.height
571
- }, {
572
- width: result.width,
573
- height: result.height,
574
- depthOrArrayLayers: 1
575
- });
576
- device.submitCommandEncoder(cmdEnc);
577
- /* eslint-disable no-undef */
578
-
579
- cLoad = colorBuffer.mapAsync(GPUMapMode.READ);
580
- _context2.next = 14;
581
- return cLoad;
582
-
583
- case 14:
584
- /* eslint-enable no-undef */
585
- result.colorValues = new Uint16Array(colorBuffer.getMappedRange().slice());
586
- colorBuffer.unmap(); // repack the array
587
-
588
- tmparray = new Uint8ClampedArray(result.height * result.width * 4);
589
-
590
- for (y = 0; y < result.height; y++) {
591
- for (x = 0; x < result.width; x++) {
592
- doffset = (y * result.width + x) * 4;
593
- soffset = (y * result.colorBufferWidth + x) * 4;
594
- tmparray[doffset] = 255.0 * HalfFloat.fromHalf(result.colorValues[soffset]);
595
- tmparray[doffset + 1] = 255.0 * HalfFloat.fromHalf(result.colorValues[soffset + 1]);
596
- tmparray[doffset + 2] = 255.0 * HalfFloat.fromHalf(result.colorValues[soffset + 2]);
597
- tmparray[doffset + 3] = 255.0 * HalfFloat.fromHalf(result.colorValues[soffset + 3]);
598
- }
599
- }
600
-
601
- result.colorValues = tmparray;
602
- return _context2.abrupt("return", result);
603
-
604
- case 20:
605
- case "end":
606
- return _context2.stop();
607
- }
441
+ // must be a multiple of 256 bytes, so 32 texels with rgba16
442
+ result.colorBufferWidth = 32 * Math.floor((result.width + 31) / 32);
443
+ result.colorBufferSizeInBytes = result.colorBufferWidth * result.height * 8;
444
+ const colorBuffer = vtkWebGPUBuffer.newInstance();
445
+ colorBuffer.setDevice(device);
446
+ /* eslint-disable no-bitwise */
447
+ /* eslint-disable no-undef */
448
+ colorBuffer.create(result.colorBufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
449
+ /* eslint-enable no-bitwise */
450
+ /* eslint-enable no-undef */
451
+
452
+ const cmdEnc = model.device.createCommandEncoder();
453
+ cmdEnc.copyTextureToBuffer({
454
+ texture: texture.getHandle()
455
+ }, {
456
+ buffer: colorBuffer.getHandle(),
457
+ bytesPerRow: 8 * result.colorBufferWidth,
458
+ rowsPerImage: result.height
459
+ }, {
460
+ width: result.width,
461
+ height: result.height,
462
+ depthOrArrayLayers: 1
463
+ });
464
+ device.submitCommandEncoder(cmdEnc);
465
+
466
+ /* eslint-disable no-undef */
467
+ const cLoad = colorBuffer.mapAsync(GPUMapMode.READ);
468
+ await cLoad;
469
+ /* eslint-enable no-undef */
470
+
471
+ result.colorValues = new Uint16Array(colorBuffer.getMappedRange().slice());
472
+ colorBuffer.unmap();
473
+ // repack the array
474
+ const tmparray = new Uint8ClampedArray(result.height * result.width * 4);
475
+ for (let y = 0; y < result.height; y++) {
476
+ for (let x = 0; x < result.width; x++) {
477
+ const doffset = (y * result.width + x) * 4;
478
+ const soffset = (y * result.colorBufferWidth + x) * 4;
479
+ tmparray[doffset] = 255.0 * HalfFloat.fromHalf(result.colorValues[soffset]);
480
+ tmparray[doffset + 1] = 255.0 * HalfFloat.fromHalf(result.colorValues[soffset + 1]);
481
+ tmparray[doffset + 2] = 255.0 * HalfFloat.fromHalf(result.colorValues[soffset + 2]);
482
+ tmparray[doffset + 3] = 255.0 * HalfFloat.fromHalf(result.colorValues[soffset + 3]);
608
483
  }
609
- }, _callee2);
610
- }));
611
-
612
- publicAPI.createSelector = function () {
613
- var ret = vtkWebGPUHardwareSelector.newInstance();
484
+ }
485
+ result.colorValues = tmparray;
486
+ return result;
487
+ };
488
+ publicAPI.createSelector = () => {
489
+ const ret = vtkWebGPUHardwareSelector.newInstance();
614
490
  ret.setWebGPURenderWindow(publicAPI);
615
491
  return ret;
616
492
  };
617
-
618
493
  publicAPI.delete = macro.chain(publicAPI.delete, publicAPI.setViewStream);
619
- } // ----------------------------------------------------------------------------
494
+ }
495
+
496
+ // ----------------------------------------------------------------------------
620
497
  // Object factory
621
498
  // ----------------------------------------------------------------------------
622
499
 
623
-
624
- var DEFAULT_VALUES = {
500
+ const DEFAULT_VALUES = {
625
501
  initialized: false,
626
502
  context: null,
627
503
  adapter: null,
@@ -638,57 +514,67 @@ var DEFAULT_VALUES = {
638
514
  nextPropID: 1,
639
515
  xrSupported: false,
640
516
  presentationFormat: null
641
- }; // ----------------------------------------------------------------------------
517
+ };
518
+
519
+ // ----------------------------------------------------------------------------
642
520
 
643
521
  function extend(publicAPI, model) {
644
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
645
- Object.assign(model, DEFAULT_VALUES, initialValues); // Create internal instances
522
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
523
+ Object.assign(model, DEFAULT_VALUES, initialValues);
646
524
 
525
+ // Create internal instances
647
526
  model.canvas = document.createElement('canvas');
648
- model.canvas.style.width = '100%'; // Create internal bgImage
527
+ model.canvas.style.width = '100%';
649
528
 
529
+ // Create internal bgImage
650
530
  model.bgImage = new Image();
651
531
  model.bgImage.style.position = 'absolute';
652
532
  model.bgImage.style.left = '0';
653
533
  model.bgImage.style.top = '0';
654
534
  model.bgImage.style.width = '100%';
655
535
  model.bgImage.style.height = '100%';
656
- model.bgImage.style.zIndex = '-1'; // Inheritance
536
+ model.bgImage.style.zIndex = '-1';
657
537
 
538
+ // Inheritance
658
539
  vtkRenderWindowViewNode.extend(publicAPI, model, initialValues);
659
540
  model.myFactory = vtkWebGPUViewNodeFactory.newInstance();
660
541
  /* eslint-disable no-use-before-define */
661
-
662
542
  model.myFactory.registerOverride('vtkRenderWindow', newInstance);
663
543
  /* eslint-enable no-use-before-define */
664
- // setup default forward pass rendering
665
544
 
545
+ // setup default forward pass rendering
666
546
  model.renderPasses[0] = vtkForwardPass.newInstance();
667
-
668
547
  if (!model.selector) {
669
548
  model.selector = vtkWebGPUHardwareSelector.newInstance();
670
549
  model.selector.setWebGPURenderWindow(publicAPI);
671
550
  }
672
-
673
551
  macro.event(publicAPI, model, 'imageReady');
674
- macro.event(publicAPI, model, 'initialized'); // Build VTK API
552
+ macro.event(publicAPI, model, 'initialized');
675
553
 
554
+ // Build VTK API
676
555
  macro.get(publicAPI, model, ['commandEncoder', 'device', 'presentationFormat', 'useBackgroundImage', 'xrSupported']);
677
556
  macro.setGet(publicAPI, model, ['initialized', 'context', 'canvas', 'device', 'renderPasses', 'notifyStartCaptureImage', 'cursor', 'useOffScreen']);
678
- macro.setGetArray(publicAPI, model, ['size'], 2); // Object methods
557
+ macro.setGetArray(publicAPI, model, ['size'], 2);
679
558
 
559
+ // Object methods
680
560
  vtkWebGPURenderWindow(publicAPI, model);
681
- } // ----------------------------------------------------------------------------
561
+ }
562
+
563
+ // ----------------------------------------------------------------------------
682
564
 
683
- var newInstance = macro.newInstance(extend, 'vtkWebGPURenderWindow'); // ----------------------------------------------------------------------------
565
+ const newInstance = macro.newInstance(extend, 'vtkWebGPURenderWindow');
566
+
567
+ // ----------------------------------------------------------------------------
684
568
  // Register API specific RenderWindow implementation
685
569
  // ----------------------------------------------------------------------------
686
570
 
687
- registerViewConstructor('WebGPU', newInstance); // ----------------------------------------------------------------------------
571
+ registerViewConstructor('WebGPU', newInstance);
572
+
573
+ // ----------------------------------------------------------------------------
688
574
 
689
575
  var vtkRenderWindow = {
690
- newInstance: newInstance,
691
- extend: extend
576
+ newInstance,
577
+ extend
692
578
  };
693
579
 
694
580
  export { vtkRenderWindow as default, extend, newInstance };