@kitware/vtk.js 28.10.1 → 28.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/Common/Core/Base64.js +53 -82
  2. package/Common/Core/CellArray.js +52 -60
  3. package/Common/Core/ClassHierarchy.js +8 -36
  4. package/Common/Core/DataArray/Constants.js +6 -6
  5. package/Common/Core/DataArray.js +185 -270
  6. package/Common/Core/Endian.js +14 -17
  7. package/Common/Core/HalfFloat.js +17 -34
  8. package/Common/Core/ImageHelper.js +17 -25
  9. package/Common/Core/LookupTable.js +131 -144
  10. package/Common/Core/Math/Constants.js +8 -8
  11. package/Common/Core/Math/index.js +778 -903
  12. package/Common/Core/Math.d.ts +14 -0
  13. package/Common/Core/Math.js +2 -4
  14. package/Common/Core/MatrixBuilder.js +99 -151
  15. package/Common/Core/Points.js +43 -43
  16. package/Common/Core/PriorityQueue.js +30 -28
  17. package/Common/Core/ProgressHandler.js +31 -32
  18. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  19. package/Common/Core/ScalarsToColors.js +196 -253
  20. package/Common/Core/StringArray.js +48 -73
  21. package/Common/Core/URLExtract.js +10 -29
  22. package/Common/Core/VariantArray.js +48 -73
  23. package/Common/Core.js +11 -11
  24. package/Common/DataModel/AbstractPointLocator.js +19 -17
  25. package/Common/DataModel/BoundingBox.js +322 -490
  26. package/Common/DataModel/Box.js +46 -63
  27. package/Common/DataModel/CardinalSpline1D.js +92 -102
  28. package/Common/DataModel/Cell.js +41 -61
  29. package/Common/DataModel/CellLinks.js +91 -127
  30. package/Common/DataModel/CellTypes/Constants.js +7 -6
  31. package/Common/DataModel/CellTypes.js +55 -74
  32. package/Common/DataModel/Collection.js +45 -61
  33. package/Common/DataModel/Cone.js +28 -20
  34. package/Common/DataModel/Cylinder.js +41 -35
  35. package/Common/DataModel/DataSet/Constants.js +11 -5
  36. package/Common/DataModel/DataSet.js +37 -25
  37. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  38. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  39. package/Common/DataModel/DataSetAttributes.js +96 -138
  40. package/Common/DataModel/EdgeLocator.js +45 -70
  41. package/Common/DataModel/ITKHelper.js +67 -137
  42. package/Common/DataModel/ImageData.js +115 -172
  43. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  44. package/Common/DataModel/ImplicitBoolean.js +66 -96
  45. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  46. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  47. package/Common/DataModel/KochanekSpline1D.js +78 -81
  48. package/Common/DataModel/Line/Constants.js +2 -2
  49. package/Common/DataModel/Line.js +82 -105
  50. package/Common/DataModel/Locator.js +17 -10
  51. package/Common/DataModel/Molecule.js +26 -17
  52. package/Common/DataModel/PiecewiseFunction.js +218 -239
  53. package/Common/DataModel/Plane.js +90 -113
  54. package/Common/DataModel/PointSet.js +30 -26
  55. package/Common/DataModel/PolyData/Constants.js +2 -2
  56. package/Common/DataModel/PolyData.js +95 -120
  57. package/Common/DataModel/PolyLine.js +44 -61
  58. package/Common/DataModel/Polygon/Constants.js +4 -4
  59. package/Common/DataModel/Polygon.js +128 -169
  60. package/Common/DataModel/Quad/Constants.js +2 -2
  61. package/Common/DataModel/Quad.js +61 -100
  62. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  63. package/Common/DataModel/SelectionNode.js +25 -21
  64. package/Common/DataModel/Sphere.js +40 -35
  65. package/Common/DataModel/Spline1D/Constants.js +3 -2
  66. package/Common/DataModel/Spline1D.js +34 -18
  67. package/Common/DataModel/Spline3D/Constants.js +2 -2
  68. package/Common/DataModel/Spline3D.js +46 -41
  69. package/Common/DataModel/StructuredData/Constants.js +2 -2
  70. package/Common/DataModel/StructuredData.js +9 -20
  71. package/Common/DataModel/Triangle.js +207 -250
  72. package/Common/DataModel.js +19 -19
  73. package/Common/System/MobileVR.js +56 -61
  74. package/Common/System/TimerLog.js +1 -1
  75. package/Common/System.js +2 -2
  76. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  77. package/Common/Transform/LandmarkTransform.js +133 -117
  78. package/Common/Transform/Transform.js +42 -57
  79. package/Common/Transform.js +2 -2
  80. package/Common/index.js +4 -4
  81. package/Filters/Core/Cutter.js +134 -146
  82. package/Filters/Core/PolyDataNormals.js +44 -50
  83. package/Filters/Core.js +2 -2
  84. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  85. package/Filters/Cornerstone.js +1 -1
  86. package/Filters/General/AppendPolyData.js +84 -100
  87. package/Filters/General/Calculator.js +95 -163
  88. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  89. package/Filters/General/ClipClosedSurface.js +341 -416
  90. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  91. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  92. package/Filters/General/ContourTriangulator/helper.js +684 -812
  93. package/Filters/General/ContourTriangulator.js +92 -89
  94. package/Filters/General/ImageCropFilter.js +77 -78
  95. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  96. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  97. package/Filters/General/ImageMarchingCubes.js +99 -112
  98. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  99. package/Filters/General/ImageMarchingSquares.js +93 -118
  100. package/Filters/General/ImageOutlineFilter.js +53 -54
  101. package/Filters/General/ImageSliceFilter.js +39 -30
  102. package/Filters/General/ImageStreamline.js +107 -124
  103. package/Filters/General/LineFilter.js +26 -15
  104. package/Filters/General/MoleculeToRepresentation.js +136 -149
  105. package/Filters/General/OBBTree/OBBNode.js +36 -34
  106. package/Filters/General/OBBTree/helper.js +19 -24
  107. package/Filters/General/OBBTree.js +396 -488
  108. package/Filters/General/OutlineFilter.js +52 -34
  109. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  110. package/Filters/General/PaintFilter.js +150 -162
  111. package/Filters/General/ScalarToRGBA.js +38 -33
  112. package/Filters/General/TriangleFilter.js +65 -62
  113. package/Filters/General/TubeFilter/Constants.js +4 -4
  114. package/Filters/General/TubeFilter.js +376 -496
  115. package/Filters/General/WarpScalar.js +58 -60
  116. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  117. package/Filters/General.js +21 -21
  118. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  119. package/Filters/Sources/Arrow2DSource.js +56 -56
  120. package/Filters/Sources/ArrowSource.js +39 -29
  121. package/Filters/Sources/CircleSource.js +43 -43
  122. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  123. package/Filters/Sources/ConeSource.js +51 -42
  124. package/Filters/Sources/CubeSource.js +75 -96
  125. package/Filters/Sources/Cursor3D.js +94 -109
  126. package/Filters/Sources/CylinderSource.js +90 -90
  127. package/Filters/Sources/ImageGridSource.js +43 -43
  128. package/Filters/Sources/LineSource.js +49 -39
  129. package/Filters/Sources/PlaneSource.js +97 -104
  130. package/Filters/Sources/PointSource.js +46 -37
  131. package/Filters/Sources/RTAnalyticSource.js +50 -48
  132. package/Filters/Sources/SLICSource.js +63 -73
  133. package/Filters/Sources/SphereSource.js +88 -78
  134. package/Filters/Sources/ViewFinderSource.js +26 -23
  135. package/Filters/Sources.js +14 -14
  136. package/Filters/Texture/TextureMapToPlane.js +95 -97
  137. package/Filters/Texture/TextureMapToSphere.js +46 -54
  138. package/Filters/Texture.js +2 -2
  139. package/Filters/index.js +5 -5
  140. package/IO/Core/BinaryHelper.js +12 -18
  141. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  142. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  143. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  144. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  145. package/IO/Core/DataAccessHelper.js +6 -6
  146. package/IO/Core/HttpDataSetReader.js +136 -139
  147. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  148. package/IO/Core/HttpSceneLoader.js +130 -179
  149. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  150. package/IO/Core/ImageStream/ViewStream.js +100 -103
  151. package/IO/Core/ImageStream.js +62 -54
  152. package/IO/Core/ResourceLoader.js +10 -9
  153. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  154. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  155. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  156. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  157. package/IO/Core/Serializer.js +6 -13
  158. package/IO/Core/WSLinkClient.js +90 -76
  159. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  160. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  161. package/IO/Core.js +7 -7
  162. package/IO/Geometry/DracoReader.js +118 -121
  163. package/IO/Geometry/PLYReader.js +163 -223
  164. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  165. package/IO/Geometry/PLYWriter.js +139 -154
  166. package/IO/Geometry/STLReader.js +123 -146
  167. package/IO/Geometry/STLWriter/Constants.js +2 -2
  168. package/IO/Geometry/STLWriter.js +83 -82
  169. package/IO/Geometry.js +5 -5
  170. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  171. package/IO/Legacy/PolyDataReader.js +48 -36
  172. package/IO/Legacy.js +2 -2
  173. package/IO/Misc/ElevationReader.js +67 -60
  174. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  175. package/IO/Misc/ITKImageReader.js +58 -45
  176. package/IO/Misc/ITKPolyDataReader.js +50 -38
  177. package/IO/Misc/JSONNucleoReader.js +49 -42
  178. package/IO/Misc/JSONReader.js +38 -33
  179. package/IO/Misc/MTLReader.js +74 -119
  180. package/IO/Misc/OBJReader.js +153 -206
  181. package/IO/Misc/PDBReader.js +70 -68
  182. package/IO/Misc/SkyboxReader.js +77 -82
  183. package/IO/Misc.js +9 -9
  184. package/IO/XML/XMLImageDataReader.js +36 -38
  185. package/IO/XML/XMLImageDataWriter.js +28 -21
  186. package/IO/XML/XMLPolyDataReader.js +49 -46
  187. package/IO/XML/XMLPolyDataWriter.js +43 -42
  188. package/IO/XML/XMLReader.js +262 -304
  189. package/IO/XML/XMLWriter/Constants.js +3 -3
  190. package/IO/XML/XMLWriter.js +70 -84
  191. package/IO/XML.js +6 -6
  192. package/IO/index.js +5 -5
  193. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  194. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  195. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  196. package/Imaging/Core/ImageInterpolator.js +201 -252
  197. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  198. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  199. package/Imaging/Core/ImageReslice.js +327 -464
  200. package/Imaging/Core.js +4 -4
  201. package/Imaging/Hybrid/SampleFunction.js +58 -51
  202. package/Imaging/Hybrid.js +1 -1
  203. package/Imaging/index.js +2 -2
  204. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  205. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  206. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  207. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  208. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  209. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  210. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  211. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  212. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  213. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  214. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  215. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  216. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  217. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  218. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  219. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  221. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  222. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  223. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  224. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  225. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  226. package/Interaction/Manipulators.js +21 -21
  227. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  228. package/Interaction/Misc.js +1 -1
  229. package/Interaction/Style/InteractorStyleImage.js +101 -121
  230. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  231. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  232. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  233. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  234. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  235. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  236. package/Interaction/Style.js +5 -5
  237. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  238. package/Interaction/UI/CornerAnnotation.js +65 -48
  239. package/Interaction/UI/FPSMonitor.js +104 -105
  240. package/Interaction/UI/Icons.js +1 -1
  241. package/Interaction/UI/Slider/Constants.js +2 -2
  242. package/Interaction/UI/Slider.js +78 -95
  243. package/Interaction/UI/VolumeController.js +104 -97
  244. package/Interaction/UI.js +5 -5
  245. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  246. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  247. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  248. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  249. package/Interaction/Widgets.js +2 -2
  250. package/Interaction/index.js +5 -5
  251. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  252. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  253. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  254. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  255. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  256. package/Proxy/Core/LookupTableProxy.js +49 -52
  257. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  258. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  259. package/Proxy/Core/ProxyManager/core.js +83 -106
  260. package/Proxy/Core/ProxyManager/properties.js +53 -76
  261. package/Proxy/Core/ProxyManager/state.js +100 -110
  262. package/Proxy/Core/ProxyManager/view.js +45 -55
  263. package/Proxy/Core/ProxyManager.js +16 -8
  264. package/Proxy/Core/SourceProxy.js +41 -38
  265. package/Proxy/Core/View2DProxy.js +143 -199
  266. package/Proxy/Core/ViewProxy.js +223 -269
  267. package/Proxy/Core.js +7 -7
  268. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  269. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  270. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  271. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  272. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  273. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  274. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  275. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  276. package/Proxy/Representations.js +7 -7
  277. package/Proxy/index.js +2 -2
  278. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  279. package/Rendering/Core/AbstractImageMapper.js +18 -19
  280. package/Rendering/Core/AbstractMapper.js +39 -55
  281. package/Rendering/Core/AbstractMapper3D.js +26 -31
  282. package/Rendering/Core/AbstractPicker.js +25 -21
  283. package/Rendering/Core/Actor.js +71 -93
  284. package/Rendering/Core/Actor2D.js +64 -78
  285. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  286. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  287. package/Rendering/Core/AxesActor.js +65 -87
  288. package/Rendering/Core/Camera.js +246 -271
  289. package/Rendering/Core/CellPicker.js +125 -148
  290. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  292. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  293. package/Rendering/Core/ColorTransferFunction.js +460 -546
  294. package/Rendering/Core/Coordinate/Constants.js +2 -2
  295. package/Rendering/Core/Coordinate.js +119 -198
  296. package/Rendering/Core/CubeAxesActor.js +294 -320
  297. package/Rendering/Core/Follower.js +46 -45
  298. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  299. package/Rendering/Core/Glyph3DMapper.js +96 -148
  300. package/Rendering/Core/HardwareSelector.js +36 -69
  301. package/Rendering/Core/ImageArrayMapper.js +87 -126
  302. package/Rendering/Core/ImageCPRMapper.js +134 -209
  303. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  304. package/Rendering/Core/ImageMapper.js +92 -170
  305. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  306. package/Rendering/Core/ImageProperty.js +66 -81
  307. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  308. package/Rendering/Core/ImageResliceMapper.js +36 -29
  309. package/Rendering/Core/ImageSlice.js +85 -127
  310. package/Rendering/Core/InteractorObserver.js +82 -73
  311. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  312. package/Rendering/Core/InteractorStyle.js +56 -58
  313. package/Rendering/Core/Light.js +43 -49
  314. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  315. package/Rendering/Core/Mapper/Constants.js +6 -6
  316. package/Rendering/Core/Mapper/Static.js +15 -12
  317. package/Rendering/Core/Mapper.js +194 -259
  318. package/Rendering/Core/Mapper2D.js +61 -100
  319. package/Rendering/Core/Picker.js +124 -143
  320. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  321. package/Rendering/Core/PointPicker.js +68 -79
  322. package/Rendering/Core/Prop/Constants.js +2 -2
  323. package/Rendering/Core/Prop.js +58 -106
  324. package/Rendering/Core/Prop3D.js +54 -83
  325. package/Rendering/Core/Property/Constants.js +6 -6
  326. package/Rendering/Core/Property.js +45 -74
  327. package/Rendering/Core/Property2D/Constants.js +2 -2
  328. package/Rendering/Core/Property2D.js +33 -42
  329. package/Rendering/Core/RenderWindow.js +70 -82
  330. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  331. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  332. package/Rendering/Core/Renderer.js +193 -257
  333. package/Rendering/Core/ScalarBarActor.js +267 -272
  334. package/Rendering/Core/Skybox.js +26 -24
  335. package/Rendering/Core/SphereMapper.js +22 -12
  336. package/Rendering/Core/StickMapper.js +22 -12
  337. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  338. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  339. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  340. package/Rendering/Core/Texture.js +99 -141
  341. package/Rendering/Core/Viewport.js +60 -88
  342. package/Rendering/Core/Volume.js +55 -77
  343. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  344. package/Rendering/Core/VolumeMapper.js +59 -91
  345. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  346. package/Rendering/Core/VolumeProperty.js +78 -115
  347. package/Rendering/Core.js +47 -49
  348. package/Rendering/Misc/CanvasView.js +62 -61
  349. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  350. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  351. package/Rendering/Misc/RemoteView.js +86 -80
  352. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  354. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  355. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  356. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  357. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  358. package/Rendering/Misc.js +7 -7
  359. package/Rendering/OpenGL/Actor.js +57 -68
  360. package/Rendering/OpenGL/Actor2D.js +56 -56
  361. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  362. package/Rendering/OpenGL/BufferObject.js +50 -65
  363. package/Rendering/OpenGL/Camera.js +35 -29
  364. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  365. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  366. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  367. package/Rendering/OpenGL/ForwardPass.js +53 -64
  368. package/Rendering/OpenGL/Framebuffer.js +61 -101
  369. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  370. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  371. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  372. package/Rendering/OpenGL/Helper.js +58 -73
  373. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  374. package/Rendering/OpenGL/ImageMapper.js +268 -361
  375. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  376. package/Rendering/OpenGL/ImageSlice.js +48 -54
  377. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  378. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  379. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  380. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  381. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  382. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  383. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  384. package/Rendering/OpenGL/RenderWindow.js +356 -510
  385. package/Rendering/OpenGL/Renderer.js +77 -89
  386. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  387. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  388. package/Rendering/OpenGL/Shader.js +37 -31
  389. package/Rendering/OpenGL/ShaderCache.js +67 -74
  390. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  391. package/Rendering/OpenGL/Skybox.js +99 -60
  392. package/Rendering/OpenGL/SphereMapper.js +94 -108
  393. package/Rendering/OpenGL/StickMapper.js +110 -114
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  395. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  397. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  398. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  399. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  400. package/Rendering/OpenGL/Texture.js +444 -609
  401. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  402. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  403. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  404. package/Rendering/OpenGL/Volume.js +38 -34
  405. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  406. package/Rendering/OpenGL.js +28 -28
  407. package/Rendering/SceneGraph/RenderPass.js +34 -31
  408. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  409. package/Rendering/SceneGraph/ViewNode.js +82 -111
  410. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  411. package/Rendering/SceneGraph.js +4 -4
  412. package/Rendering/WebGPU/Actor.js +49 -49
  413. package/Rendering/WebGPU/Actor2D.js +45 -44
  414. package/Rendering/WebGPU/BindGroup.js +43 -50
  415. package/Rendering/WebGPU/Buffer.js +41 -50
  416. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  417. package/Rendering/WebGPU/BufferManager.js +111 -141
  418. package/Rendering/WebGPU/Camera.js +65 -67
  419. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  420. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  421. package/Rendering/WebGPU/Device.js +78 -133
  422. package/Rendering/WebGPU/ForwardPass.js +75 -72
  423. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  424. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  425. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  426. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  427. package/Rendering/WebGPU/ImageMapper.js +180 -171
  428. package/Rendering/WebGPU/ImageSlice.js +45 -44
  429. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  430. package/Rendering/WebGPU/OpaquePass.js +37 -36
  431. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  432. package/Rendering/WebGPU/Pipeline.js +37 -51
  433. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  434. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  435. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  436. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  437. package/Rendering/WebGPU/RenderWindow.js +262 -376
  438. package/Rendering/WebGPU/Renderer.js +224 -208
  439. package/Rendering/WebGPU/Sampler.js +27 -21
  440. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  441. package/Rendering/WebGPU/ShaderCache.js +43 -41
  442. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  443. package/Rendering/WebGPU/ShaderModule.js +26 -17
  444. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  445. package/Rendering/WebGPU/SphereMapper.js +200 -130
  446. package/Rendering/WebGPU/StickMapper.js +289 -152
  447. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  448. package/Rendering/WebGPU/Texture.js +79 -99
  449. package/Rendering/WebGPU/TextureManager.js +52 -54
  450. package/Rendering/WebGPU/TextureView.js +40 -43
  451. package/Rendering/WebGPU/Types.js +53 -70
  452. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  453. package/Rendering/WebGPU/VertexInput.js +64 -90
  454. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  455. package/Rendering/WebGPU/Volume.js +52 -51
  456. package/Rendering/WebGPU/VolumePass.js +218 -239
  457. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  458. package/Rendering/WebGPU.js +1 -1
  459. package/Rendering/index.js +5 -5
  460. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  461. package/Widgets/Core/AbstractWidget.js +49 -58
  462. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  463. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  464. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  465. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  466. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  467. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  468. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  469. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  470. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  471. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  472. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  474. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  475. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  477. package/Widgets/Core/StateBuilder.js +120 -149
  478. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  479. package/Widgets/Core/WidgetManager.js +249 -421
  480. package/Widgets/Core/WidgetState.js +48 -57
  481. package/Widgets/Core.js +5 -5
  482. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  483. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  484. package/Widgets/Manipulators/LineManipulator.js +31 -28
  485. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  486. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  487. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  488. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  489. package/Widgets/Manipulators.js +4 -2
  490. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  491. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  492. package/Widgets/Representations/ContextRepresentation.js +17 -14
  493. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  494. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  495. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  496. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  497. package/Widgets/Representations/HandleRepresentation.js +17 -14
  498. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  499. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  500. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  501. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  502. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  503. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  504. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  505. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  506. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  507. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  508. package/Widgets/Representations.js +13 -13
  509. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  510. package/Widgets/Widgets3D/AngleWidget.js +41 -39
  511. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  512. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  513. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  514. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  515. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  516. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  517. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  518. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  519. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  520. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  523. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  524. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  525. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  526. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  527. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  528. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  529. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  530. package/Widgets/Widgets3D/LineWidget.js +39 -35
  531. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  532. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  533. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  534. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  535. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  536. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  537. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  538. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  539. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +134 -210
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +90 -117
  542. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  543. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  544. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  545. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  546. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  547. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  548. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  549. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  550. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  551. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  552. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  553. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  554. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  555. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  556. package/Widgets/Widgets3D.js +15 -15
  557. package/Widgets/index.js +4 -4
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  559. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  560. package/favicon.js +5 -6
  561. package/index.d.ts +4 -2
  562. package/index.js +4 -3
  563. package/macros.js +4 -1931
  564. package/macros2.js +1684 -0
  565. package/package.json +6 -6
  566. package/vtk.js +18 -31
@@ -1,11 +1,17 @@
1
- import { newInstance as newInstance$1, vtkErrorMacro as vtkErrorMacro$1 } from '../../macros.js';
1
+ import { n as newInstance$1, c as macro } from '../../macros2.js';
2
2
  import vtkWebGPUCellArrayMapper from './CellArrayMapper.js';
3
3
  import vtkWebGPUBufferManager from './BufferManager.js';
4
4
  import vtkWebGPUShaderCache from './ShaderCache.js';
5
5
  import { registerOverride } from './ViewNodeFactory.js';
6
6
 
7
- var BufferUsage = vtkWebGPUBufferManager.BufferUsage;
8
- var vtkErrorMacro = vtkErrorMacro$1; // Vertices
7
+ const {
8
+ BufferUsage
9
+ } = vtkWebGPUBufferManager;
10
+ const {
11
+ vtkErrorMacro
12
+ } = macro;
13
+
14
+ // Vertices
9
15
  // 013 - 032 - 324 - 453
10
16
  //
11
17
  // _.4---_.5
@@ -26,265 +32,396 @@ var vtkErrorMacro = vtkErrorMacro$1; // Vertices
26
32
  // 4: 011
27
33
  // 5: 111
28
34
 
29
- var vtkWebGPUStickMapperVS = "\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::Color::Dec\n\n//VTK::IOStructs::Dec\n\n@vertex\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var offsetsArray: array<vec3<f32>, 12> = array<vec3<f32>, 12>(\n vec3<f32>(-1.0, -1.0, -1.0),\n vec3<f32>(1.0, -1.0, -1.0),\n vec3<f32>(1.0, -1.0, 1.0),\n\n vec3<f32>(-1.0, -1.0, -1.0),\n vec3<f32>(1.0, -1.0, 1.0),\n vec3<f32>(-1.0, -1.0, 1.0),\n\n vec3<f32>(-1.0, -1.0, 1.0),\n vec3<f32>(1.0, -1.0, 1.0),\n vec3<f32>(1.0, 1.0, 1.0),\n\n vec3<f32>(-1.0, -1.0, 1.0),\n vec3<f32>(1.0, 1.0, 1.0),\n vec3<f32>(-1.0, 1.0, 1.0)\n );\n\n var output : vertexOutput;\n\n var vertexVC: vec4<f32> = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4<f32>(vertexBC.xyz, 1.0);\n\n //VTK::Color::Impl\n\n // compute the projected vertex position\n output.centerVC = vertexVC.xyz;\n output.radiusVC = radiusMC;\n output.lengthVC = length(orientMC);\n output.orientVC = (rendererUBO.WCVCNormals * vec4<f32>(normalize(orientMC), 0.0)).xyz;\n\n // make sure it is pointing out of the screen\n if (output.orientVC.z < 0.0)\n {\n output.orientVC = -output.orientVC;\n }\n\n // make the basis\n var xbase: vec3<f32>;\n var ybase: vec3<f32>;\n var dir: vec3<f32> = vec3<f32>(0.0,0.0,1.0);\n if (rendererUBO.cameraParallel == 0u)\n {\n dir = normalize(-vertexVC.xyz);\n }\n if (abs(dot(dir,output.orientVC)) == 1.0)\n {\n xbase = normalize(cross(vec3<f32>(0.0,1.0,0.0),output.orientVC));\n ybase = cross(xbase,output.orientVC);\n }\n else\n {\n xbase = normalize(cross(output.orientVC,dir));\n ybase = cross(output.orientVC,xbase);\n }\n\n\n var vertIdx: u32 = input.vertexIndex % 12u;\n var offsets: vec3<f32> = offsetsArray[vertIdx];\n\n vertexVC = vec4<f32>(vertexVC.xyz +\n output.radiusVC * offsets.x * xbase +\n output.radiusVC * offsets.y * ybase +\n 0.5 * output.lengthVC * offsets.z * output.orientVC, 1.0);\n\n output.vertexVC = vertexVC;\n\n //VTK::Position::Impl\n\n return output;\n}\n"; // ----------------------------------------------------------------------------
35
+ const vtkWebGPUStickMapperVS = `
36
+ //VTK::Renderer::Dec
37
+
38
+ //VTK::Mapper::Dec
39
+
40
+ //VTK::Color::Dec
41
+
42
+ //VTK::IOStructs::Dec
43
+
44
+ @vertex
45
+ fn main(
46
+ //VTK::IOStructs::Input
47
+ )
48
+ //VTK::IOStructs::Output
49
+ {
50
+ var offsetsArray: array<vec3<f32>, 12> = array<vec3<f32>, 12>(
51
+ vec3<f32>(-1.0, -1.0, -1.0),
52
+ vec3<f32>(1.0, -1.0, -1.0),
53
+ vec3<f32>(1.0, -1.0, 1.0),
54
+
55
+ vec3<f32>(-1.0, -1.0, -1.0),
56
+ vec3<f32>(1.0, -1.0, 1.0),
57
+ vec3<f32>(-1.0, -1.0, 1.0),
58
+
59
+ vec3<f32>(-1.0, -1.0, 1.0),
60
+ vec3<f32>(1.0, -1.0, 1.0),
61
+ vec3<f32>(1.0, 1.0, 1.0),
62
+
63
+ vec3<f32>(-1.0, -1.0, 1.0),
64
+ vec3<f32>(1.0, 1.0, 1.0),
65
+ vec3<f32>(-1.0, 1.0, 1.0)
66
+ );
67
+
68
+ var output : vertexOutput;
69
+
70
+ var vertexVC: vec4<f32> = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4<f32>(vertexBC.xyz, 1.0);
71
+
72
+ //VTK::Color::Impl
73
+
74
+ // compute the projected vertex position
75
+ output.centerVC = vertexVC.xyz;
76
+ output.radiusVC = radiusMC;
77
+ output.lengthVC = length(orientMC);
78
+ output.orientVC = (rendererUBO.WCVCNormals * vec4<f32>(normalize(orientMC), 0.0)).xyz;
79
+
80
+ // make sure it is pointing out of the screen
81
+ if (output.orientVC.z < 0.0)
82
+ {
83
+ output.orientVC = -output.orientVC;
84
+ }
85
+
86
+ // make the basis
87
+ var xbase: vec3<f32>;
88
+ var ybase: vec3<f32>;
89
+ var dir: vec3<f32> = vec3<f32>(0.0,0.0,1.0);
90
+ if (rendererUBO.cameraParallel == 0u)
91
+ {
92
+ dir = normalize(-vertexVC.xyz);
93
+ }
94
+ if (abs(dot(dir,output.orientVC)) == 1.0)
95
+ {
96
+ xbase = normalize(cross(vec3<f32>(0.0,1.0,0.0),output.orientVC));
97
+ ybase = cross(xbase,output.orientVC);
98
+ }
99
+ else
100
+ {
101
+ xbase = normalize(cross(output.orientVC,dir));
102
+ ybase = cross(output.orientVC,xbase);
103
+ }
104
+
105
+
106
+ var vertIdx: u32 = input.vertexIndex % 12u;
107
+ var offsets: vec3<f32> = offsetsArray[vertIdx];
108
+
109
+ vertexVC = vec4<f32>(vertexVC.xyz +
110
+ output.radiusVC * offsets.x * xbase +
111
+ output.radiusVC * offsets.y * ybase +
112
+ 0.5 * output.lengthVC * offsets.z * output.orientVC, 1.0);
113
+
114
+ output.vertexVC = vertexVC;
115
+
116
+ //VTK::Position::Impl
117
+
118
+ return output;
119
+ }
120
+ `;
121
+
122
+ // ----------------------------------------------------------------------------
30
123
  // vtkWebGPUStickMapper methods
31
124
  // ----------------------------------------------------------------------------
32
125
 
33
126
  function vtkWebGPUStickMapper(publicAPI, model) {
34
127
  // Set our className
35
128
  model.classHierarchy.push('vtkWebGPUStickMapper');
36
- var cellMapperBuildPass = publicAPI.buildPass;
37
-
38
- publicAPI.buildPass = function (prepass) {
129
+ const cellMapperBuildPass = publicAPI.buildPass;
130
+ publicAPI.buildPass = prepass => {
39
131
  if (prepass) {
40
132
  if (!model.renderable.getStatic()) {
41
133
  model.renderable.update();
42
134
  }
43
-
44
- var poly = model.renderable.getInputData();
135
+ const poly = model.renderable.getInputData();
45
136
  publicAPI.setCellArray(poly.getVerts());
46
137
  publicAPI.setCurrentInput(poly);
47
138
  }
48
-
49
139
  cellMapperBuildPass(prepass);
50
140
  };
51
-
52
- publicAPI.replaceShaderNormal = function (hash, pipeline, vertexInput) {
53
- var vDesc = pipeline.getShaderDescription('vertex');
141
+ publicAPI.replaceShaderNormal = (hash, pipeline, vertexInput) => {
142
+ const vDesc = pipeline.getShaderDescription('vertex');
54
143
  if (!vDesc.hasOutput('vertexVC')) vDesc.addOutput('vec4<f32>', 'vertexVC');
55
144
  vDesc.addOutput('vec3<f32>', 'centerVC');
56
145
  vDesc.addOutput('vec3<f32>', 'orientVC');
57
146
  vDesc.addOutput('f32', 'radiusVC');
58
147
  vDesc.addOutput('f32', 'lengthVC');
59
148
  vDesc.addBuiltinInput('u32', '@builtin(vertex_index) vertexIndex');
60
- var fDesc = pipeline.getShaderDescription('fragment');
149
+ const fDesc = pipeline.getShaderDescription('fragment');
61
150
  fDesc.addBuiltinOutput('f32', '@builtin(frag_depth) fragDepth');
62
- var stickFrag = "\n // compute the eye position and unit direction\n var vertexVC: vec4<f32>;\n var EyePos: vec3<f32>;\n var EyeDir: vec3<f32>;\n\n if (rendererUBO.cameraParallel != 0u)\n {\n EyePos = vec3<f32>(input.vertexVC.x, input.vertexVC.y, input.vertexVC.z + 3.0*input.radiusVC);\n EyeDir = vec3<f32>(0.0, 0.0, -1.0);\n }\n else\n {\n EyeDir = input.vertexVC.xyz;\n EyePos = vec3<f32>(0.0,0.0,0.0);\n var lengthED: f32 = length(EyeDir);\n EyeDir = normalize(EyeDir);\n // we adjust the EyePos to be closer if it is too far away\n // to prevent floating point precision noise\n if (lengthED > input.radiusVC*3.0)\n {\n EyePos = input.vertexVC.xyz - EyeDir*3.0*input.radiusVC;\n }\n }\n // translate to Sphere center\n EyePos = EyePos - input.centerVC;\n\n // rotate to new basis\n // base1, base2, orientVC\n var base1: vec3<f32>;\n if (abs(input.orientVC.z) < 0.99)\n {\n base1 = normalize(cross(input.orientVC,vec3<f32>(0.0,0.0,1.0)));\n }\n else\n {\n base1 = normalize(cross(input.orientVC,vec3<f32>(0.0,1.0,0.0)));\n }\n var base2: vec3<f32> = cross(input.orientVC,base1);\n EyePos = vec3<f32>(dot(EyePos,base1),dot(EyePos,base2),dot(EyePos,input.orientVC));\n EyeDir = vec3<f32>(dot(EyeDir,base1),dot(EyeDir,base2),dot(EyeDir,input.orientVC));\n\n // scale to radius 1.0\n EyePos = EyePos * (1.0 / input.radiusVC);\n\n // find the intersection\n var a: f32 = EyeDir.x*EyeDir.x + EyeDir.y*EyeDir.y;\n var b: f32 = 2.0*(EyePos.x*EyeDir.x + EyePos.y*EyeDir.y);\n var c: f32 = EyePos.x*EyePos.x + EyePos.y*EyePos.y - 1.0;\n var d: f32 = b*b - 4.0*a*c;\n var normal: vec3<f32> = vec3<f32>(0.0,0.0,1.0);\n if (d < 0.0) { discard; }\n else\n {\n var t: f32 = (-b - sqrt(d))*(0.5 / a);\n var tz: f32 = EyePos.z + t*EyeDir.z;\n var iPoint: vec3<f32> = EyePos + t*EyeDir;\n if (abs(iPoint.z)*input.radiusVC > input.lengthVC*0.5)\n {\n // test for end cap\n var t2: f32 = (-b + sqrt(d))*(0.5 / a);\n var tz2: f32 = EyePos.z + t2*EyeDir.z;\n if (tz2*input.radiusVC > input.lengthVC*0.5 || tz*input.radiusVC < -0.5*input.lengthVC) { discard; }\n else\n {\n normal = input.orientVC;\n var t3: f32 = (input.lengthVC*0.5/input.radiusVC - EyePos.z)/EyeDir.z;\n iPoint = EyePos + t3*EyeDir;\n vertexVC = vec4<f32>(input.radiusVC*(iPoint.x*base1 + iPoint.y*base2 + iPoint.z*input.orientVC) + input.centerVC, 1.0);\n }\n }\n else\n {\n // The normal is the iPoint.xy rotated back into VC\n normal = iPoint.x*base1 + iPoint.y*base2;\n // rescale rerotate and translate\n vertexVC = vec4<f32>(input.radiusVC*(normal + iPoint.z*input.orientVC) + input.centerVC, 1.0);\n }\n }\n // compute the pixel's depth\n var pos: vec4<f32> = rendererUBO.VCPCMatrix * vertexVC;\n output.fragDepth = pos.z / pos.w;\n ";
63
- var code = fDesc.getCode();
151
+ const stickFrag = `
152
+ // compute the eye position and unit direction
153
+ var vertexVC: vec4<f32>;
154
+ var EyePos: vec3<f32>;
155
+ var EyeDir: vec3<f32>;
156
+
157
+ if (rendererUBO.cameraParallel != 0u)
158
+ {
159
+ EyePos = vec3<f32>(input.vertexVC.x, input.vertexVC.y, input.vertexVC.z + 3.0*input.radiusVC);
160
+ EyeDir = vec3<f32>(0.0, 0.0, -1.0);
161
+ }
162
+ else
163
+ {
164
+ EyeDir = input.vertexVC.xyz;
165
+ EyePos = vec3<f32>(0.0,0.0,0.0);
166
+ var lengthED: f32 = length(EyeDir);
167
+ EyeDir = normalize(EyeDir);
168
+ // we adjust the EyePos to be closer if it is too far away
169
+ // to prevent floating point precision noise
170
+ if (lengthED > input.radiusVC*3.0)
171
+ {
172
+ EyePos = input.vertexVC.xyz - EyeDir*3.0*input.radiusVC;
173
+ }
174
+ }
175
+ // translate to Sphere center
176
+ EyePos = EyePos - input.centerVC;
177
+
178
+ // rotate to new basis
179
+ // base1, base2, orientVC
180
+ var base1: vec3<f32>;
181
+ if (abs(input.orientVC.z) < 0.99)
182
+ {
183
+ base1 = normalize(cross(input.orientVC,vec3<f32>(0.0,0.0,1.0)));
184
+ }
185
+ else
186
+ {
187
+ base1 = normalize(cross(input.orientVC,vec3<f32>(0.0,1.0,0.0)));
188
+ }
189
+ var base2: vec3<f32> = cross(input.orientVC,base1);
190
+ EyePos = vec3<f32>(dot(EyePos,base1),dot(EyePos,base2),dot(EyePos,input.orientVC));
191
+ EyeDir = vec3<f32>(dot(EyeDir,base1),dot(EyeDir,base2),dot(EyeDir,input.orientVC));
192
+
193
+ // scale to radius 1.0
194
+ EyePos = EyePos * (1.0 / input.radiusVC);
195
+
196
+ // find the intersection
197
+ var a: f32 = EyeDir.x*EyeDir.x + EyeDir.y*EyeDir.y;
198
+ var b: f32 = 2.0*(EyePos.x*EyeDir.x + EyePos.y*EyeDir.y);
199
+ var c: f32 = EyePos.x*EyePos.x + EyePos.y*EyePos.y - 1.0;
200
+ var d: f32 = b*b - 4.0*a*c;
201
+ var normal: vec3<f32> = vec3<f32>(0.0,0.0,1.0);
202
+ if (d < 0.0) { discard; }
203
+ else
204
+ {
205
+ var t: f32 = (-b - sqrt(d))*(0.5 / a);
206
+ var tz: f32 = EyePos.z + t*EyeDir.z;
207
+ var iPoint: vec3<f32> = EyePos + t*EyeDir;
208
+ if (abs(iPoint.z)*input.radiusVC > input.lengthVC*0.5)
209
+ {
210
+ // test for end cap
211
+ var t2: f32 = (-b + sqrt(d))*(0.5 / a);
212
+ var tz2: f32 = EyePos.z + t2*EyeDir.z;
213
+ if (tz2*input.radiusVC > input.lengthVC*0.5 || tz*input.radiusVC < -0.5*input.lengthVC) { discard; }
214
+ else
215
+ {
216
+ normal = input.orientVC;
217
+ var t3: f32 = (input.lengthVC*0.5/input.radiusVC - EyePos.z)/EyeDir.z;
218
+ iPoint = EyePos + t3*EyeDir;
219
+ vertexVC = vec4<f32>(input.radiusVC*(iPoint.x*base1 + iPoint.y*base2 + iPoint.z*input.orientVC) + input.centerVC, 1.0);
220
+ }
221
+ }
222
+ else
223
+ {
224
+ // The normal is the iPoint.xy rotated back into VC
225
+ normal = iPoint.x*base1 + iPoint.y*base2;
226
+ // rescale rerotate and translate
227
+ vertexVC = vec4<f32>(input.radiusVC*(normal + iPoint.z*input.orientVC) + input.centerVC, 1.0);
228
+ }
229
+ }
230
+ // compute the pixel's depth
231
+ var pos: vec4<f32> = rendererUBO.VCPCMatrix * vertexVC;
232
+ output.fragDepth = pos.z / pos.w;
233
+ `;
234
+ let code = fDesc.getCode();
64
235
  code = vtkWebGPUShaderCache.substitute(code, '//VTK::Normal::Impl', [stickFrag]).result;
65
236
  fDesc.setCode(code);
66
237
  };
67
-
68
- publicAPI.replaceShaderPosition = function (hash, pipeline, vertexInput) {
69
- var vDesc = pipeline.getShaderDescription('vertex');
238
+ publicAPI.replaceShaderPosition = (hash, pipeline, vertexInput) => {
239
+ const vDesc = pipeline.getShaderDescription('vertex');
70
240
  vDesc.addBuiltinOutput('vec4<f32>', '@builtin(position) Position');
71
- var code = vDesc.getCode();
241
+ let code = vDesc.getCode();
72
242
  code = vtkWebGPUShaderCache.substitute(code, '//VTK::Position::Impl', [' output.Position = rendererUBO.VCPCMatrix*vertexVC;']).result;
73
243
  vDesc.setCode(code);
74
- }; // compute a unique hash for a pipeline, this needs to be unique enough to
244
+ };
245
+
246
+ // compute a unique hash for a pipeline, this needs to be unique enough to
75
247
  // capture any pipeline code changes (which includes shader changes)
76
248
  // or vertex input changes/ bind groups/ etc
77
-
78
-
79
- publicAPI.computePipelineHash = function () {
249
+ publicAPI.computePipelineHash = () => {
80
250
  model.pipelineHash = 'stm';
81
-
82
- if (model.vertexInput.hasAttribute("colorVI")) {
83
- model.pipelineHash += "c";
251
+ if (model.vertexInput.hasAttribute(`colorVI`)) {
252
+ model.pipelineHash += `c`;
84
253
  }
85
-
86
254
  model.pipelineHash += model.renderEncoder.getPipelineHash();
87
255
  };
88
-
89
- publicAPI.updateBuffers = function () {
90
- var poly = model.currentInput;
256
+ publicAPI.updateBuffers = () => {
257
+ const poly = model.currentInput;
91
258
  model.renderable.mapScalars(poly, 1.0);
92
- var device = model.device;
93
- var points = poly.getPoints();
94
- var pointData = poly.getPointData();
95
- var numPoints = points.getNumberOfPoints();
96
- var pointArray = points.getData();
259
+ const device = model.device;
260
+ const points = poly.getPoints();
261
+ const pointData = poly.getPointData();
262
+ const numPoints = points.getNumberOfPoints();
263
+ const pointArray = points.getData();
97
264
  publicAPI.setNumberOfInstances(numPoints);
98
265
  publicAPI.setNumberOfVertices(12);
99
- var vertexInput = model.vertexInput;
100
- var hash = "stm".concat(points.getMTime(), "float32x3");
101
-
266
+ const vertexInput = model.vertexInput;
267
+ let hash = `stm${points.getMTime()}float32x3`;
102
268
  if (!device.getBufferManager().hasBuffer(hash)) {
103
- var buffRequest = {
104
- hash: hash,
269
+ const buffRequest = {
270
+ hash,
105
271
  usage: BufferUsage.RawVertex,
106
272
  format: 'float32x3'
107
- }; // xyz v1 v2 v3
108
-
109
- var tmpVBO = new Float32Array(numPoints * 3);
110
- var pointIdx = 0;
111
- var vboIdx = 0;
112
-
113
- for (var id = 0; id < numPoints; ++id) {
273
+ };
274
+ // xyz v1 v2 v3
275
+ const tmpVBO = new Float32Array(numPoints * 3);
276
+ let pointIdx = 0;
277
+ let vboIdx = 0;
278
+ for (let id = 0; id < numPoints; ++id) {
114
279
  pointIdx = id * 3;
115
280
  tmpVBO[vboIdx++] = pointArray[pointIdx];
116
281
  tmpVBO[vboIdx++] = pointArray[pointIdx + 1];
117
282
  tmpVBO[vboIdx++] = pointArray[pointIdx + 2];
118
283
  }
119
-
120
284
  buffRequest.nativeArray = tmpVBO;
121
- var buff = device.getBufferManager().getBuffer(buffRequest);
285
+ const buff = device.getBufferManager().getBuffer(buffRequest);
122
286
  vertexInput.addBuffer(buff, ['vertexBC'], 'instance');
123
- } // compute offset VBO
124
-
125
-
126
- var scales = null;
287
+ }
127
288
 
289
+ // compute offset VBO
290
+ let scales = null;
128
291
  if (model.renderable.getScaleArray() != null && pointData.hasArray(model.renderable.getScaleArray())) {
129
292
  scales = pointData.getArray(model.renderable.getScaleArray()).getData();
130
293
  }
131
-
132
- var defaultRadius = model.renderable.getRadius();
133
-
294
+ const defaultRadius = model.renderable.getRadius();
134
295
  if (scales || defaultRadius !== model._lastRadius) {
135
- hash = "stm".concat(scales ? pointData.getArray(model.renderable.getScaleArray()).getMTime() : defaultRadius, "float32");
136
-
296
+ hash = `stm${scales ? pointData.getArray(model.renderable.getScaleArray()).getMTime() : defaultRadius}float32`;
137
297
  if (!device.getBufferManager().hasBuffer(hash)) {
138
- var _buffRequest = {
139
- hash: hash,
298
+ const buffRequest = {
299
+ hash,
140
300
  usage: BufferUsage.RawVertex,
141
301
  format: 'float32'
142
302
  };
143
-
144
- var _tmpVBO = new Float32Array(numPoints);
145
-
146
- var _vboIdx = 0;
147
-
148
- for (var _id = 0; _id < numPoints; ++_id) {
149
- var radius = model.renderable.getRadius();
150
-
303
+ const tmpVBO = new Float32Array(numPoints);
304
+ let vboIdx = 0;
305
+ for (let id = 0; id < numPoints; ++id) {
306
+ let radius = model.renderable.getRadius();
151
307
  if (scales) {
152
- radius = scales[_id * 2 + 1];
308
+ radius = scales[id * 2 + 1];
153
309
  }
154
-
155
- _tmpVBO[_vboIdx++] = radius;
310
+ tmpVBO[vboIdx++] = radius;
156
311
  }
157
-
158
- _buffRequest.nativeArray = _tmpVBO;
159
-
160
- var _buff = device.getBufferManager().getBuffer(_buffRequest);
161
-
162
- vertexInput.addBuffer(_buff, ['radiusMC'], 'instance');
312
+ buffRequest.nativeArray = tmpVBO;
313
+ const buff = device.getBufferManager().getBuffer(buffRequest);
314
+ vertexInput.addBuffer(buff, ['radiusMC'], 'instance');
163
315
  }
164
-
165
316
  model._lastRadius = defaultRadius;
166
317
  }
167
-
168
- var orientationArray = null;
169
-
318
+ let orientationArray = null;
170
319
  if (model.renderable.getOrientationArray() != null && pointData.hasArray(model.renderable.getOrientationArray())) {
171
320
  orientationArray = pointData.getArray(model.renderable.getOrientationArray()).getData();
172
321
  } else {
173
322
  vtkErrorMacro(['Error setting orientationArray.\n', 'You have to specify the stick orientation']);
174
323
  }
175
-
176
- hash = "stm".concat(pointData.getArray(model.renderable.getOrientationArray()).getMTime(), "float32x3");
177
-
324
+ hash = `stm${pointData.getArray(model.renderable.getOrientationArray()).getMTime()}float32x3`;
178
325
  if (!device.getBufferManager().hasBuffer(hash)) {
179
- var _buffRequest2 = {
180
- hash: hash,
326
+ const buffRequest = {
327
+ hash,
181
328
  usage: BufferUsage.RawVertex,
182
329
  format: 'float32x3'
183
- }; // xyz v1 v2 v3
184
-
185
- var _tmpVBO2 = new Float32Array(numPoints * 3);
186
-
187
- var _pointIdx = 0;
188
- var _vboIdx2 = 0;
189
-
190
- for (var _id2 = 0; _id2 < numPoints; ++_id2) {
191
- _pointIdx = _id2 * 3;
192
- var length = model.renderable.getLength();
193
-
330
+ };
331
+ // xyz v1 v2 v3
332
+ const tmpVBO = new Float32Array(numPoints * 3);
333
+ let pointIdx = 0;
334
+ let vboIdx = 0;
335
+ for (let id = 0; id < numPoints; ++id) {
336
+ pointIdx = id * 3;
337
+ let length = model.renderable.getLength();
194
338
  if (scales) {
195
- length = scales[_id2 * 2];
339
+ length = scales[id * 2];
196
340
  }
197
-
198
- _tmpVBO2[_vboIdx2++] = orientationArray[_pointIdx] * length;
199
- _tmpVBO2[_vboIdx2++] = orientationArray[_pointIdx + 1] * length;
200
- _tmpVBO2[_vboIdx2++] = orientationArray[_pointIdx + 2] * length;
341
+ tmpVBO[vboIdx++] = orientationArray[pointIdx] * length;
342
+ tmpVBO[vboIdx++] = orientationArray[pointIdx + 1] * length;
343
+ tmpVBO[vboIdx++] = orientationArray[pointIdx + 2] * length;
201
344
  }
345
+ buffRequest.nativeArray = tmpVBO;
346
+ const buff = device.getBufferManager().getBuffer(buffRequest);
347
+ vertexInput.addBuffer(buff, ['orientMC'], 'instance');
348
+ }
202
349
 
203
- _buffRequest2.nativeArray = _tmpVBO2;
204
-
205
- var _buff2 = device.getBufferManager().getBuffer(_buffRequest2);
206
-
207
- vertexInput.addBuffer(_buff2, ['orientMC'], 'instance');
208
- } // deal with colors but only if modified
209
-
210
-
211
- var haveColors = false;
212
-
350
+ // deal with colors but only if modified
351
+ let haveColors = false;
213
352
  if (model.renderable.getScalarVisibility()) {
214
- var c = model.renderable.getColorMapColors();
215
-
353
+ const c = model.renderable.getColorMapColors();
216
354
  if (c) {
217
- hash = "stm".concat(c.getMTime(), "unorm8x4");
218
-
355
+ hash = `stm${c.getMTime()}unorm8x4`;
219
356
  if (!device.getBufferManager().hasBuffer(hash)) {
220
- var _buffRequest3 = {
357
+ const buffRequest = {
221
358
  usage: BufferUsage.RawVertex,
222
359
  format: 'unorm8x4'
223
360
  };
224
- var colorComponents = c.getNumberOfComponents();
225
-
361
+ const colorComponents = c.getNumberOfComponents();
226
362
  if (colorComponents !== 4) {
227
363
  vtkErrorMacro('this should be 4');
228
364
  }
229
-
230
- var _tmpVBO3 = new Uint8Array(numPoints * 4);
231
-
232
- var _vboIdx3 = 0;
233
- var colorData = c.getData();
234
-
235
- for (var _id3 = 0; _id3 < numPoints; ++_id3) {
236
- var colorIdx = _id3 * colorComponents;
237
- _tmpVBO3[_vboIdx3++] = colorData[colorIdx];
238
- _tmpVBO3[_vboIdx3++] = colorData[colorIdx + 1];
239
- _tmpVBO3[_vboIdx3++] = colorData[colorIdx + 2];
240
- _tmpVBO3[_vboIdx3++] = colorData[colorIdx + 3];
365
+ const tmpVBO = new Uint8Array(numPoints * 4);
366
+ let vboIdx = 0;
367
+ const colorData = c.getData();
368
+ for (let id = 0; id < numPoints; ++id) {
369
+ const colorIdx = id * colorComponents;
370
+ tmpVBO[vboIdx++] = colorData[colorIdx];
371
+ tmpVBO[vboIdx++] = colorData[colorIdx + 1];
372
+ tmpVBO[vboIdx++] = colorData[colorIdx + 2];
373
+ tmpVBO[vboIdx++] = colorData[colorIdx + 3];
241
374
  }
242
-
243
- _buffRequest3.nativeArray = _tmpVBO3;
244
-
245
- var _buff3 = device.getBufferManager().getBuffer(_buffRequest3);
246
-
247
- vertexInput.addBuffer(_buff3, ['colorVI'], 'instance');
375
+ buffRequest.nativeArray = tmpVBO;
376
+ const buff = device.getBufferManager().getBuffer(buffRequest);
377
+ vertexInput.addBuffer(buff, ['colorVI'], 'instance');
248
378
  }
249
-
250
379
  haveColors = true;
251
380
  }
252
381
  }
253
-
254
382
  if (!haveColors) {
255
383
  vertexInput.removeBufferIfPresent('colorVI');
256
384
  }
257
-
258
385
  publicAPI.setTopology('triangle-list');
259
386
  publicAPI.updateUBO();
260
387
  };
261
- } // ----------------------------------------------------------------------------
388
+ }
389
+
390
+ // ----------------------------------------------------------------------------
262
391
  // Object factory
263
392
  // ----------------------------------------------------------------------------
264
393
 
394
+ const DEFAULT_VALUES = {};
265
395
 
266
- var DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------
396
+ // ----------------------------------------------------------------------------
267
397
 
268
398
  function extend(publicAPI, model) {
269
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
270
- Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance
399
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
400
+ Object.assign(model, DEFAULT_VALUES, initialValues);
271
401
 
402
+ // Inheritance
272
403
  vtkWebGPUCellArrayMapper.extend(publicAPI, model, initialValues);
273
- publicAPI.setVertexShaderTemplate(vtkWebGPUStickMapperVS); // Object methods
404
+ publicAPI.setVertexShaderTemplate(vtkWebGPUStickMapperVS);
274
405
 
406
+ // Object methods
275
407
  vtkWebGPUStickMapper(publicAPI, model);
276
- var sr = model.shaderReplacements;
408
+ const sr = model.shaderReplacements;
277
409
  sr.set('replaceShaderPosition', publicAPI.replaceShaderPosition);
278
410
  sr.set('replaceShaderNormal', publicAPI.replaceShaderNormal);
279
- } // ----------------------------------------------------------------------------
411
+ }
412
+
413
+ // ----------------------------------------------------------------------------
414
+
415
+ const newInstance = newInstance$1(extend, 'vtkWebGPUStickMapper');
280
416
 
281
- var newInstance = newInstance$1(extend, 'vtkWebGPUStickMapper'); // ----------------------------------------------------------------------------
417
+ // ----------------------------------------------------------------------------
282
418
 
283
419
  var index = {
284
- newInstance: newInstance,
285
- extend: extend
286
- }; // Register ourself to WebGPU backend if imported
420
+ newInstance,
421
+ extend
422
+ };
287
423
 
424
+ // Register ourself to WebGPU backend if imported
288
425
  registerOverride('vtkStickMapper', newInstance);
289
426
 
290
427
  export { index as default, extend, newInstance };