@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,197 +1,167 @@
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 vtkHardwareSelector from '../Core/HardwareSelector.js';
5
3
  import vtkWebGPUBuffer from './Buffer.js';
6
4
  import vtkWebGPUHardwareSelectionPass from './HardwareSelectionPass.js';
7
5
  import vtkSelectionNode from '../../Common/DataModel/SelectionNode.js';
8
6
  import vtkDataSet from '../../Common/DataModel/DataSet.js';
9
7
 
10
- var SelectionContent = vtkSelectionNode.SelectionContent,
11
- SelectionField = vtkSelectionNode.SelectionField;
12
- var FieldAssociations = vtkDataSet.FieldAssociations;
13
- var vtkErrorMacro = macro.vtkErrorMacro;
14
-
8
+ const {
9
+ SelectionContent,
10
+ SelectionField
11
+ } = vtkSelectionNode;
12
+ const {
13
+ FieldAssociations
14
+ } = vtkDataSet;
15
+ const {
16
+ vtkErrorMacro
17
+ } = macro;
15
18
  function getInfoHash(info) {
16
- return "".concat(info.propID, " ").concat(info.compositeID);
19
+ return `${info.propID} ${info.compositeID}`;
17
20
  }
18
-
19
21
  function convert(xx, yy, buffdata, channel) {
20
- var offset = ((buffdata.height - yy - 1) * buffdata.colorBufferWidth + xx) * 4 + channel;
22
+ const offset = ((buffdata.height - yy - 1) * buffdata.colorBufferWidth + xx) * 4 + channel;
21
23
  return buffdata.colorValues[offset];
22
24
  }
23
-
24
25
  function getPixelInformationWithData(buffdata, inDisplayPosition, maxDistance, outSelectedPosition) {
25
26
  // Base case
26
- var maxDist = maxDistance < 0 ? 0 : maxDistance;
27
-
27
+ const maxDist = maxDistance < 0 ? 0 : maxDistance;
28
28
  if (maxDist === 0) {
29
29
  outSelectedPosition[0] = inDisplayPosition[0];
30
30
  outSelectedPosition[1] = inDisplayPosition[1];
31
-
32
31
  if (inDisplayPosition[0] < 0 || inDisplayPosition[0] >= buffdata.width || inDisplayPosition[1] < 0 || inDisplayPosition[1] >= buffdata.height) {
33
32
  return null;
34
33
  }
35
-
36
- var actorid = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 0);
37
-
34
+ const actorid = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 0);
38
35
  if (actorid <= 0) {
39
36
  // the pixel did not hit any actor.
40
37
  return null;
41
38
  }
42
-
43
- var _info = {};
44
- _info.propID = actorid;
45
- var compositeID = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 1);
46
-
39
+ const info = {};
40
+ info.propID = actorid;
41
+ let compositeID = convert(inDisplayPosition[0], inDisplayPosition[1], buffdata, 1);
47
42
  if (compositeID < 0 || compositeID > 0xffffff) {
48
43
  compositeID = 0;
49
44
  }
50
-
51
- _info.compositeID = compositeID;
52
-
45
+ info.compositeID = compositeID;
53
46
  if (buffdata.captureZValues) {
54
- var offset = (buffdata.height - inDisplayPosition[1] - 1) * buffdata.zbufferBufferWidth + inDisplayPosition[0];
55
- _info.zValue = buffdata.depthValues[offset];
56
- _info.zValue = buffdata.webGPURenderer.convertToOpenGLDepth(_info.zValue);
57
- _info.displayPosition = inDisplayPosition;
47
+ const offset = (buffdata.height - inDisplayPosition[1] - 1) * buffdata.zbufferBufferWidth + inDisplayPosition[0];
48
+ info.zValue = buffdata.depthValues[offset];
49
+ info.zValue = buffdata.webGPURenderer.convertToOpenGLDepth(info.zValue);
50
+ info.displayPosition = inDisplayPosition;
58
51
  }
52
+ return info;
53
+ }
59
54
 
60
- return _info;
61
- } // Iterate over successively growing boxes.
55
+ // Iterate over successively growing boxes.
62
56
  // They recursively call the base case to handle single pixels.
63
-
64
-
65
- var dispPos = [inDisplayPosition[0], inDisplayPosition[1]];
66
- var curPos = [0, 0];
67
- var info = getPixelInformationWithData(buffdata, inDisplayPosition, 0, outSelectedPosition);
68
-
57
+ const dispPos = [inDisplayPosition[0], inDisplayPosition[1]];
58
+ const curPos = [0, 0];
59
+ let info = getPixelInformationWithData(buffdata, inDisplayPosition, 0, outSelectedPosition);
69
60
  if (info) {
70
61
  return info;
71
62
  }
72
-
73
- for (var dist = 1; dist < maxDist; ++dist) {
63
+ for (let dist = 1; dist < maxDist; ++dist) {
74
64
  // Vertical sides of box.
75
- for (var y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {
65
+ for (let y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {
76
66
  curPos[1] = y;
77
-
78
67
  if (dispPos[0] >= dist) {
79
68
  curPos[0] = dispPos[0] - dist;
80
69
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
81
-
82
70
  if (info) {
83
71
  return info;
84
72
  }
85
73
  }
86
-
87
74
  curPos[0] = dispPos[0] + dist;
88
75
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
89
-
90
76
  if (info) {
91
77
  return info;
92
78
  }
93
- } // Horizontal sides of box.
94
-
95
-
96
- for (var x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {
79
+ }
80
+ // Horizontal sides of box.
81
+ for (let x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {
97
82
  curPos[0] = x;
98
-
99
83
  if (dispPos[1] >= dist) {
100
84
  curPos[1] = dispPos[1] - dist;
101
85
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
102
-
103
86
  if (info) {
104
87
  return info;
105
88
  }
106
89
  }
107
-
108
90
  curPos[1] = dispPos[1] + dist;
109
91
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
110
-
111
92
  if (info) {
112
93
  return info;
113
94
  }
114
95
  }
115
- } // nothing hit.
116
-
96
+ }
117
97
 
98
+ // nothing hit.
118
99
  outSelectedPosition[0] = inDisplayPosition[0];
119
100
  outSelectedPosition[1] = inDisplayPosition[1];
120
101
  return null;
121
- } //-----------------------------------------------------------------------------
122
-
102
+ }
123
103
 
104
+ //-----------------------------------------------------------------------------
124
105
  function convertSelection(fieldassociation, dataMap, buffdata) {
125
- var sel = [];
126
- var count = 0;
127
- dataMap.forEach(function (value, key) {
128
- var child = vtkSelectionNode.newInstance();
106
+ const sel = [];
107
+ let count = 0;
108
+ dataMap.forEach((value, key) => {
109
+ const child = vtkSelectionNode.newInstance();
129
110
  child.setContentType(SelectionContent.INDICES);
130
-
131
111
  switch (fieldassociation) {
132
112
  case FieldAssociations.FIELD_ASSOCIATION_CELLS:
133
113
  child.setFieldType(SelectionField.CELL);
134
114
  break;
135
-
136
115
  case FieldAssociations.FIELD_ASSOCIATION_POINTS:
137
116
  child.setFieldType(SelectionField.POINT);
138
117
  break;
139
-
140
118
  default:
141
119
  vtkErrorMacro('Unknown field association');
142
120
  }
143
-
144
121
  child.getProperties().propID = value.info.propID;
145
- var wprop = buffdata.webGPURenderer.getPropFromID(value.info.propID);
122
+ const wprop = buffdata.webGPURenderer.getPropFromID(value.info.propID);
146
123
  child.getProperties().prop = wprop.getRenderable();
147
124
  child.getProperties().compositeID = value.info.compositeID;
148
125
  child.getProperties().pixelCount = value.pixelCount;
149
-
150
126
  if (buffdata.captureZValues) {
151
127
  child.getProperties().displayPosition = [value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue];
152
128
  child.getProperties().worldPosition = buffdata.webGPURenderWindow.displayToWorld(value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue, buffdata.renderer);
153
129
  }
154
-
155
130
  child.setSelectionList(value.attributeIDs);
156
131
  sel[count] = child;
157
132
  count++;
158
133
  });
159
134
  return sel;
160
- } //----------------------------------------------------------------------------
161
-
135
+ }
162
136
 
137
+ //----------------------------------------------------------------------------
163
138
  function generateSelectionWithData(buffdata, fx1, fy1, fx2, fy2) {
164
- var x1 = Math.floor(fx1);
165
- var y1 = Math.floor(fy1);
166
- var x2 = Math.floor(fx2);
167
- var y2 = Math.floor(fy2);
168
- var dataMap = new Map();
169
- var outSelectedPosition = [0, 0];
170
-
171
- for (var yy = y1; yy <= y2; yy++) {
172
- for (var xx = x1; xx <= x2; xx++) {
173
- var pos = [xx, yy];
174
- var info = getPixelInformationWithData(buffdata, pos, 0, outSelectedPosition);
175
-
139
+ const x1 = Math.floor(fx1);
140
+ const y1 = Math.floor(fy1);
141
+ const x2 = Math.floor(fx2);
142
+ const y2 = Math.floor(fy2);
143
+ const dataMap = new Map();
144
+ const outSelectedPosition = [0, 0];
145
+ for (let yy = y1; yy <= y2; yy++) {
146
+ for (let xx = x1; xx <= x2; xx++) {
147
+ const pos = [xx, yy];
148
+ const info = getPixelInformationWithData(buffdata, pos, 0, outSelectedPosition);
176
149
  if (info) {
177
- var hash = getInfoHash(info);
178
-
150
+ const hash = getInfoHash(info);
179
151
  if (!dataMap.has(hash)) {
180
152
  dataMap.set(hash, {
181
- info: info,
153
+ info,
182
154
  pixelCount: 1,
183
155
  attributeIDs: [info.attributeID]
184
156
  });
185
157
  } else {
186
- var dmv = dataMap.get(hash);
158
+ const dmv = dataMap.get(hash);
187
159
  dmv.pixelCount++;
188
-
189
160
  if (buffdata.captureZValues) {
190
161
  if (info.zValue < dmv.info.zValue) {
191
162
  dmv.info = info;
192
163
  }
193
164
  }
194
-
195
165
  if (dmv.attributeIDs.indexOf(info.attributeID) === -1) {
196
166
  dmv.attributeIDs.push(info.attributeID);
197
167
  }
@@ -199,226 +169,180 @@ function generateSelectionWithData(buffdata, fx1, fy1, fx2, fy2) {
199
169
  }
200
170
  }
201
171
  }
202
-
203
172
  return convertSelection(buffdata.fieldAssociation, dataMap, buffdata);
204
- } // ----------------------------------------------------------------------------
173
+ }
174
+
175
+ // ----------------------------------------------------------------------------
205
176
  // vtkWebGPUHardwareSelector methods
206
177
  // ----------------------------------------------------------------------------
207
178
 
208
-
209
179
  function vtkWebGPUHardwareSelector(publicAPI, model) {
210
180
  // Set our className
211
- model.classHierarchy.push('vtkWebGPUHardwareSelector'); //----------------------------------------------------------------------------
181
+ model.classHierarchy.push('vtkWebGPUHardwareSelector');
212
182
 
213
- publicAPI.endSelection = function () {
183
+ //----------------------------------------------------------------------------
184
+ publicAPI.endSelection = () => {
214
185
  model.WebGPURenderer.setSelector(null);
215
- }; //----------------------------------------------------------------------------
186
+ };
187
+
188
+ //----------------------------------------------------------------------------
216
189
  // note we ignore the x,y arguments as WebGPU has to do buffer copies
217
190
  // of the entire depth bufer. We could realloc hardware selection textures
218
191
  // based on the passed in size etc but it gets messy so for now we always
219
192
  // render the full size window and copy it to the buffers.
193
+ publicAPI.getSourceDataAsync = async renderer => {
194
+ if (!renderer || !model._WebGPURenderWindow) {
195
+ vtkErrorMacro('Renderer and view must be set before calling Select.');
196
+ return false;
197
+ }
220
198
 
199
+ // todo revisit making selection part of core
200
+ // then we can do this in core
201
+ model._WebGPURenderWindow.getRenderable().preRender();
202
+ if (!model._WebGPURenderWindow.getInitialized()) {
203
+ model._WebGPURenderWindow.initialize();
204
+ await new Promise(resolve => {
205
+ model._WebGPURenderWindow.onInitialized(resolve);
206
+ });
207
+ }
208
+ const webGPURenderer = model._WebGPURenderWindow.getViewNodeFor(renderer);
209
+ if (!webGPURenderer) {
210
+ return false;
211
+ }
221
212
 
222
- publicAPI.getSourceDataAsync = /*#__PURE__*/function () {
223
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(renderer) {
224
- var webGPURenderer, originalSuppress, device, texture, depthTexture, result, colorBuffer, cmdEnc, zbuffer, cLoad, zLoad;
225
- return _regeneratorRuntime.wrap(function _callee$(_context) {
226
- while (1) {
227
- switch (_context.prev = _context.next) {
228
- case 0:
229
- if (!(!renderer || !model._WebGPURenderWindow)) {
230
- _context.next = 3;
231
- break;
232
- }
233
-
234
- vtkErrorMacro('Renderer and view must be set before calling Select.');
235
- return _context.abrupt("return", false);
236
-
237
- case 3:
238
- // todo revisit making selection part of core
239
- // then we can do this in core
240
- model._WebGPURenderWindow.getRenderable().preRender();
241
-
242
- if (model._WebGPURenderWindow.getInitialized()) {
243
- _context.next = 8;
244
- break;
245
- }
246
-
247
- model._WebGPURenderWindow.initialize();
248
-
249
- _context.next = 8;
250
- return new Promise(function (resolve) {
251
- model._WebGPURenderWindow.onInitialized(resolve);
252
- });
253
-
254
- case 8:
255
- webGPURenderer = model._WebGPURenderWindow.getViewNodeFor(renderer);
256
-
257
- if (webGPURenderer) {
258
- _context.next = 11;
259
- break;
260
- }
261
-
262
- return _context.abrupt("return", false);
263
-
264
- case 11:
265
- // Initialize renderer for selection.
266
- // change the renderer's background to black, which will indicate a miss
267
- originalSuppress = webGPURenderer.getSuppressClear();
268
- webGPURenderer.setSuppressClear(true);
269
-
270
- model._selectionPass.traverse(model._WebGPURenderWindow, webGPURenderer); // restore original background
271
-
272
-
273
- webGPURenderer.setSuppressClear(originalSuppress);
274
- device = model._WebGPURenderWindow.getDevice();
275
- texture = model._selectionPass.getColorTexture();
276
- depthTexture = model._selectionPass.getDepthTexture(); // as this is async we really don't want to store things in
277
- // the class as multiple calls may start before resolving
278
- // so anything specific to this request gets put into the
279
- // result object (by value in most cases)
280
-
281
- result = {
282
- area: [0, 0, texture.getWidth() - 1, texture.getHeight() - 1],
283
- captureZValues: model.captureZValues,
284
- fieldAssociation: model.fieldAssociation,
285
- renderer: renderer,
286
- webGPURenderer: webGPURenderer,
287
- webGPURenderWindow: model._WebGPURenderWindow,
288
- width: texture.getWidth(),
289
- height: texture.getHeight()
290
- }; // must be a multiple of 256 bytes, so 16 texels with rgba32uint
291
-
292
- result.colorBufferWidth = 16 * Math.floor((result.width + 15) / 16);
293
- result.colorBufferSizeInBytes = result.colorBufferWidth * result.height * 4 * 4;
294
- colorBuffer = vtkWebGPUBuffer.newInstance({
295
- label: 'hardwareSelectColorBuffer'
296
- });
297
- colorBuffer.setDevice(device);
298
- /* eslint-disable no-bitwise */
299
-
300
- /* eslint-disable no-undef */
301
-
302
- colorBuffer.create(result.colorBufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
303
- /* eslint-enable no-bitwise */
304
-
305
- /* eslint-enable no-undef */
306
-
307
- cmdEnc = model._WebGPURenderWindow.getCommandEncoder();
308
- cmdEnc.copyTextureToBuffer({
309
- texture: texture.getHandle()
310
- }, {
311
- buffer: colorBuffer.getHandle(),
312
- bytesPerRow: 16 * result.colorBufferWidth,
313
- rowsPerImage: result.height
314
- }, {
315
- width: result.width,
316
- height: result.height,
317
- depthOrArrayLayers: 1
318
- });
319
-
320
- if (model.captureZValues) {
321
- result.zbufferBufferWidth = 64 * Math.floor((result.width + 63) / 64);
322
- zbuffer = vtkWebGPUBuffer.newInstance({
323
- label: 'hardwareSelectDepthBuffer'
324
- });
325
- zbuffer.setDevice(device);
326
- result.zbufferSizeInBytes = result.height * result.zbufferBufferWidth * 4;
327
- /* eslint-disable no-bitwise */
328
-
329
- /* eslint-disable no-undef */
330
-
331
- zbuffer.create(result.zbufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
332
- /* eslint-enable no-bitwise */
333
-
334
- /* eslint-enable no-undef */
335
-
336
- cmdEnc.copyTextureToBuffer({
337
- texture: depthTexture.getHandle(),
338
- aspect: 'depth-only'
339
- }, {
340
- buffer: zbuffer.getHandle(),
341
- bytesPerRow: 4 * result.zbufferBufferWidth,
342
- rowsPerImage: result.height
343
- }, {
344
- width: result.width,
345
- height: result.height,
346
- depthOrArrayLayers: 1
347
- });
348
- }
349
-
350
- device.submitCommandEncoder(cmdEnc);
351
- /* eslint-disable no-undef */
352
-
353
- cLoad = colorBuffer.mapAsync(GPUMapMode.READ);
354
-
355
- if (!model.captureZValues) {
356
- _context.next = 37;
357
- break;
358
- }
359
-
360
- zLoad = zbuffer.mapAsync(GPUMapMode.READ);
361
- _context.next = 33;
362
- return Promise.all([cLoad, zLoad]);
363
-
364
- case 33:
365
- result.depthValues = new Float32Array(zbuffer.getMappedRange().slice());
366
- zbuffer.unmap();
367
- _context.next = 39;
368
- break;
369
-
370
- case 37:
371
- _context.next = 39;
372
- return cLoad;
373
-
374
- case 39:
375
- /* eslint-enable no-undef */
376
- result.colorValues = new Uint32Array(colorBuffer.getMappedRange().slice());
377
- colorBuffer.unmap();
378
-
379
- result.generateSelection = function (fx1, fy1, fx2, fy2) {
380
- return generateSelectionWithData(result, fx1, fy1, fx2, fy2);
381
- };
213
+ // Initialize renderer for selection.
214
+ // change the renderer's background to black, which will indicate a miss
215
+ const originalSuppress = webGPURenderer.getSuppressClear();
216
+ webGPURenderer.setSuppressClear(true);
217
+ model._selectionPass.traverse(model._WebGPURenderWindow, webGPURenderer);
218
+
219
+ // restore original background
220
+ webGPURenderer.setSuppressClear(originalSuppress);
221
+ const device = model._WebGPURenderWindow.getDevice();
222
+ const texture = model._selectionPass.getColorTexture();
223
+ const depthTexture = model._selectionPass.getDepthTexture();
224
+
225
+ // as this is async we really don't want to store things in
226
+ // the class as multiple calls may start before resolving
227
+ // so anything specific to this request gets put into the
228
+ // result object (by value in most cases)
229
+ const result = {
230
+ area: [0, 0, texture.getWidth() - 1, texture.getHeight() - 1],
231
+ captureZValues: model.captureZValues,
232
+ fieldAssociation: model.fieldAssociation,
233
+ renderer,
234
+ webGPURenderer,
235
+ webGPURenderWindow: model._WebGPURenderWindow,
236
+ width: texture.getWidth(),
237
+ height: texture.getHeight()
238
+ };
382
239
 
383
- return _context.abrupt("return", result);
240
+ // must be a multiple of 256 bytes, so 16 texels with rgba32uint
241
+ result.colorBufferWidth = 16 * Math.floor((result.width + 15) / 16);
242
+ result.colorBufferSizeInBytes = result.colorBufferWidth * result.height * 4 * 4;
243
+ const colorBuffer = vtkWebGPUBuffer.newInstance({
244
+ label: 'hardwareSelectColorBuffer'
245
+ });
246
+ colorBuffer.setDevice(device);
247
+ /* eslint-disable no-bitwise */
248
+ /* eslint-disable no-undef */
249
+ colorBuffer.create(result.colorBufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
250
+ /* eslint-enable no-bitwise */
251
+ /* eslint-enable no-undef */
252
+
253
+ const cmdEnc = model._WebGPURenderWindow.getCommandEncoder();
254
+ cmdEnc.copyTextureToBuffer({
255
+ texture: texture.getHandle()
256
+ }, {
257
+ buffer: colorBuffer.getHandle(),
258
+ bytesPerRow: 16 * result.colorBufferWidth,
259
+ rowsPerImage: result.height
260
+ }, {
261
+ width: result.width,
262
+ height: result.height,
263
+ depthOrArrayLayers: 1
264
+ });
265
+ let zbuffer;
266
+ if (model.captureZValues) {
267
+ result.zbufferBufferWidth = 64 * Math.floor((result.width + 63) / 64);
268
+ zbuffer = vtkWebGPUBuffer.newInstance({
269
+ label: 'hardwareSelectDepthBuffer'
270
+ });
271
+ zbuffer.setDevice(device);
272
+ result.zbufferSizeInBytes = result.height * result.zbufferBufferWidth * 4;
273
+ /* eslint-disable no-bitwise */
274
+ /* eslint-disable no-undef */
275
+ zbuffer.create(result.zbufferSizeInBytes, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
276
+ /* eslint-enable no-bitwise */
277
+ /* eslint-enable no-undef */
278
+
279
+ cmdEnc.copyTextureToBuffer({
280
+ texture: depthTexture.getHandle(),
281
+ aspect: 'depth-only'
282
+ }, {
283
+ buffer: zbuffer.getHandle(),
284
+ bytesPerRow: 4 * result.zbufferBufferWidth,
285
+ rowsPerImage: result.height
286
+ }, {
287
+ width: result.width,
288
+ height: result.height,
289
+ depthOrArrayLayers: 1
290
+ });
291
+ }
292
+ device.submitCommandEncoder(cmdEnc);
293
+
294
+ /* eslint-disable no-undef */
295
+ const cLoad = colorBuffer.mapAsync(GPUMapMode.READ);
296
+ if (model.captureZValues) {
297
+ const zLoad = zbuffer.mapAsync(GPUMapMode.READ);
298
+ await Promise.all([cLoad, zLoad]);
299
+ result.depthValues = new Float32Array(zbuffer.getMappedRange().slice());
300
+ zbuffer.unmap();
301
+ } else {
302
+ await cLoad;
303
+ }
304
+ /* eslint-enable no-undef */
384
305
 
385
- case 43:
386
- case "end":
387
- return _context.stop();
388
- }
389
- }
390
- }, _callee);
391
- }));
306
+ result.colorValues = new Uint32Array(colorBuffer.getMappedRange().slice());
307
+ colorBuffer.unmap();
308
+ result.generateSelection = (fx1, fy1, fx2, fy2) => generateSelectionWithData(result, fx1, fy1, fx2, fy2);
309
+ return result;
310
+ };
311
+ }
392
312
 
393
- return function (_x) {
394
- return _ref.apply(this, arguments);
395
- };
396
- }();
397
- } // ----------------------------------------------------------------------------
313
+ // ----------------------------------------------------------------------------
398
314
  // Object factory
399
315
  // ----------------------------------------------------------------------------
400
316
 
317
+ const DEFAULT_VALUES = {
318
+ // WebGPURenderWindow: null,
319
+ };
401
320
 
402
- var DEFAULT_VALUES = {// WebGPURenderWindow: null,
403
- }; // ----------------------------------------------------------------------------
321
+ // ----------------------------------------------------------------------------
404
322
 
405
323
  function extend(publicAPI, model) {
406
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
407
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
324
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
325
+ Object.assign(model, DEFAULT_VALUES, initialValues);
408
326
 
327
+ // Build VTK API
409
328
  vtkHardwareSelector.extend(publicAPI, model, initialValues);
410
329
  model._selectionPass = vtkWebGPUHardwareSelectionPass.newInstance();
411
330
  macro.setGet(publicAPI, model, ['_WebGPURenderWindow']);
412
- macro.moveToProtected(publicAPI, model, ['WebGPURenderWindow']); // Object methods
331
+ macro.moveToProtected(publicAPI, model, ['WebGPURenderWindow']);
413
332
 
333
+ // Object methods
414
334
  vtkWebGPUHardwareSelector(publicAPI, model);
415
- } // ----------------------------------------------------------------------------
335
+ }
336
+
337
+ // ----------------------------------------------------------------------------
338
+
339
+ const newInstance = macro.newInstance(extend, 'vtkWebGPUHardwareSelector');
416
340
 
417
- var newInstance = macro.newInstance(extend, 'vtkWebGPUHardwareSelector'); // ----------------------------------------------------------------------------
341
+ // ----------------------------------------------------------------------------
418
342
 
419
343
  var vtkWebGPUHardwareSelector$1 = {
420
- newInstance: newInstance,
421
- extend: extend
344
+ newInstance,
345
+ extend
422
346
  };
423
347
 
424
348
  export { vtkWebGPUHardwareSelector$1 as default, extend, newInstance };