@kitware/vtk.js 28.10.1 → 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 (566) 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 +778 -903
  12. package/Common/Core/Math.d.ts +14 -0
  13. package/Common/Core/Math.js +2 -4
  14. package/Common/Core/MatrixBuilder.js +99 -151
  15. package/Common/Core/Points.js +43 -43
  16. package/Common/Core/PriorityQueue.js +30 -28
  17. package/Common/Core/ProgressHandler.js +31 -32
  18. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  19. package/Common/Core/ScalarsToColors.js +196 -253
  20. package/Common/Core/StringArray.js +48 -73
  21. package/Common/Core/URLExtract.js +10 -29
  22. package/Common/Core/VariantArray.js +48 -73
  23. package/Common/Core.js +11 -11
  24. package/Common/DataModel/AbstractPointLocator.js +19 -17
  25. package/Common/DataModel/BoundingBox.js +322 -490
  26. package/Common/DataModel/Box.js +46 -63
  27. package/Common/DataModel/CardinalSpline1D.js +92 -102
  28. package/Common/DataModel/Cell.js +41 -61
  29. package/Common/DataModel/CellLinks.js +91 -127
  30. package/Common/DataModel/CellTypes/Constants.js +7 -6
  31. package/Common/DataModel/CellTypes.js +55 -74
  32. package/Common/DataModel/Collection.js +45 -61
  33. package/Common/DataModel/Cone.js +28 -20
  34. package/Common/DataModel/Cylinder.js +41 -35
  35. package/Common/DataModel/DataSet/Constants.js +11 -5
  36. package/Common/DataModel/DataSet.js +37 -25
  37. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  38. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  39. package/Common/DataModel/DataSetAttributes.js +96 -138
  40. package/Common/DataModel/EdgeLocator.js +45 -70
  41. package/Common/DataModel/ITKHelper.js +67 -137
  42. package/Common/DataModel/ImageData.js +115 -172
  43. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  44. package/Common/DataModel/ImplicitBoolean.js +66 -96
  45. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  46. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  47. package/Common/DataModel/KochanekSpline1D.js +78 -81
  48. package/Common/DataModel/Line/Constants.js +2 -2
  49. package/Common/DataModel/Line.js +82 -105
  50. package/Common/DataModel/Locator.js +17 -10
  51. package/Common/DataModel/Molecule.js +26 -17
  52. package/Common/DataModel/PiecewiseFunction.js +218 -239
  53. package/Common/DataModel/Plane.js +90 -113
  54. package/Common/DataModel/PointSet.js +30 -26
  55. package/Common/DataModel/PolyData/Constants.js +2 -2
  56. package/Common/DataModel/PolyData.js +95 -120
  57. package/Common/DataModel/PolyLine.js +44 -61
  58. package/Common/DataModel/Polygon/Constants.js +4 -4
  59. package/Common/DataModel/Polygon.js +128 -169
  60. package/Common/DataModel/Quad/Constants.js +2 -2
  61. package/Common/DataModel/Quad.js +61 -100
  62. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  63. package/Common/DataModel/SelectionNode.js +25 -21
  64. package/Common/DataModel/Sphere.js +40 -35
  65. package/Common/DataModel/Spline1D/Constants.js +3 -2
  66. package/Common/DataModel/Spline1D.js +34 -18
  67. package/Common/DataModel/Spline3D/Constants.js +2 -2
  68. package/Common/DataModel/Spline3D.js +46 -41
  69. package/Common/DataModel/StructuredData/Constants.js +2 -2
  70. package/Common/DataModel/StructuredData.js +9 -20
  71. package/Common/DataModel/Triangle.js +207 -250
  72. package/Common/DataModel.js +19 -19
  73. package/Common/System/MobileVR.js +56 -61
  74. package/Common/System/TimerLog.js +1 -1
  75. package/Common/System.js +2 -2
  76. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  77. package/Common/Transform/LandmarkTransform.js +133 -117
  78. package/Common/Transform/Transform.js +42 -57
  79. package/Common/Transform.js +2 -2
  80. package/Common/index.js +4 -4
  81. package/Filters/Core/Cutter.js +134 -146
  82. package/Filters/Core/PolyDataNormals.js +44 -50
  83. package/Filters/Core.js +2 -2
  84. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  85. package/Filters/Cornerstone.js +1 -1
  86. package/Filters/General/AppendPolyData.js +84 -100
  87. package/Filters/General/Calculator.js +95 -163
  88. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  89. package/Filters/General/ClipClosedSurface.js +341 -416
  90. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  91. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  92. package/Filters/General/ContourTriangulator/helper.js +684 -812
  93. package/Filters/General/ContourTriangulator.js +92 -89
  94. package/Filters/General/ImageCropFilter.js +77 -78
  95. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  96. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  97. package/Filters/General/ImageMarchingCubes.js +99 -112
  98. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  99. package/Filters/General/ImageMarchingSquares.js +93 -118
  100. package/Filters/General/ImageOutlineFilter.js +53 -54
  101. package/Filters/General/ImageSliceFilter.js +39 -30
  102. package/Filters/General/ImageStreamline.js +107 -124
  103. package/Filters/General/LineFilter.js +26 -15
  104. package/Filters/General/MoleculeToRepresentation.js +136 -149
  105. package/Filters/General/OBBTree/OBBNode.js +36 -34
  106. package/Filters/General/OBBTree/helper.js +19 -24
  107. package/Filters/General/OBBTree.js +396 -488
  108. package/Filters/General/OutlineFilter.js +52 -34
  109. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  110. package/Filters/General/PaintFilter.js +150 -162
  111. package/Filters/General/ScalarToRGBA.js +38 -33
  112. package/Filters/General/TriangleFilter.js +65 -62
  113. package/Filters/General/TubeFilter/Constants.js +4 -4
  114. package/Filters/General/TubeFilter.js +376 -496
  115. package/Filters/General/WarpScalar.js +58 -60
  116. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  117. package/Filters/General.js +21 -21
  118. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  119. package/Filters/Sources/Arrow2DSource.js +56 -56
  120. package/Filters/Sources/ArrowSource.js +39 -29
  121. package/Filters/Sources/CircleSource.js +43 -43
  122. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  123. package/Filters/Sources/ConeSource.js +51 -42
  124. package/Filters/Sources/CubeSource.js +75 -96
  125. package/Filters/Sources/Cursor3D.js +94 -109
  126. package/Filters/Sources/CylinderSource.js +90 -90
  127. package/Filters/Sources/ImageGridSource.js +43 -43
  128. package/Filters/Sources/LineSource.js +49 -39
  129. package/Filters/Sources/PlaneSource.js +97 -104
  130. package/Filters/Sources/PointSource.js +46 -37
  131. package/Filters/Sources/RTAnalyticSource.js +50 -48
  132. package/Filters/Sources/SLICSource.js +63 -73
  133. package/Filters/Sources/SphereSource.js +88 -78
  134. package/Filters/Sources/ViewFinderSource.js +26 -23
  135. package/Filters/Sources.js +14 -14
  136. package/Filters/Texture/TextureMapToPlane.js +95 -97
  137. package/Filters/Texture/TextureMapToSphere.js +46 -54
  138. package/Filters/Texture.js +2 -2
  139. package/Filters/index.js +5 -5
  140. package/IO/Core/BinaryHelper.js +12 -18
  141. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  142. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  143. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  144. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  145. package/IO/Core/DataAccessHelper.js +6 -6
  146. package/IO/Core/HttpDataSetReader.js +136 -139
  147. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  148. package/IO/Core/HttpSceneLoader.js +130 -179
  149. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  150. package/IO/Core/ImageStream/ViewStream.js +100 -103
  151. package/IO/Core/ImageStream.js +62 -54
  152. package/IO/Core/ResourceLoader.js +10 -9
  153. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  154. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  155. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  156. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  157. package/IO/Core/Serializer.js +6 -13
  158. package/IO/Core/WSLinkClient.js +90 -76
  159. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  160. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  161. package/IO/Core.js +7 -7
  162. package/IO/Geometry/DracoReader.js +118 -121
  163. package/IO/Geometry/PLYReader.js +163 -223
  164. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  165. package/IO/Geometry/PLYWriter.js +139 -154
  166. package/IO/Geometry/STLReader.js +123 -146
  167. package/IO/Geometry/STLWriter/Constants.js +2 -2
  168. package/IO/Geometry/STLWriter.js +83 -82
  169. package/IO/Geometry.js +5 -5
  170. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  171. package/IO/Legacy/PolyDataReader.js +48 -36
  172. package/IO/Legacy.js +2 -2
  173. package/IO/Misc/ElevationReader.js +67 -60
  174. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  175. package/IO/Misc/ITKImageReader.js +58 -45
  176. package/IO/Misc/ITKPolyDataReader.js +50 -38
  177. package/IO/Misc/JSONNucleoReader.js +49 -42
  178. package/IO/Misc/JSONReader.js +38 -33
  179. package/IO/Misc/MTLReader.js +74 -119
  180. package/IO/Misc/OBJReader.js +153 -206
  181. package/IO/Misc/PDBReader.js +70 -68
  182. package/IO/Misc/SkyboxReader.js +77 -82
  183. package/IO/Misc.js +9 -9
  184. package/IO/XML/XMLImageDataReader.js +36 -38
  185. package/IO/XML/XMLImageDataWriter.js +28 -21
  186. package/IO/XML/XMLPolyDataReader.js +49 -46
  187. package/IO/XML/XMLPolyDataWriter.js +43 -42
  188. package/IO/XML/XMLReader.js +262 -304
  189. package/IO/XML/XMLWriter/Constants.js +3 -3
  190. package/IO/XML/XMLWriter.js +70 -84
  191. package/IO/XML.js +6 -6
  192. package/IO/index.js +5 -5
  193. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  194. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  195. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  196. package/Imaging/Core/ImageInterpolator.js +201 -252
  197. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  198. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  199. package/Imaging/Core/ImageReslice.js +327 -464
  200. package/Imaging/Core.js +4 -4
  201. package/Imaging/Hybrid/SampleFunction.js +58 -51
  202. package/Imaging/Hybrid.js +1 -1
  203. package/Imaging/index.js +2 -2
  204. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  205. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  206. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  207. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  208. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  209. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  210. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  211. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  212. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  213. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  214. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  215. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  216. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  217. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  218. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  219. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  221. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  222. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  223. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  224. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  225. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  226. package/Interaction/Manipulators.js +21 -21
  227. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  228. package/Interaction/Misc.js +1 -1
  229. package/Interaction/Style/InteractorStyleImage.js +101 -121
  230. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  231. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  232. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  233. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  234. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  235. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  236. package/Interaction/Style.js +5 -5
  237. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  238. package/Interaction/UI/CornerAnnotation.js +65 -48
  239. package/Interaction/UI/FPSMonitor.js +104 -105
  240. package/Interaction/UI/Icons.js +1 -1
  241. package/Interaction/UI/Slider/Constants.js +2 -2
  242. package/Interaction/UI/Slider.js +78 -95
  243. package/Interaction/UI/VolumeController.js +104 -97
  244. package/Interaction/UI.js +5 -5
  245. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  246. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  247. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  248. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  249. package/Interaction/Widgets.js +2 -2
  250. package/Interaction/index.js +5 -5
  251. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  252. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  253. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  254. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  255. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  256. package/Proxy/Core/LookupTableProxy.js +49 -52
  257. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  258. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  259. package/Proxy/Core/ProxyManager/core.js +83 -106
  260. package/Proxy/Core/ProxyManager/properties.js +53 -76
  261. package/Proxy/Core/ProxyManager/state.js +100 -110
  262. package/Proxy/Core/ProxyManager/view.js +45 -55
  263. package/Proxy/Core/ProxyManager.js +16 -8
  264. package/Proxy/Core/SourceProxy.js +41 -38
  265. package/Proxy/Core/View2DProxy.js +143 -199
  266. package/Proxy/Core/ViewProxy.js +223 -269
  267. package/Proxy/Core.js +7 -7
  268. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  269. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  270. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  271. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  272. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  273. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  274. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  275. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  276. package/Proxy/Representations.js +7 -7
  277. package/Proxy/index.js +2 -2
  278. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  279. package/Rendering/Core/AbstractImageMapper.js +18 -19
  280. package/Rendering/Core/AbstractMapper.js +39 -55
  281. package/Rendering/Core/AbstractMapper3D.js +26 -31
  282. package/Rendering/Core/AbstractPicker.js +25 -21
  283. package/Rendering/Core/Actor.js +71 -93
  284. package/Rendering/Core/Actor2D.js +64 -78
  285. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  286. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  287. package/Rendering/Core/AxesActor.js +65 -87
  288. package/Rendering/Core/Camera.js +246 -271
  289. package/Rendering/Core/CellPicker.js +125 -148
  290. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  292. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  293. package/Rendering/Core/ColorTransferFunction.js +460 -546
  294. package/Rendering/Core/Coordinate/Constants.js +2 -2
  295. package/Rendering/Core/Coordinate.js +119 -198
  296. package/Rendering/Core/CubeAxesActor.js +294 -320
  297. package/Rendering/Core/Follower.js +46 -45
  298. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  299. package/Rendering/Core/Glyph3DMapper.js +96 -148
  300. package/Rendering/Core/HardwareSelector.js +36 -69
  301. package/Rendering/Core/ImageArrayMapper.js +87 -126
  302. package/Rendering/Core/ImageCPRMapper.js +134 -209
  303. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  304. package/Rendering/Core/ImageMapper.js +92 -170
  305. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  306. package/Rendering/Core/ImageProperty.js +66 -81
  307. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  308. package/Rendering/Core/ImageResliceMapper.js +36 -29
  309. package/Rendering/Core/ImageSlice.js +85 -127
  310. package/Rendering/Core/InteractorObserver.js +82 -73
  311. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  312. package/Rendering/Core/InteractorStyle.js +56 -58
  313. package/Rendering/Core/Light.js +43 -49
  314. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  315. package/Rendering/Core/Mapper/Constants.js +6 -6
  316. package/Rendering/Core/Mapper/Static.js +15 -12
  317. package/Rendering/Core/Mapper.js +194 -259
  318. package/Rendering/Core/Mapper2D.js +61 -100
  319. package/Rendering/Core/Picker.js +124 -143
  320. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  321. package/Rendering/Core/PointPicker.js +68 -79
  322. package/Rendering/Core/Prop/Constants.js +2 -2
  323. package/Rendering/Core/Prop.js +58 -106
  324. package/Rendering/Core/Prop3D.js +54 -83
  325. package/Rendering/Core/Property/Constants.js +6 -6
  326. package/Rendering/Core/Property.js +45 -74
  327. package/Rendering/Core/Property2D/Constants.js +2 -2
  328. package/Rendering/Core/Property2D.js +33 -42
  329. package/Rendering/Core/RenderWindow.js +70 -82
  330. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  331. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  332. package/Rendering/Core/Renderer.js +193 -257
  333. package/Rendering/Core/ScalarBarActor.js +267 -272
  334. package/Rendering/Core/Skybox.js +26 -24
  335. package/Rendering/Core/SphereMapper.js +22 -12
  336. package/Rendering/Core/StickMapper.js +22 -12
  337. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  338. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  339. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  340. package/Rendering/Core/Texture.js +99 -141
  341. package/Rendering/Core/Viewport.js +60 -88
  342. package/Rendering/Core/Volume.js +55 -77
  343. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  344. package/Rendering/Core/VolumeMapper.js +59 -91
  345. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  346. package/Rendering/Core/VolumeProperty.js +78 -115
  347. package/Rendering/Core.js +47 -49
  348. package/Rendering/Misc/CanvasView.js +62 -61
  349. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  350. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  351. package/Rendering/Misc/RemoteView.js +86 -80
  352. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  354. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  355. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  356. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  357. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  358. package/Rendering/Misc.js +7 -7
  359. package/Rendering/OpenGL/Actor.js +57 -68
  360. package/Rendering/OpenGL/Actor2D.js +56 -56
  361. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  362. package/Rendering/OpenGL/BufferObject.js +50 -65
  363. package/Rendering/OpenGL/Camera.js +35 -29
  364. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  365. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  366. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  367. package/Rendering/OpenGL/ForwardPass.js +53 -64
  368. package/Rendering/OpenGL/Framebuffer.js +61 -101
  369. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  370. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  371. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  372. package/Rendering/OpenGL/Helper.js +58 -73
  373. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  374. package/Rendering/OpenGL/ImageMapper.js +268 -361
  375. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  376. package/Rendering/OpenGL/ImageSlice.js +48 -54
  377. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  378. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  379. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  380. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  381. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  382. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  383. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  384. package/Rendering/OpenGL/RenderWindow.js +356 -510
  385. package/Rendering/OpenGL/Renderer.js +77 -89
  386. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  387. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  388. package/Rendering/OpenGL/Shader.js +37 -31
  389. package/Rendering/OpenGL/ShaderCache.js +67 -74
  390. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  391. package/Rendering/OpenGL/Skybox.js +99 -60
  392. package/Rendering/OpenGL/SphereMapper.js +94 -108
  393. package/Rendering/OpenGL/StickMapper.js +110 -114
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  395. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  397. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  398. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  399. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  400. package/Rendering/OpenGL/Texture.js +444 -609
  401. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  402. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  403. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  404. package/Rendering/OpenGL/Volume.js +38 -34
  405. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  406. package/Rendering/OpenGL.js +28 -28
  407. package/Rendering/SceneGraph/RenderPass.js +34 -31
  408. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  409. package/Rendering/SceneGraph/ViewNode.js +82 -111
  410. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  411. package/Rendering/SceneGraph.js +4 -4
  412. package/Rendering/WebGPU/Actor.js +49 -49
  413. package/Rendering/WebGPU/Actor2D.js +45 -44
  414. package/Rendering/WebGPU/BindGroup.js +43 -50
  415. package/Rendering/WebGPU/Buffer.js +41 -50
  416. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  417. package/Rendering/WebGPU/BufferManager.js +111 -141
  418. package/Rendering/WebGPU/Camera.js +65 -67
  419. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  420. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  421. package/Rendering/WebGPU/Device.js +78 -133
  422. package/Rendering/WebGPU/ForwardPass.js +75 -72
  423. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  424. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  425. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  426. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  427. package/Rendering/WebGPU/ImageMapper.js +180 -171
  428. package/Rendering/WebGPU/ImageSlice.js +45 -44
  429. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  430. package/Rendering/WebGPU/OpaquePass.js +37 -36
  431. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  432. package/Rendering/WebGPU/Pipeline.js +37 -51
  433. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  434. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  435. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  436. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  437. package/Rendering/WebGPU/RenderWindow.js +262 -376
  438. package/Rendering/WebGPU/Renderer.js +224 -208
  439. package/Rendering/WebGPU/Sampler.js +27 -21
  440. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  441. package/Rendering/WebGPU/ShaderCache.js +43 -41
  442. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  443. package/Rendering/WebGPU/ShaderModule.js +26 -17
  444. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  445. package/Rendering/WebGPU/SphereMapper.js +200 -130
  446. package/Rendering/WebGPU/StickMapper.js +289 -152
  447. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  448. package/Rendering/WebGPU/Texture.js +79 -99
  449. package/Rendering/WebGPU/TextureManager.js +52 -54
  450. package/Rendering/WebGPU/TextureView.js +40 -43
  451. package/Rendering/WebGPU/Types.js +53 -70
  452. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  453. package/Rendering/WebGPU/VertexInput.js +64 -90
  454. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  455. package/Rendering/WebGPU/Volume.js +52 -51
  456. package/Rendering/WebGPU/VolumePass.js +218 -239
  457. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  458. package/Rendering/WebGPU.js +1 -1
  459. package/Rendering/index.js +5 -5
  460. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  461. package/Widgets/Core/AbstractWidget.js +49 -58
  462. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  463. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  464. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  465. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  466. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  467. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  468. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  469. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  470. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  471. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  472. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  474. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  475. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  477. package/Widgets/Core/StateBuilder.js +120 -149
  478. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  479. package/Widgets/Core/WidgetManager.js +249 -421
  480. package/Widgets/Core/WidgetState.js +48 -57
  481. package/Widgets/Core.js +5 -5
  482. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  483. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  484. package/Widgets/Manipulators/LineManipulator.js +31 -28
  485. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  486. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  487. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  488. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  489. package/Widgets/Manipulators.js +4 -2
  490. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  491. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  492. package/Widgets/Representations/ContextRepresentation.js +17 -14
  493. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  494. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  495. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  496. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  497. package/Widgets/Representations/HandleRepresentation.js +17 -14
  498. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  499. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  500. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  501. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  502. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  503. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  504. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  505. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  506. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  507. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  508. package/Widgets/Representations.js +13 -13
  509. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  510. package/Widgets/Widgets3D/AngleWidget.js +41 -39
  511. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  512. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  513. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  514. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  515. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  516. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  517. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  518. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  519. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  520. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  523. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  524. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  525. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  526. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  527. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  528. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  529. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  530. package/Widgets/Widgets3D/LineWidget.js +39 -35
  531. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  532. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  533. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  534. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  535. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  536. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  537. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  538. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  539. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +134 -210
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +90 -117
  542. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  543. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  544. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  545. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  546. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  547. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  548. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  549. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  550. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  551. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  552. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  553. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  554. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  555. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  556. package/Widgets/Widgets3D.js +15 -15
  557. package/Widgets/index.js +4 -4
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  559. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  560. package/favicon.js +5 -6
  561. package/index.d.ts +4 -2
  562. package/index.js +4 -3
  563. package/macros.js +4 -1931
  564. package/macros2.js +1684 -0
  565. package/package.json +6 -6
  566. 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 };