@kitware/vtk.js 28.10.2 → 28.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +193 -277
  6. package/Common/Core/Endian.js +14 -17
  7. package/Common/Core/HalfFloat.js +17 -34
  8. package/Common/Core/ImageHelper.js +17 -25
  9. package/Common/Core/LookupTable.js +131 -144
  10. package/Common/Core/Math/Constants.js +8 -8
  11. package/Common/Core/Math/index.js +754 -942
  12. package/Common/Core/Math.js +2 -4
  13. package/Common/Core/MatrixBuilder.js +99 -151
  14. package/Common/Core/Points.js +43 -43
  15. package/Common/Core/PriorityQueue.js +30 -28
  16. package/Common/Core/ProgressHandler.js +31 -32
  17. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  18. package/Common/Core/ScalarsToColors.js +196 -253
  19. package/Common/Core/StringArray.js +48 -73
  20. package/Common/Core/URLExtract.js +10 -29
  21. package/Common/Core/VariantArray.js +48 -73
  22. package/Common/Core.js +11 -11
  23. package/Common/DataModel/AbstractPointLocator.js +19 -17
  24. package/Common/DataModel/BoundingBox.js +322 -490
  25. package/Common/DataModel/Box.js +46 -63
  26. package/Common/DataModel/CardinalSpline1D.js +92 -102
  27. package/Common/DataModel/Cell.js +41 -61
  28. package/Common/DataModel/CellLinks.js +91 -127
  29. package/Common/DataModel/CellTypes/Constants.js +7 -6
  30. package/Common/DataModel/CellTypes.js +55 -74
  31. package/Common/DataModel/Collection.js +45 -61
  32. package/Common/DataModel/Cone.js +28 -20
  33. package/Common/DataModel/Cylinder.js +41 -35
  34. package/Common/DataModel/DataSet/Constants.js +11 -5
  35. package/Common/DataModel/DataSet.js +37 -25
  36. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  37. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  38. package/Common/DataModel/DataSetAttributes.js +96 -138
  39. package/Common/DataModel/EdgeLocator.js +45 -70
  40. package/Common/DataModel/ITKHelper.js +67 -137
  41. package/Common/DataModel/ImageData.js +115 -172
  42. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  43. package/Common/DataModel/ImplicitBoolean.js +66 -96
  44. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  45. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  46. package/Common/DataModel/KochanekSpline1D.js +78 -81
  47. package/Common/DataModel/Line/Constants.js +2 -2
  48. package/Common/DataModel/Line.js +82 -105
  49. package/Common/DataModel/Locator.js +17 -10
  50. package/Common/DataModel/Molecule.js +26 -17
  51. package/Common/DataModel/PiecewiseFunction.js +218 -239
  52. package/Common/DataModel/Plane.js +90 -113
  53. package/Common/DataModel/PointSet.js +30 -26
  54. package/Common/DataModel/PolyData/Constants.js +2 -2
  55. package/Common/DataModel/PolyData.js +95 -120
  56. package/Common/DataModel/PolyLine.js +44 -61
  57. package/Common/DataModel/Polygon/Constants.js +4 -4
  58. package/Common/DataModel/Polygon.js +128 -169
  59. package/Common/DataModel/Quad/Constants.js +2 -2
  60. package/Common/DataModel/Quad.js +61 -100
  61. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  62. package/Common/DataModel/SelectionNode.js +25 -21
  63. package/Common/DataModel/Sphere.js +40 -35
  64. package/Common/DataModel/Spline1D/Constants.js +3 -2
  65. package/Common/DataModel/Spline1D.js +34 -18
  66. package/Common/DataModel/Spline3D/Constants.js +2 -2
  67. package/Common/DataModel/Spline3D.js +46 -41
  68. package/Common/DataModel/StructuredData/Constants.js +2 -2
  69. package/Common/DataModel/StructuredData.js +9 -20
  70. package/Common/DataModel/Triangle.js +207 -250
  71. package/Common/DataModel.js +19 -19
  72. package/Common/System/MobileVR.js +56 -61
  73. package/Common/System/TimerLog.js +1 -1
  74. package/Common/System.js +2 -2
  75. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  76. package/Common/Transform/LandmarkTransform.js +133 -117
  77. package/Common/Transform/Transform.js +42 -57
  78. package/Common/Transform.js +2 -2
  79. package/Common/index.js +4 -4
  80. package/Filters/Core/Cutter.js +134 -146
  81. package/Filters/Core/PolyDataNormals.js +44 -50
  82. package/Filters/Core.js +2 -2
  83. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  84. package/Filters/Cornerstone.js +1 -1
  85. package/Filters/General/AppendPolyData.js +84 -100
  86. package/Filters/General/Calculator.js +95 -163
  87. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  88. package/Filters/General/ClipClosedSurface.js +341 -416
  89. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  90. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  91. package/Filters/General/ContourTriangulator/helper.js +684 -812
  92. package/Filters/General/ContourTriangulator.js +92 -89
  93. package/Filters/General/ImageCropFilter.js +77 -78
  94. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  95. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  96. package/Filters/General/ImageMarchingCubes.js +99 -112
  97. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  98. package/Filters/General/ImageMarchingSquares.js +93 -118
  99. package/Filters/General/ImageOutlineFilter.js +53 -54
  100. package/Filters/General/ImageSliceFilter.js +39 -30
  101. package/Filters/General/ImageStreamline.js +107 -124
  102. package/Filters/General/LineFilter.js +26 -15
  103. package/Filters/General/MoleculeToRepresentation.js +136 -149
  104. package/Filters/General/OBBTree/OBBNode.js +36 -34
  105. package/Filters/General/OBBTree/helper.js +19 -24
  106. package/Filters/General/OBBTree.js +396 -488
  107. package/Filters/General/OutlineFilter.js +52 -34
  108. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  109. package/Filters/General/PaintFilter.js +150 -162
  110. package/Filters/General/ScalarToRGBA.js +38 -33
  111. package/Filters/General/TriangleFilter.js +65 -62
  112. package/Filters/General/TubeFilter/Constants.js +4 -4
  113. package/Filters/General/TubeFilter.js +376 -496
  114. package/Filters/General/WarpScalar.js +58 -60
  115. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  116. package/Filters/General.js +21 -21
  117. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  118. package/Filters/Sources/Arrow2DSource.js +56 -56
  119. package/Filters/Sources/ArrowSource.js +39 -29
  120. package/Filters/Sources/CircleSource.js +43 -43
  121. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  122. package/Filters/Sources/ConeSource.js +51 -42
  123. package/Filters/Sources/CubeSource.js +75 -96
  124. package/Filters/Sources/Cursor3D.js +94 -109
  125. package/Filters/Sources/CylinderSource.js +90 -90
  126. package/Filters/Sources/ImageGridSource.js +43 -43
  127. package/Filters/Sources/LineSource.js +49 -39
  128. package/Filters/Sources/PlaneSource.js +97 -104
  129. package/Filters/Sources/PointSource.js +46 -37
  130. package/Filters/Sources/RTAnalyticSource.js +50 -48
  131. package/Filters/Sources/SLICSource.js +63 -73
  132. package/Filters/Sources/SphereSource.js +88 -78
  133. package/Filters/Sources/ViewFinderSource.js +26 -23
  134. package/Filters/Sources.js +14 -14
  135. package/Filters/Texture/TextureMapToPlane.js +95 -97
  136. package/Filters/Texture/TextureMapToSphere.js +46 -54
  137. package/Filters/Texture.js +2 -2
  138. package/Filters/index.js +5 -5
  139. package/IO/Core/BinaryHelper.js +12 -18
  140. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  141. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  142. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  143. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  144. package/IO/Core/DataAccessHelper.js +6 -6
  145. package/IO/Core/HttpDataSetReader.js +136 -139
  146. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  147. package/IO/Core/HttpSceneLoader.js +130 -179
  148. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  149. package/IO/Core/ImageStream/ViewStream.js +100 -103
  150. package/IO/Core/ImageStream.js +62 -54
  151. package/IO/Core/ResourceLoader.js +10 -9
  152. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  153. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  154. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  155. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  156. package/IO/Core/Serializer.js +6 -13
  157. package/IO/Core/WSLinkClient.js +90 -76
  158. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  159. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  160. package/IO/Core.js +7 -7
  161. package/IO/Geometry/DracoReader.js +118 -121
  162. package/IO/Geometry/PLYReader.js +163 -223
  163. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  164. package/IO/Geometry/PLYWriter.js +139 -154
  165. package/IO/Geometry/STLReader.js +123 -146
  166. package/IO/Geometry/STLWriter/Constants.js +2 -2
  167. package/IO/Geometry/STLWriter.js +83 -82
  168. package/IO/Geometry.js +5 -5
  169. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  170. package/IO/Legacy/PolyDataReader.js +48 -36
  171. package/IO/Legacy.js +2 -2
  172. package/IO/Misc/ElevationReader.js +67 -60
  173. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  174. package/IO/Misc/ITKImageReader.js +58 -45
  175. package/IO/Misc/ITKPolyDataReader.js +50 -38
  176. package/IO/Misc/JSONNucleoReader.js +49 -42
  177. package/IO/Misc/JSONReader.js +38 -33
  178. package/IO/Misc/MTLReader.js +74 -119
  179. package/IO/Misc/OBJReader.js +153 -206
  180. package/IO/Misc/PDBReader.js +70 -68
  181. package/IO/Misc/SkyboxReader.js +77 -82
  182. package/IO/Misc.js +9 -9
  183. package/IO/XML/XMLImageDataReader.js +36 -38
  184. package/IO/XML/XMLImageDataWriter.js +28 -21
  185. package/IO/XML/XMLPolyDataReader.js +49 -46
  186. package/IO/XML/XMLPolyDataWriter.js +43 -42
  187. package/IO/XML/XMLReader.js +262 -304
  188. package/IO/XML/XMLWriter/Constants.js +3 -3
  189. package/IO/XML/XMLWriter.js +70 -84
  190. package/IO/XML.js +6 -6
  191. package/IO/index.js +5 -5
  192. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  193. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  194. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  195. package/Imaging/Core/ImageInterpolator.js +201 -252
  196. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  197. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  198. package/Imaging/Core/ImageReslice.js +327 -464
  199. package/Imaging/Core.js +4 -4
  200. package/Imaging/Hybrid/SampleFunction.js +58 -51
  201. package/Imaging/Hybrid.js +1 -1
  202. package/Imaging/index.js +2 -2
  203. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  204. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  205. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  206. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  207. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  208. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  209. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  210. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  211. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  212. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  213. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  214. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  215. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  216. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  217. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  218. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  219. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  221. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  222. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  223. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  224. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  225. package/Interaction/Manipulators.js +21 -21
  226. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  227. package/Interaction/Misc.js +1 -1
  228. package/Interaction/Style/InteractorStyleImage.js +101 -121
  229. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  230. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  231. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  232. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  233. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  234. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  235. package/Interaction/Style.js +5 -5
  236. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  237. package/Interaction/UI/CornerAnnotation.js +65 -48
  238. package/Interaction/UI/FPSMonitor.js +104 -105
  239. package/Interaction/UI/Icons.js +1 -1
  240. package/Interaction/UI/Slider/Constants.js +2 -2
  241. package/Interaction/UI/Slider.js +78 -95
  242. package/Interaction/UI/VolumeController.js +104 -97
  243. package/Interaction/UI.js +5 -5
  244. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  245. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  246. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  247. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  248. package/Interaction/Widgets.js +2 -2
  249. package/Interaction/index.js +5 -5
  250. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  251. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  252. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  253. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  254. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  255. package/Proxy/Core/LookupTableProxy.js +49 -52
  256. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  257. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  258. package/Proxy/Core/ProxyManager/core.js +83 -106
  259. package/Proxy/Core/ProxyManager/properties.js +53 -76
  260. package/Proxy/Core/ProxyManager/state.js +100 -110
  261. package/Proxy/Core/ProxyManager/view.js +45 -55
  262. package/Proxy/Core/ProxyManager.js +16 -8
  263. package/Proxy/Core/SourceProxy.js +41 -38
  264. package/Proxy/Core/View2DProxy.js +143 -199
  265. package/Proxy/Core/ViewProxy.js +223 -269
  266. package/Proxy/Core.js +7 -7
  267. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  268. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  269. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  270. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  271. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  272. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  273. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  274. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  275. package/Proxy/Representations.js +7 -7
  276. package/Proxy/index.js +2 -2
  277. package/README.md +1 -1
  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 +85 -144
  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 +192 -256
  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 +443 -608
  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 +40 -38
  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 +133 -209
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
  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,6 @@
1
1
  import { mat4, vec4 } from 'gl-matrix';
2
2
  import Constants from '../Core/ImageMapper/Constants.js';
3
- import { newInstance as newInstance$1, obj } from '../../macros.js';
3
+ import { n as newInstance$1, o as obj } from '../../macros2.js';
4
4
  import vtkWebGPUShaderCache from './ShaderCache.js';
5
5
  import vtkWebGPUFullScreenQuad from './FullScreenQuad.js';
6
6
  import vtkWebGPUUniformBuffer from './UniformBuffer.js';
@@ -8,72 +8,99 @@ import vtkWebGPUSampler from './Sampler.js';
8
8
  import { InterpolationType } from '../Core/ImageProperty/Constants.js';
9
9
  import { registerOverride } from './ViewNodeFactory.js';
10
10
 
11
- var SlicingMode = Constants.SlicingMode;
12
- var imgFragTemplate = "\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Image::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n //VTK::Image::Sample\n\n // var computedColor: vec4<f32> = vec4<f32>(1.0,0.7, 0.5, 1.0);\n\n//VTK::RenderEncoder::Impl\n\n return output;\n}\n"; // ----------------------------------------------------------------------------
11
+ // const { vtkErrorMacro } = macro;
12
+ const {
13
+ SlicingMode
14
+ } = Constants;
15
+ const imgFragTemplate = `
16
+ //VTK::Renderer::Dec
17
+
18
+ //VTK::Mapper::Dec
19
+
20
+ //VTK::TCoord::Dec
21
+
22
+ //VTK::Image::Dec
23
+
24
+ //VTK::RenderEncoder::Dec
25
+
26
+ //VTK::IOStructs::Dec
27
+
28
+ @fragment
29
+ fn main(
30
+ //VTK::IOStructs::Input
31
+ )
32
+ //VTK::IOStructs::Output
33
+ {
34
+ var output: fragmentOutput;
35
+
36
+ //VTK::Image::Sample
37
+
38
+ // var computedColor: vec4<f32> = vec4<f32>(1.0,0.7, 0.5, 1.0);
39
+
40
+ //VTK::RenderEncoder::Impl
41
+
42
+ return output;
43
+ }
44
+ `;
45
+
46
+ // ----------------------------------------------------------------------------
13
47
  // helper methods
14
48
  // ----------------------------------------------------------------------------
15
49
 
16
50
  function computeFnToString(property, fn, numberOfComponents) {
17
- var pwfun = fn.apply(property);
18
-
51
+ const pwfun = fn.apply(property);
19
52
  if (pwfun) {
20
- var iComps = property.getIndependentComponents();
21
- return "".concat(property.getMTime(), "-").concat(iComps, "-").concat(numberOfComponents);
53
+ const iComps = property.getIndependentComponents();
54
+ return `${property.getMTime()}-${iComps}-${numberOfComponents}`;
22
55
  }
23
-
24
56
  return '0';
25
- } // ----------------------------------------------------------------------------
57
+ }
58
+
59
+ // ----------------------------------------------------------------------------
26
60
  // vtkWebGPUImageMapper methods
27
61
  // ----------------------------------------------------------------------------
28
62
 
29
-
30
- var tmpMat4 = new Float64Array(16);
31
- var tmp2Mat4 = new Float64Array(16);
32
- var tmp3Mat4 = new Float64Array(16);
33
- var ptsArray1 = new Float64Array(4);
34
- var ptsArray2 = new Float64Array(4);
35
-
63
+ const tmpMat4 = new Float64Array(16);
64
+ const tmp2Mat4 = new Float64Array(16);
65
+ const tmp3Mat4 = new Float64Array(16);
66
+ const ptsArray1 = new Float64Array(4);
67
+ const ptsArray2 = new Float64Array(4);
36
68
  function vtkWebGPUImageMapper(publicAPI, model) {
37
69
  // Set our className
38
70
  model.classHierarchy.push('vtkWebGPUImageMapper');
39
-
40
- publicAPI.buildPass = function (prepass) {
71
+ publicAPI.buildPass = prepass => {
41
72
  if (prepass) {
42
73
  model.WebGPUImageSlice = publicAPI.getFirstAncestorOfType('vtkWebGPUImageSlice');
43
74
  model.WebGPURenderer = model.WebGPUImageSlice.getFirstAncestorOfType('vtkWebGPURenderer');
44
75
  model.WebGPURenderWindow = model.WebGPURenderer.getParent();
45
76
  model.device = model.WebGPURenderWindow.getDevice();
46
- var ren = model.WebGPURenderer.getRenderable(); // is slice set by the camera
47
-
77
+ const ren = model.WebGPURenderer.getRenderable();
78
+ // is slice set by the camera
48
79
  if (model.renderable.getSliceAtFocalPoint()) {
49
80
  model.renderable.setSliceFromCamera(ren.getActiveCamera());
50
81
  }
51
82
  }
52
- }; // Renders myself
53
-
83
+ };
54
84
 
55
- publicAPI.translucentPass = function (prepass) {
85
+ // Renders myself
86
+ publicAPI.translucentPass = prepass => {
56
87
  if (prepass) {
57
88
  publicAPI.render();
58
89
  }
59
90
  };
60
-
61
- publicAPI.opaquePass = function (prepass) {
91
+ publicAPI.opaquePass = prepass => {
62
92
  if (prepass) {
63
93
  publicAPI.render();
64
94
  }
65
95
  };
66
-
67
- publicAPI.render = function () {
96
+ publicAPI.render = () => {
68
97
  model.renderable.update();
69
98
  model.currentInput = model.renderable.getInputData();
70
99
  publicAPI.prepareToDraw(model.WebGPURenderer.getRenderEncoder());
71
100
  model.renderEncoder.registerDrawCallback(model.pipeline, publicAPI.draw);
72
101
  };
73
-
74
- publicAPI.computePipelineHash = function () {
75
- var ext = model.currentInput.getExtent();
76
-
102
+ publicAPI.computePipelineHash = () => {
103
+ const ext = model.currentInput.getExtent();
77
104
  if (ext[0] === ext[1] || ext[2] === ext[3] || ext[4] === ext[5]) {
78
105
  model.dimensions = 2;
79
106
  model.pipelineHash = 'img2';
@@ -82,59 +109,62 @@ function vtkWebGPUImageMapper(publicAPI, model) {
82
109
  model.pipelineHash = 'img3';
83
110
  }
84
111
  };
85
-
86
- publicAPI.updateUBO = function () {
87
- var utime = model.UBO.getSendTime();
88
- var actor = model.WebGPUImageSlice.getRenderable();
89
- var volMapr = actor.getMapper();
90
-
112
+ publicAPI.updateUBO = () => {
113
+ const utime = model.UBO.getSendTime();
114
+ const actor = model.WebGPUImageSlice.getRenderable();
115
+ const volMapr = actor.getMapper();
91
116
  if (publicAPI.getMTime() > utime || model.renderable.getMTime() > utime || actor.getProperty().getMTime() > utime) {
92
117
  // compute the SCTCMatrix
93
- var image = volMapr.getInputData();
94
- var center = model.WebGPURenderer.getStabilizedCenterByReference();
118
+ const image = volMapr.getInputData();
119
+ const center = model.WebGPURenderer.getStabilizedCenterByReference();
95
120
  mat4.identity(tmpMat4);
96
- mat4.translate(tmpMat4, tmpMat4, center); // tmpMat4 is now SC->World
121
+ mat4.translate(tmpMat4, tmpMat4, center);
122
+ // tmpMat4 is now SC->World
97
123
 
98
- var mcwcmat = actor.getMatrix();
124
+ const mcwcmat = actor.getMatrix();
99
125
  mat4.transpose(tmp2Mat4, mcwcmat);
100
- mat4.invert(tmp2Mat4, tmp2Mat4); // tmp2Mat4 is now world to model
126
+ mat4.invert(tmp2Mat4, tmp2Mat4);
127
+ // tmp2Mat4 is now world to model
128
+
129
+ mat4.multiply(tmpMat4, tmp2Mat4, tmpMat4);
130
+ // tmp4Mat is now SC->Model
101
131
 
102
- mat4.multiply(tmpMat4, tmp2Mat4, tmpMat4); // tmp4Mat is now SC->Model
103
132
  // the method on the data is world to index but the volume is in
104
133
  // model coordinates so really in this context it is model to index
134
+ const modelToIndex = image.getWorldToIndex();
135
+ mat4.multiply(tmpMat4, modelToIndex, tmpMat4);
136
+ // tmpMat4 is now SC -> Index, save this as we need it later
137
+ mat4.invert(tmp3Mat4, tmpMat4);
105
138
 
106
- var modelToIndex = image.getWorldToIndex();
107
- mat4.multiply(tmpMat4, modelToIndex, tmpMat4); // tmpMat4 is now SC -> Index, save this as we need it later
108
-
109
- mat4.invert(tmp3Mat4, tmpMat4); // need translation and scale
110
-
139
+ // need translation and scale
111
140
  mat4.fromTranslation(tmp2Mat4, [0.5, 0.5, 0.5]);
112
141
  mat4.multiply(tmpMat4, tmp2Mat4, tmpMat4);
113
- var dims = image.getDimensions();
142
+ const dims = image.getDimensions();
114
143
  mat4.identity(tmp2Mat4);
115
144
  mat4.scale(tmp2Mat4, tmp2Mat4, [1.0 / dims[0], 1.0 / dims[1], 1.0 / dims[2]]);
116
- mat4.multiply(tmpMat4, tmp2Mat4, tmpMat4); // tmpMat4 is now SC -> Tcoord
117
-
118
- model.UBO.setArray('SCTCMatrix', tmpMat4); // need to compute the plane here in world coordinates
119
- // then pass that down in the UBO
120
-
121
- var ext = model.currentInput.getExtent(); // Find what IJK axis and what direction to slice along
145
+ mat4.multiply(tmpMat4, tmp2Mat4, tmpMat4);
146
+ // tmpMat4 is now SC -> Tcoord
122
147
 
123
- var _model$renderable$get = model.renderable.getClosestIJKAxis(),
124
- ijkMode = _model$renderable$get.ijkMode; // Find the IJK slice
148
+ model.UBO.setArray('SCTCMatrix', tmpMat4);
125
149
 
150
+ // need to compute the plane here in world coordinates
151
+ // then pass that down in the UBO
152
+ const ext = model.currentInput.getExtent();
126
153
 
127
- var nSlice = model.renderable.getSlice();
154
+ // Find what IJK axis and what direction to slice along
155
+ const {
156
+ ijkMode
157
+ } = model.renderable.getClosestIJKAxis();
128
158
 
159
+ // Find the IJK slice
160
+ let nSlice = model.renderable.getSlice();
129
161
  if (ijkMode !== model.renderable.getSlicingMode()) {
130
162
  // If not IJK slicing, get the IJK slice from the XYZ position/slice
131
163
  nSlice = model.renderable.getSliceAtPosition(nSlice);
132
164
  }
133
-
134
- var axis0 = 2;
135
- var axis1 = 0;
136
- var axis2 = 1;
137
-
165
+ let axis0 = 2;
166
+ let axis1 = 0;
167
+ let axis2 = 1;
138
168
  if (ijkMode === SlicingMode.I) {
139
169
  axis0 = 0;
140
170
  axis1 = 1;
@@ -144,7 +174,6 @@ function vtkWebGPUImageMapper(publicAPI, model) {
144
174
  axis1 = 2;
145
175
  axis2 = 0;
146
176
  }
147
-
148
177
  ptsArray1[axis0] = nSlice;
149
178
  ptsArray1[axis1] = ext[axis1 * 2] - 0.5;
150
179
  ptsArray1[axis2] = ext[axis2 * 2] - 0.5;
@@ -166,122 +195,104 @@ function vtkWebGPUImageMapper(publicAPI, model) {
166
195
  vec4.transformMat4(ptsArray2, ptsArray2, tmp3Mat4);
167
196
  vec4.subtract(ptsArray2, ptsArray2, ptsArray1);
168
197
  ptsArray2[3] = 1.0;
169
- model.UBO.setArray('Axis2', ptsArray2); // three levels of shift scale combined into one
170
- // for performance in the fragment shader
171
-
172
- var cScale = [1, 1, 1, 1];
173
- var cShift = [0, 0, 0, 0];
174
- var tView = model.textureViews[0];
175
- var tScale = tView.getTexture().getScale();
176
- var numComp = tView.getTexture().getNumberOfComponents();
177
- var iComps = false; // todo handle independent?
178
-
179
- for (var i = 0; i < numComp; i++) {
180
- var cw = actor.getProperty().getColorWindow();
181
- var cl = actor.getProperty().getColorLevel();
182
- var target = iComps ? i : 0;
183
- var cfun = actor.getProperty().getRGBTransferFunction(target);
198
+ model.UBO.setArray('Axis2', ptsArray2);
184
199
 
200
+ // three levels of shift scale combined into one
201
+ // for performance in the fragment shader
202
+ const cScale = [1, 1, 1, 1];
203
+ const cShift = [0, 0, 0, 0];
204
+ const tView = model.textureViews[0];
205
+ const tScale = tView.getTexture().getScale();
206
+ const numComp = tView.getTexture().getNumberOfComponents();
207
+ for (let i = 0; i < numComp; i++) {
208
+ let cw = actor.getProperty().getColorWindow();
209
+ let cl = actor.getProperty().getColorLevel();
210
+ const target = 0;
211
+ const cfun = actor.getProperty().getRGBTransferFunction(target);
185
212
  if (cfun) {
186
- var cRange = cfun.getRange();
213
+ const cRange = cfun.getRange();
187
214
  cw = cRange[1] - cRange[0];
188
215
  cl = 0.5 * (cRange[1] + cRange[0]);
189
216
  }
190
-
191
217
  cScale[i] = tScale / cw;
192
218
  cShift[i] = -cl / cw + 0.5;
193
219
  }
194
-
195
220
  model.UBO.setArray('cScale', cScale);
196
221
  model.UBO.setArray('cShift', cShift);
197
222
  model.UBO.sendIfNeeded(model.device);
198
223
  }
199
224
  };
200
-
201
- publicAPI.updateLUTImage = function () {
202
- var actorProperty = model.WebGPUImageSlice.getRenderable().getProperty();
203
- var tView = publicAPI.getTextureViews()[0];
225
+ publicAPI.updateLUTImage = () => {
226
+ const actorProperty = model.WebGPUImageSlice.getRenderable().getProperty();
227
+ const tView = publicAPI.getTextureViews()[0];
204
228
  tView.getTexture().getNumberOfComponents();
205
-
206
- var numIComps = 1;
207
- var cfunToString = computeFnToString(actorProperty, actorProperty.getRGBTransferFunction, numIComps);
208
-
229
+ const numIComps = 1;
230
+ const cfunToString = computeFnToString(actorProperty, actorProperty.getRGBTransferFunction, numIComps);
209
231
  if (model.colorTextureString !== cfunToString) {
210
232
  model.numRows = numIComps;
211
- var colorArray = new Uint8Array(model.numRows * 2 * model.rowLength * 4);
212
- var cfun = actorProperty.getRGBTransferFunction();
213
-
233
+ const colorArray = new Uint8Array(model.numRows * 2 * model.rowLength * 4);
234
+ let cfun = actorProperty.getRGBTransferFunction();
214
235
  if (cfun) {
215
- var tmpTable = new Float32Array(model.rowLength * 3);
216
-
217
- for (var c = 0; c < numIComps; c++) {
236
+ const tmpTable = new Float32Array(model.rowLength * 3);
237
+ for (let c = 0; c < numIComps; c++) {
218
238
  cfun = actorProperty.getRGBTransferFunction(c);
219
- var cRange = cfun.getRange();
239
+ const cRange = cfun.getRange();
220
240
  cfun.getTable(cRange[0], cRange[1], model.rowLength, tmpTable, 1);
221
-
222
241
  {
223
- for (var _i = 0; _i < model.rowLength; _i++) {
224
- var _idx = c * model.rowLength * 8 + _i * 4;
225
-
226
- colorArray[_idx] = 255.0 * tmpTable[_i * 3];
227
- colorArray[_idx + 1] = 255.0 * tmpTable[_i * 3 + 1];
228
- colorArray[_idx + 2] = 255.0 * tmpTable[_i * 3 + 2];
229
- colorArray[_idx + 3] = 255.0;
230
-
231
- for (var _j = 0; _j < 4; _j++) {
232
- colorArray[_idx + model.rowLength * 4 + _j] = colorArray[_idx + _j];
242
+ for (let i = 0; i < model.rowLength; i++) {
243
+ const idx = c * model.rowLength * 8 + i * 4;
244
+ colorArray[idx] = 255.0 * tmpTable[i * 3];
245
+ colorArray[idx + 1] = 255.0 * tmpTable[i * 3 + 1];
246
+ colorArray[idx + 2] = 255.0 * tmpTable[i * 3 + 2];
247
+ colorArray[idx + 3] = 255.0;
248
+ for (let j = 0; j < 4; j++) {
249
+ colorArray[idx + model.rowLength * 4 + j] = colorArray[idx + j];
233
250
  }
234
251
  }
235
252
  }
236
253
  }
237
254
  } else {
238
- for (var _i2 = 0; _i2 < model.rowLength; ++_i2) {
239
- var grey = 255.0 * _i2 / (model.rowLength - 1);
240
- colorArray[_i2 * 4] = grey;
241
- colorArray[_i2 * 4 + 1] = grey;
242
- colorArray[_i2 * 4 + 2] = grey;
243
- colorArray[_i2 * 4 + 3] = 255.0;
244
-
245
- for (var _j2 = 0; _j2 < 4; _j2++) {
246
- colorArray[_i2 * 4 + model.rowLength * 4 + _j2] = colorArray[_i2 * 4 + _j2];
255
+ for (let i = 0; i < model.rowLength; ++i) {
256
+ const grey = 255.0 * i / (model.rowLength - 1);
257
+ colorArray[i * 4] = grey;
258
+ colorArray[i * 4 + 1] = grey;
259
+ colorArray[i * 4 + 2] = grey;
260
+ colorArray[i * 4 + 3] = 255.0;
261
+ for (let j = 0; j < 4; j++) {
262
+ colorArray[i * 4 + model.rowLength * 4 + j] = colorArray[i * 4 + j];
247
263
  }
248
264
  }
249
265
  }
250
-
251
266
  {
252
- var treq = {
267
+ const treq = {
253
268
  nativeArray: colorArray,
254
269
  width: model.rowLength,
255
270
  height: model.numRows * 2,
256
271
  depth: 1,
257
272
  format: 'rgba8unorm'
258
273
  };
259
- var newTex = model.device.getTextureManager().getTexture(treq);
260
- var tview = newTex.createView('tfunTexture');
274
+ const newTex = model.device.getTextureManager().getTexture(treq);
275
+ const tview = newTex.createView('tfunTexture');
261
276
  model.textureViews[1] = tview;
262
277
  }
263
278
  model.colorTextureString = cfunToString;
264
279
  }
265
280
  };
266
-
267
- var superClassUpdateBuffers = publicAPI.updateBuffers;
268
-
269
- publicAPI.updateBuffers = function () {
281
+ const superClassUpdateBuffers = publicAPI.updateBuffers;
282
+ publicAPI.updateBuffers = () => {
270
283
  superClassUpdateBuffers();
271
- var newTex = model.device.getTextureManager().getTextureForImageData(model.currentInput);
272
- var tViews = model.textureViews;
273
-
284
+ const newTex = model.device.getTextureManager().getTextureForImageData(model.currentInput);
285
+ const tViews = model.textureViews;
274
286
  if (!tViews[0] || tViews[0].getTexture() !== newTex) {
275
- var tview = newTex.createView('imgTexture');
287
+ const tview = newTex.createView('imgTexture');
276
288
  tViews[0] = tview;
277
289
  }
278
-
279
290
  publicAPI.updateLUTImage();
280
- publicAPI.updateUBO(); // set interpolation on the texture based on property setting
281
-
282
- var actorProperty = model.WebGPUImageSlice.getRenderable().getProperty();
283
- var iType = actorProperty.getInterpolationType() === InterpolationType.NEAREST ? 'nearest' : 'linear';
291
+ publicAPI.updateUBO();
284
292
 
293
+ // set interpolation on the texture based on property setting
294
+ const actorProperty = model.WebGPUImageSlice.getRenderable().getProperty();
295
+ const iType = actorProperty.getInterpolationType() === InterpolationType.NEAREST ? 'nearest' : 'linear';
285
296
  if (!model.clampSampler || iType !== model.clampSampler.getOptions().minFilter) {
286
297
  model.clampSampler = vtkWebGPUSampler.newInstance({
287
298
  label: 'clampSampler'
@@ -293,68 +304,60 @@ function vtkWebGPUImageMapper(publicAPI, model) {
293
304
  model.additionalBindables = [model.clampSampler];
294
305
  }
295
306
  };
296
-
297
- var sr = publicAPI.getShaderReplacements();
298
-
299
- publicAPI.replaceShaderPosition = function (hash, pipeline, vertexInput) {
300
- var vDesc = pipeline.getShaderDescription('vertex');
307
+ const sr = publicAPI.getShaderReplacements();
308
+ publicAPI.replaceShaderPosition = (hash, pipeline, vertexInput) => {
309
+ const vDesc = pipeline.getShaderDescription('vertex');
301
310
  vDesc.addBuiltinOutput('vec4<f32>', '@builtin(position) Position');
302
- var code = vDesc.getCode();
303
- var lines = ['var pos: vec4<f32> = mapperUBO.Origin +', ' (vertexBC.x * 0.5 + 0.5) * mapperUBO.Axis1 + (vertexBC.y * 0.5 + 0.5) * mapperUBO.Axis2;', 'pos.w = 1.0;'];
304
-
311
+ let code = vDesc.getCode();
312
+ const lines = ['var pos: vec4<f32> = mapperUBO.Origin +', ' (vertexBC.x * 0.5 + 0.5) * mapperUBO.Axis1 + (vertexBC.y * 0.5 + 0.5) * mapperUBO.Axis2;', 'pos.w = 1.0;'];
305
313
  if (model.dimensions === 2) {
306
314
  lines.push('var tcoord : vec2<f32> = (mapperUBO.SCTCMatrix * pos).xy;');
307
315
  } else {
308
316
  lines.push('var tcoord : vec3<f32> = (mapperUBO.SCTCMatrix * pos).xyz;');
309
317
  }
310
-
311
318
  lines.push('output.tcoordVS = tcoord;', 'output.Position = rendererUBO.SCPCMatrix * pos;');
312
319
  code = vtkWebGPUShaderCache.substitute(code, '//VTK::Position::Impl', lines).result;
313
320
  vDesc.setCode(code);
314
321
  };
315
-
316
322
  sr.set('replaceShaderPosition', publicAPI.replaceShaderPosition);
317
-
318
- publicAPI.replaceShaderTCoord = function (hash, pipeline, vertexInput) {
319
- var vDesc = pipeline.getShaderDescription('vertex');
320
-
323
+ publicAPI.replaceShaderTCoord = (hash, pipeline, vertexInput) => {
324
+ const vDesc = pipeline.getShaderDescription('vertex');
321
325
  if (model.dimensions === 2) {
322
326
  vDesc.addOutput('vec2<f32>', 'tcoordVS');
323
327
  } else {
324
328
  vDesc.addOutput('vec3<f32>', 'tcoordVS');
325
329
  }
326
330
  };
327
-
328
331
  sr.set('replaceShaderTCoord', publicAPI.replaceShaderTCoord);
329
-
330
- publicAPI.replaceShaderImage = function (hash, pipeline, vertexInput) {
331
- var fDesc = pipeline.getShaderDescription('fragment');
332
- var code = fDesc.getCode();
333
-
332
+ publicAPI.replaceShaderImage = (hash, pipeline, vertexInput) => {
333
+ const fDesc = pipeline.getShaderDescription('fragment');
334
+ let code = fDesc.getCode();
334
335
  if (model.dimensions === 3) {
335
- code = vtkWebGPUShaderCache.substitute(code, '//VTK::Image::Sample', [" var computedColor: vec4<f32> =", " textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);", "//VTK::Image::Sample"]).result;
336
+ code = vtkWebGPUShaderCache.substitute(code, '//VTK::Image::Sample', [` var computedColor: vec4<f32> =`, ` textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);`, `//VTK::Image::Sample`]).result;
336
337
  } else {
337
- code = vtkWebGPUShaderCache.substitute(code, '//VTK::Image::Sample', [" var computedColor: vec4<f32> =", " textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);", "//VTK::Image::Sample"]).result;
338
+ code = vtkWebGPUShaderCache.substitute(code, '//VTK::Image::Sample', [` var computedColor: vec4<f32> =`, ` textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);`, `//VTK::Image::Sample`]).result;
338
339
  }
339
-
340
- code = vtkWebGPUShaderCache.substitute(code, '//VTK::Image::Sample', [" var coord: vec2<f32> =", " vec2<f32>(computedColor.r * mapperUBO.cScale.r + mapperUBO.cShift.r, 0.5);", " computedColor = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);"]).result;
340
+ code = vtkWebGPUShaderCache.substitute(code, '//VTK::Image::Sample', [` var coord: vec2<f32> =`, ` vec2<f32>(computedColor.r * mapperUBO.cScale.r + mapperUBO.cShift.r, 0.5);`, ` computedColor = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);`]).result;
341
341
  fDesc.setCode(code);
342
342
  };
343
-
344
343
  sr.set('replaceShaderImage', publicAPI.replaceShaderImage);
345
- } // ----------------------------------------------------------------------------
344
+ }
345
+
346
+ // ----------------------------------------------------------------------------
346
347
  // Object factory
347
348
  // ----------------------------------------------------------------------------
348
349
 
349
-
350
- var DEFAULT_VALUES = {
350
+ const DEFAULT_VALUES = {
351
351
  rowLength: 1024
352
- }; // ----------------------------------------------------------------------------
352
+ };
353
+
354
+ // ----------------------------------------------------------------------------
353
355
 
354
356
  function extend(publicAPI, model) {
355
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
356
- Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance
357
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
358
+ Object.assign(model, DEFAULT_VALUES, initialValues);
357
359
 
360
+ // Inheritance
358
361
  vtkWebGPUFullScreenQuad.extend(publicAPI, model, initialValues);
359
362
  publicAPI.setFragmentShaderTemplate(imgFragTemplate);
360
363
  model.UBO = vtkWebGPUUniformBuffer.newInstance({
@@ -373,18 +376,24 @@ function extend(publicAPI, model) {
373
376
  model.imagemat = mat4.identity(new Float64Array(16));
374
377
  model.imagematinv = mat4.identity(new Float64Array(16));
375
378
  model.VBOBuildTime = {};
376
- obj(model.VBOBuildTime); // Object methods
379
+ obj(model.VBOBuildTime);
377
380
 
381
+ // Object methods
378
382
  vtkWebGPUImageMapper(publicAPI, model);
379
- } // ----------------------------------------------------------------------------
383
+ }
384
+
385
+ // ----------------------------------------------------------------------------
380
386
 
381
- var newInstance = newInstance$1(extend, 'vtkWebGPUImageMapper'); // ----------------------------------------------------------------------------
387
+ const newInstance = newInstance$1(extend, 'vtkWebGPUImageMapper');
388
+
389
+ // ----------------------------------------------------------------------------
382
390
 
383
391
  var index = {
384
- newInstance: newInstance,
385
- extend: extend
386
- }; // Register ourself to WebGPU backend if imported
392
+ newInstance,
393
+ extend
394
+ };
387
395
 
396
+ // Register ourself to WebGPU backend if imported
388
397
  registerOverride('vtkImageMapper', newInstance);
389
398
 
390
399
  export { index as default, extend, newInstance };