@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,24 +1,26 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
  import vtkWebGPURenderEncoder from './RenderEncoder.js';
3
3
  import vtkWebGPUTexture from './Texture.js';
4
4
  import vtkRenderPass from '../SceneGraph/RenderPass.js';
5
5
 
6
+ // ----------------------------------------------------------------------------
7
+
6
8
  function vtkWebGPUOpaquePass(publicAPI, model) {
7
9
  // Set our className
8
- model.classHierarchy.push('vtkWebGPUOpaquePass'); // this pass implements a forward rendering pipeline
10
+ model.classHierarchy.push('vtkWebGPUOpaquePass');
11
+
12
+ // this pass implements a forward rendering pipeline
9
13
  // if both volumes and opaque geometry are present
10
14
  // it will mix the two together by capturing a zbuffer
11
15
  // first
12
-
13
- publicAPI.traverse = function (renNode, viewNode) {
16
+ publicAPI.traverse = (renNode, viewNode) => {
14
17
  if (model.deleted) {
15
18
  return;
16
- } // we just render our delegates in order
17
-
19
+ }
18
20
 
21
+ // we just render our delegates in order
19
22
  model._currentParent = viewNode;
20
- var device = viewNode.getDevice();
21
-
23
+ const device = viewNode.getDevice();
22
24
  if (!model.renderEncoder) {
23
25
  publicAPI.createRenderEncoder();
24
26
  model.colorTexture = vtkWebGPUTexture.newInstance({
@@ -28,13 +30,11 @@ function vtkWebGPUOpaquePass(publicAPI, model) {
28
30
  width: viewNode.getCanvas().width,
29
31
  height: viewNode.getCanvas().height,
30
32
  format: 'rgba16float',
31
-
32
33
  /* eslint-disable no-undef */
33
-
34
34
  /* eslint-disable no-bitwise */
35
35
  usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC
36
36
  });
37
- var ctView = model.colorTexture.createView('opaquePassColorTexture');
37
+ const ctView = model.colorTexture.createView('opaquePassColorTexture');
38
38
  model.renderEncoder.setColorTextureView(0, ctView);
39
39
  model.depthFormat = 'depth32float';
40
40
  model.depthTexture = vtkWebGPUTexture.newInstance({
@@ -46,60 +46,61 @@ function vtkWebGPUOpaquePass(publicAPI, model) {
46
46
  format: model.depthFormat,
47
47
  usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC
48
48
  });
49
- var dView = model.depthTexture.createView('opaquePassDepthTexture');
49
+ const dView = model.depthTexture.createView('opaquePassDepthTexture');
50
50
  model.renderEncoder.setDepthTextureView(dView);
51
51
  } else {
52
52
  model.colorTexture.resize(viewNode.getCanvas().width, viewNode.getCanvas().height);
53
53
  model.depthTexture.resize(viewNode.getCanvas().width, viewNode.getCanvas().height);
54
54
  }
55
-
56
55
  model.renderEncoder.attachTextureViews();
57
56
  publicAPI.setCurrentOperation('opaquePass');
58
57
  renNode.setRenderEncoder(model.renderEncoder);
59
58
  renNode.traverse(publicAPI);
60
59
  };
61
-
62
- publicAPI.getColorTextureView = function () {
63
- return model.renderEncoder.getColorTextureViews()[0];
64
- };
65
-
66
- publicAPI.getDepthTextureView = function () {
67
- return model.renderEncoder.getDepthTextureView();
68
- };
69
-
70
- publicAPI.createRenderEncoder = function () {
60
+ publicAPI.getColorTextureView = () => model.renderEncoder.getColorTextureViews()[0];
61
+ publicAPI.getDepthTextureView = () => model.renderEncoder.getDepthTextureView();
62
+ publicAPI.createRenderEncoder = () => {
71
63
  model.renderEncoder = vtkWebGPURenderEncoder.newInstance({
72
64
  label: 'OpaquePass'
73
- }); // default settings are fine for this
74
-
65
+ });
66
+ // default settings are fine for this
75
67
  model.renderEncoder.setPipelineHash('op');
76
68
  };
77
- } // ----------------------------------------------------------------------------
69
+ }
70
+
71
+ // ----------------------------------------------------------------------------
78
72
  // Object factory
79
73
  // ----------------------------------------------------------------------------
80
74
 
81
-
82
- var DEFAULT_VALUES = {
75
+ const DEFAULT_VALUES = {
83
76
  renderEncoder: null,
84
77
  colorTexture: null,
85
78
  depthTexture: null
86
- }; // ----------------------------------------------------------------------------
79
+ };
80
+
81
+ // ----------------------------------------------------------------------------
87
82
 
88
83
  function extend(publicAPI, model) {
89
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
90
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
84
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
85
+ Object.assign(model, DEFAULT_VALUES, initialValues);
91
86
 
87
+ // Build VTK API
92
88
  vtkRenderPass.extend(publicAPI, model, initialValues);
93
- macro.get(publicAPI, model, ['colorTexture', 'depthTexture']); // Object methods
89
+ macro.get(publicAPI, model, ['colorTexture', 'depthTexture']);
94
90
 
91
+ // Object methods
95
92
  vtkWebGPUOpaquePass(publicAPI, model);
96
- } // ----------------------------------------------------------------------------
93
+ }
94
+
95
+ // ----------------------------------------------------------------------------
96
+
97
+ const newInstance = macro.newInstance(extend, 'vtkWebGPUOpaquePass');
97
98
 
98
- var newInstance = macro.newInstance(extend, 'vtkWebGPUOpaquePass'); // ----------------------------------------------------------------------------
99
+ // ----------------------------------------------------------------------------
99
100
 
100
101
  var vtkWebGPUOpaquePass$1 = {
101
- newInstance: newInstance,
102
- extend: extend
102
+ newInstance,
103
+ extend
103
104
  };
104
105
 
105
106
  export { vtkWebGPUOpaquePass$1 as default, extend, newInstance };
@@ -1,28 +1,56 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
  import vtkWebGPUTexture from './Texture.js';
3
3
  import vtkWebGPURenderEncoder from './RenderEncoder.js';
4
4
  import vtkWebGPUShaderCache from './ShaderCache.js';
5
5
  import vtkRenderPass from '../SceneGraph/RenderPass.js';
6
6
  import vtkWebGPUFullScreenQuad from './FullScreenQuad.js';
7
7
 
8
- var oitpFragTemplate = "\n//VTK::Mapper::Dec\n\n//VTK::TCoord::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 var tcoord: vec2<i32> = vec2<i32>(i32(input.fragPos.x), i32(input.fragPos.y));\n var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;\n if (reveal == 1.0) { discard; }\n var tcolor: vec4<f32> = textureLoad(oitpColorTexture, tcoord, 0);\n var total: f32 = max(tcolor.a, 0.01);\n var computedColor: vec4<f32> = vec4<f32>(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";
8
+ // ----------------------------------------------------------------------------
9
+
10
+ const oitpFragTemplate = `
11
+ //VTK::Mapper::Dec
12
+
13
+ //VTK::TCoord::Dec
14
+
15
+ //VTK::RenderEncoder::Dec
9
16
 
17
+ //VTK::IOStructs::Dec
18
+
19
+ @fragment
20
+ fn main(
21
+ //VTK::IOStructs::Input
22
+ )
23
+ //VTK::IOStructs::Output
24
+ {
25
+ var output: fragmentOutput;
26
+
27
+ var tcoord: vec2<i32> = vec2<i32>(i32(input.fragPos.x), i32(input.fragPos.y));
28
+ var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;
29
+ if (reveal == 1.0) { discard; }
30
+ var tcolor: vec4<f32> = textureLoad(oitpColorTexture, tcoord, 0);
31
+ var total: f32 = max(tcolor.a, 0.01);
32
+ var computedColor: vec4<f32> = vec4<f32>(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);
33
+
34
+ //VTK::RenderEncoder::Impl
35
+ return output;
36
+ }
37
+ `;
10
38
  function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
11
39
  // Set our className
12
- model.classHierarchy.push('vtkWebGPUOrderIndependentTranslucentPass'); // this pass implements a forward rendering pipeline
40
+ model.classHierarchy.push('vtkWebGPUOrderIndependentTranslucentPass');
41
+
42
+ // this pass implements a forward rendering pipeline
13
43
  // if both volumes and opaque geometry are present
14
44
  // it will mix the two together by capturing a zbuffer
15
45
  // first
16
-
17
- publicAPI.traverse = function (renNode, viewNode) {
46
+ publicAPI.traverse = (renNode, viewNode) => {
18
47
  if (model.deleted) {
19
48
  return;
20
- } // we just render our delegates in order
21
-
49
+ }
22
50
 
51
+ // we just render our delegates in order
23
52
  model._currentParent = viewNode;
24
- var device = viewNode.getDevice();
25
-
53
+ const device = viewNode.getDevice();
26
54
  if (!model.translucentRenderEncoder) {
27
55
  publicAPI.createRenderEncoder();
28
56
  publicAPI.createFinalEncoder();
@@ -33,13 +61,11 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
33
61
  width: viewNode.getCanvas().width,
34
62
  height: viewNode.getCanvas().height,
35
63
  format: 'rgba16float',
36
-
37
64
  /* eslint-disable no-undef */
38
-
39
65
  /* eslint-disable no-bitwise */
40
66
  usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING
41
67
  });
42
- var v1 = model.translucentColorTexture.createView('oitpColorTexture');
68
+ const v1 = model.translucentColorTexture.createView('oitpColorTexture');
43
69
  model.translucentRenderEncoder.setColorTextureView(0, v1);
44
70
  model.translucentAccumulateTexture = vtkWebGPUTexture.newInstance({
45
71
  label: 'translucentPassAccumulate'
@@ -48,13 +74,11 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
48
74
  width: viewNode.getCanvas().width,
49
75
  height: viewNode.getCanvas().height,
50
76
  format: 'r16float',
51
-
52
77
  /* eslint-disable no-undef */
53
-
54
78
  /* eslint-disable no-bitwise */
55
79
  usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING
56
80
  });
57
- var v2 = model.translucentAccumulateTexture.createView('oitpAccumTexture');
81
+ const v2 = model.translucentAccumulateTexture.createView('oitpAccumTexture');
58
82
  model.translucentRenderEncoder.setColorTextureView(1, v2);
59
83
  model.fullScreenQuad = vtkWebGPUFullScreenQuad.newInstance();
60
84
  model.fullScreenQuad.setDevice(viewNode.getDevice());
@@ -65,7 +89,6 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
65
89
  model.translucentColorTexture.resizeToMatch(model.colorTextureView.getTexture());
66
90
  model.translucentAccumulateTexture.resizeToMatch(model.colorTextureView.getTexture());
67
91
  }
68
-
69
92
  model.translucentRenderEncoder.setDepthTextureView(model.depthTextureView);
70
93
  model.translucentRenderEncoder.attachTextureViews();
71
94
  publicAPI.setCurrentOperation('translucentPass');
@@ -73,8 +96,7 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
73
96
  renNode.traverse(publicAPI);
74
97
  publicAPI.finalPass(viewNode, renNode);
75
98
  };
76
-
77
- publicAPI.finalPass = function (viewNode, renNode) {
99
+ publicAPI.finalPass = (viewNode, renNode) => {
78
100
  model.translucentFinalEncoder.setColorTextureView(0, model.colorTextureView);
79
101
  model.translucentFinalEncoder.attachTextureViews();
80
102
  model.translucentFinalEncoder.begin(viewNode.getCommandEncoder());
@@ -82,16 +104,12 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
82
104
  model.fullScreenQuad.prepareAndDraw(model.translucentFinalEncoder);
83
105
  model.translucentFinalEncoder.end();
84
106
  };
85
-
86
- publicAPI.getTextures = function () {
87
- return [model.translucentColorTexture, model.translucentAccumulateTexture];
88
- };
89
-
90
- publicAPI.createRenderEncoder = function () {
107
+ publicAPI.getTextures = () => [model.translucentColorTexture, model.translucentAccumulateTexture];
108
+ publicAPI.createRenderEncoder = () => {
91
109
  model.translucentRenderEncoder = vtkWebGPURenderEncoder.newInstance({
92
110
  label: 'translucentRender'
93
111
  });
94
- var rDesc = model.translucentRenderEncoder.getDescription();
112
+ const rDesc = model.translucentRenderEncoder.getDescription();
95
113
  rDesc.colorAttachments = [{
96
114
  view: undefined,
97
115
  clearValue: [0.0, 0.0, 0.0, 0.0],
@@ -108,13 +126,14 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
108
126
  depthLoadOp: 'load',
109
127
  depthStoreOp: 'store'
110
128
  };
111
- model.translucentRenderEncoder.setReplaceShaderCodeFunction(function (pipeline) {
112
- var fDesc = pipeline.getShaderDescription('fragment');
129
+ model.translucentRenderEncoder.setReplaceShaderCodeFunction(pipeline => {
130
+ const fDesc = pipeline.getShaderDescription('fragment');
113
131
  fDesc.addOutput('vec4<f32>', 'outColor');
114
132
  fDesc.addOutput('f32', 'outAccum');
115
133
  fDesc.addBuiltinInput('vec4<f32>', '@builtin(position) fragPos');
116
- var code = fDesc.getCode();
117
- code = vtkWebGPUShaderCache.substitute(code, '//VTK::RenderEncoder::Impl', [// very simple depth weighting in w z ranges from 1.0 near to 0.0
134
+ let code = fDesc.getCode();
135
+ code = vtkWebGPUShaderCache.substitute(code, '//VTK::RenderEncoder::Impl', [
136
+ // very simple depth weighting in w z ranges from 1.0 near to 0.0
118
137
  'var w: f32 = computedColor.a * pow(0.1 + input.fragPos.z, 2.0);', 'output.outColor = vec4<f32>(computedColor.rgb*w, w);', 'output.outAccum = computedColor.a;']).result;
119
138
  fDesc.setCode(code);
120
139
  });
@@ -157,8 +176,7 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
157
176
  }
158
177
  });
159
178
  };
160
-
161
- publicAPI.createFinalEncoder = function () {
179
+ publicAPI.createFinalEncoder = () => {
162
180
  model.translucentFinalEncoder = vtkWebGPURenderEncoder.newInstance({
163
181
  label: 'translucentFinal'
164
182
  });
@@ -169,11 +187,11 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
169
187
  storeOp: 'store'
170
188
  }]
171
189
  });
172
- model.translucentFinalEncoder.setReplaceShaderCodeFunction(function (pipeline) {
173
- var fDesc = pipeline.getShaderDescription('fragment');
190
+ model.translucentFinalEncoder.setReplaceShaderCodeFunction(pipeline => {
191
+ const fDesc = pipeline.getShaderDescription('fragment');
174
192
  fDesc.addOutput('vec4<f32>', 'outColor');
175
193
  fDesc.addBuiltinInput('vec4<f32>', '@builtin(position) fragPos');
176
- var code = fDesc.getCode();
194
+ let code = fDesc.getCode();
177
195
  code = vtkWebGPUShaderCache.substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor = vec4<f32>(computedColor.rgb, computedColor.a);']).result;
178
196
  fDesc.setCode(code);
179
197
  });
@@ -199,31 +217,40 @@ function vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model) {
199
217
  }
200
218
  });
201
219
  };
202
- } // ----------------------------------------------------------------------------
220
+ }
221
+
222
+ // ----------------------------------------------------------------------------
203
223
  // Object factory
204
224
  // ----------------------------------------------------------------------------
205
225
 
206
-
207
- var DEFAULT_VALUES = {
226
+ const DEFAULT_VALUES = {
208
227
  colorTextureView: null,
209
228
  depthTextureView: null
210
- }; // ----------------------------------------------------------------------------
229
+ };
230
+
231
+ // ----------------------------------------------------------------------------
211
232
 
212
233
  function extend(publicAPI, model) {
213
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
214
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
234
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
235
+ Object.assign(model, DEFAULT_VALUES, initialValues);
215
236
 
237
+ // Build VTK API
216
238
  vtkRenderPass.extend(publicAPI, model, initialValues);
217
- macro.setGet(publicAPI, model, ['colorTextureView', 'depthTextureView']); // Object methods
239
+ macro.setGet(publicAPI, model, ['colorTextureView', 'depthTextureView']);
218
240
 
241
+ // Object methods
219
242
  vtkWebGPUOrderIndependentTranslucentPass(publicAPI, model);
220
- } // ----------------------------------------------------------------------------
243
+ }
221
244
 
222
- var newInstance = macro.newInstance(extend, 'vtkWebGPUOrderIndependentTranslucentPass'); // ----------------------------------------------------------------------------
245
+ // ----------------------------------------------------------------------------
246
+
247
+ const newInstance = macro.newInstance(extend, 'vtkWebGPUOrderIndependentTranslucentPass');
248
+
249
+ // ----------------------------------------------------------------------------
223
250
 
224
251
  var vtkWebGPUOrderIndepenentTranslucentPass = {
225
- newInstance: newInstance,
226
- extend: extend
252
+ newInstance,
253
+ extend
227
254
  };
228
255
 
229
256
  export { vtkWebGPUOrderIndepenentTranslucentPass as default, extend, newInstance };
@@ -1,94 +1,75 @@
1
- import { newInstance as newInstance$1, obj, get, setGet } from '../../macros.js';
1
+ import { n as newInstance$1, o as obj, g as get, e as setGet } from '../../macros2.js';
2
2
 
3
+ // ----------------------------------------------------------------------------
3
4
  // vtkWebGPUPipeline methods
4
5
  // ----------------------------------------------------------------------------
5
-
6
6
  function vtkWebGPUPipeline(publicAPI, model) {
7
7
  // Set our className
8
8
  model.classHierarchy.push('vtkWebGPUPipeline');
9
-
10
- publicAPI.getShaderDescriptions = function () {
11
- return model.shaderDescriptions;
12
- };
13
-
14
- publicAPI.initialize = function (device, hash) {
9
+ publicAPI.getShaderDescriptions = () => model.shaderDescriptions;
10
+ publicAPI.initialize = (device, hash) => {
15
11
  // start with the renderencoder settings
16
12
  model.pipelineDescription = model.renderEncoder.getPipelineSettings();
17
13
  model.pipelineDescription.primitive.topology = model.topology;
18
14
  model.pipelineDescription.vertex = model.vertexState;
19
- model.pipelineDescription.label = hash; // add in bind group layouts
20
-
21
- var bindGroupLayouts = [];
15
+ model.pipelineDescription.label = hash;
22
16
 
23
- for (var i = 0; i < model.layouts.length; i++) {
17
+ // add in bind group layouts
18
+ const bindGroupLayouts = [];
19
+ for (let i = 0; i < model.layouts.length; i++) {
24
20
  bindGroupLayouts.push(model.layouts[i].layout);
25
21
  }
26
-
27
22
  model.pipelineLayout = device.getHandle().createPipelineLayout({
28
- bindGroupLayouts: bindGroupLayouts
23
+ bindGroupLayouts
29
24
  });
30
25
  model.pipelineDescription.layout = model.pipelineLayout;
31
-
32
- for (var _i = 0; _i < model.shaderDescriptions.length; _i++) {
33
- var sd = model.shaderDescriptions[_i];
34
- var sm = device.getShaderModule(sd);
35
-
26
+ for (let i = 0; i < model.shaderDescriptions.length; i++) {
27
+ const sd = model.shaderDescriptions[i];
28
+ const sm = device.getShaderModule(sd);
36
29
  if (sd.getType() === 'vertex') {
37
30
  model.pipelineDescription.vertex.module = sm.getHandle();
38
31
  model.pipelineDescription.vertex.entryPoint = 'main';
39
32
  }
40
-
41
33
  if (sd.getType() === 'fragment') {
42
34
  model.pipelineDescription.fragment.module = sm.getHandle();
43
35
  model.pipelineDescription.fragment.entryPoint = 'main';
44
36
  }
45
37
  }
46
-
47
38
  model.handle = device.getHandle().createRenderPipeline(model.pipelineDescription);
48
39
  };
49
-
50
- publicAPI.getShaderDescription = function (stype) {
51
- for (var i = 0; i < model.shaderDescriptions.length; i++) {
40
+ publicAPI.getShaderDescription = stype => {
41
+ for (let i = 0; i < model.shaderDescriptions.length; i++) {
52
42
  if (model.shaderDescriptions[i].getType() === stype) return model.shaderDescriptions[i];
53
43
  }
54
-
55
44
  return null;
56
45
  };
57
-
58
- publicAPI.addBindGroupLayout = function (bindGroup) {
46
+ publicAPI.addBindGroupLayout = bindGroup => {
59
47
  if (!bindGroup) {
60
48
  return;
61
49
  }
62
-
63
50
  model.layouts.push({
64
51
  layout: bindGroup.getBindGroupLayout(model.device),
65
52
  label: bindGroup.getLabel()
66
53
  });
67
54
  };
68
-
69
- publicAPI.getBindGroupLayout = function (idx) {
70
- return model.layouts[idx].layout;
71
- };
72
-
73
- publicAPI.getBindGroupLayoutCount = function (llabel) {
74
- for (var i = 0; i < model.layouts.length; i++) {
55
+ publicAPI.getBindGroupLayout = idx => model.layouts[idx].layout;
56
+ publicAPI.getBindGroupLayoutCount = llabel => {
57
+ for (let i = 0; i < model.layouts.length; i++) {
75
58
  if (model.layouts[i].label === llabel) {
76
59
  return i;
77
60
  }
78
61
  }
79
-
80
62
  return 0;
81
63
  };
82
-
83
- publicAPI.bindVertexInput = function (renderEncoder, vInput) {
64
+ publicAPI.bindVertexInput = (renderEncoder, vInput) => {
84
65
  vInput.bindBuffers(renderEncoder);
85
66
  };
86
- } // ----------------------------------------------------------------------------
67
+ }
68
+
69
+ // ----------------------------------------------------------------------------
87
70
  // Object factory
88
71
  // ----------------------------------------------------------------------------
89
-
90
-
91
- var DEFAULT_VALUES = {
72
+ const DEFAULT_VALUES = {
92
73
  handle: null,
93
74
  layouts: null,
94
75
  renderEncoder: null,
@@ -96,27 +77,32 @@ var DEFAULT_VALUES = {
96
77
  vertexState: null,
97
78
  topology: null,
98
79
  pipelineDescription: null
99
- }; // ----------------------------------------------------------------------------
80
+ };
100
81
 
82
+ // ----------------------------------------------------------------------------
101
83
  function extend(publicAPI, model) {
102
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
103
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
84
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
85
+ Object.assign(model, DEFAULT_VALUES, initialValues);
104
86
 
87
+ // Build VTK API
105
88
  obj(publicAPI, model);
106
89
  model.layouts = [];
107
90
  model.shaderDescriptions = [];
108
91
  get(publicAPI, model, ['handle', 'pipelineDescription']);
109
- setGet(publicAPI, model, ['device', 'renderEncoder', 'topology', 'vertexState']); // For more macro methods, see "Sources/macros.js"
110
- // Object specific methods
92
+ setGet(publicAPI, model, ['device', 'renderEncoder', 'topology', 'vertexState']);
111
93
 
94
+ // For more macro methods, see "Sources/macros.js"
95
+ // Object specific methods
112
96
  vtkWebGPUPipeline(publicAPI, model);
113
- } // ----------------------------------------------------------------------------
97
+ }
114
98
 
115
- var newInstance = newInstance$1(extend, 'vtkWebGPUPipeline'); // ----------------------------------------------------------------------------
99
+ // ----------------------------------------------------------------------------
100
+ const newInstance = newInstance$1(extend, 'vtkWebGPUPipeline');
116
101
 
102
+ // ----------------------------------------------------------------------------
117
103
  var vtkWebGPUPipeline$1 = {
118
- newInstance: newInstance,
119
- extend: extend
104
+ newInstance,
105
+ extend
120
106
  };
121
107
 
122
108
  export { vtkWebGPUPipeline$1 as default, extend, newInstance };
@@ -1,48 +1,56 @@
1
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
2
2
  import vtkViewNode from '../SceneGraph/ViewNode.js';
3
3
  import { registerOverride } from './ViewNodeFactory.js';
4
4
 
5
+ // ----------------------------------------------------------------------------
5
6
  // vtkWebGPUPixelSpaceCallbackMapper methods
6
7
  // ----------------------------------------------------------------------------
7
8
 
8
9
  function vtkWebGPUPixelSpaceCallbackMapper(publicAPI, model) {
9
10
  model.classHierarchy.push('vtkWebGPUPixelSpaceCallbackMapper');
10
-
11
- publicAPI.opaquePass = function (prepass, renderPass) {
11
+ publicAPI.opaquePass = (prepass, renderPass) => {
12
12
  model.WebGPURenderer = publicAPI.getFirstAncestorOfType('vtkWebGPURenderer');
13
13
  model.WebGPURenderWindow = model.WebGPURenderer.getParent();
14
- var aspectRatio = model.WebGPURenderer.getAspectRatio();
15
- var camera = model.WebGPURenderer ? model.WebGPURenderer.getRenderable().getActiveCamera() : null;
16
- var tsize = model.WebGPURenderer.getTiledSizeAndOrigin();
17
- var texels = null;
18
-
14
+ const aspectRatio = model.WebGPURenderer.getAspectRatio();
15
+ const camera = model.WebGPURenderer ? model.WebGPURenderer.getRenderable().getActiveCamera() : null;
16
+ const tsize = model.WebGPURenderer.getTiledSizeAndOrigin();
17
+ const texels = null;
19
18
  if (model.renderable.getUseZValues()) ;
20
-
21
19
  model.renderable.invokeCallback(model.renderable.getInputData(), camera, aspectRatio, tsize, texels);
22
20
  };
23
- } // ----------------------------------------------------------------------------
21
+ }
22
+
23
+ // ----------------------------------------------------------------------------
24
24
  // Object factory
25
25
  // ----------------------------------------------------------------------------
26
26
 
27
+ const DEFAULT_VALUES = {};
27
28
 
28
- var DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------
29
+ // ----------------------------------------------------------------------------
29
30
 
30
31
  function extend(publicAPI, model) {
31
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
32
- Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance
32
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
33
+ Object.assign(model, DEFAULT_VALUES, initialValues);
33
34
 
34
- vtkViewNode.extend(publicAPI, model, initialValues); // Object methods
35
+ // Inheritance
36
+ vtkViewNode.extend(publicAPI, model, initialValues);
35
37
 
38
+ // Object methods
36
39
  vtkWebGPUPixelSpaceCallbackMapper(publicAPI, model);
37
- } // ----------------------------------------------------------------------------
40
+ }
41
+
42
+ // ----------------------------------------------------------------------------
38
43
 
39
- var newInstance = macro.newInstance(extend, 'vtkWebGPUPixelSpaceCallbackMapper'); // ----------------------------------------------------------------------------
44
+ const newInstance = macro.newInstance(extend, 'vtkWebGPUPixelSpaceCallbackMapper');
45
+
46
+ // ----------------------------------------------------------------------------
40
47
 
41
48
  var index = {
42
- newInstance: newInstance,
43
- extend: extend
44
- }; // Register ourself to WebGPU backend if imported
49
+ newInstance,
50
+ extend
51
+ };
45
52
 
53
+ // Register ourself to WebGPU backend if imported
46
54
  registerOverride('vtkPixelSpaceCallbackMapper', newInstance);
47
55
 
48
56
  export { index as default, extend, newInstance };