@kitware/vtk.js 28.10.2 → 28.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/Common/Core/Base64.js +53 -82
  2. package/Common/Core/CellArray.js +52 -60
  3. package/Common/Core/ClassHierarchy.js +8 -36
  4. package/Common/Core/DataArray/Constants.js +6 -6
  5. package/Common/Core/DataArray.js +193 -277
  6. package/Common/Core/Endian.js +14 -17
  7. package/Common/Core/HalfFloat.js +17 -34
  8. package/Common/Core/ImageHelper.js +17 -25
  9. package/Common/Core/LookupTable.js +131 -144
  10. package/Common/Core/Math/Constants.js +8 -8
  11. package/Common/Core/Math/index.js +754 -942
  12. package/Common/Core/Math.js +2 -4
  13. package/Common/Core/MatrixBuilder.js +99 -151
  14. package/Common/Core/Points.js +43 -43
  15. package/Common/Core/PriorityQueue.js +30 -28
  16. package/Common/Core/ProgressHandler.js +31 -32
  17. package/Common/Core/ScalarsToColors/Constants.js +4 -4
  18. package/Common/Core/ScalarsToColors.js +196 -253
  19. package/Common/Core/StringArray.js +48 -73
  20. package/Common/Core/URLExtract.js +10 -29
  21. package/Common/Core/VariantArray.js +48 -73
  22. package/Common/Core.js +11 -11
  23. package/Common/DataModel/AbstractPointLocator.js +19 -17
  24. package/Common/DataModel/BoundingBox.js +322 -490
  25. package/Common/DataModel/Box.js +46 -63
  26. package/Common/DataModel/CardinalSpline1D.js +92 -102
  27. package/Common/DataModel/Cell.js +41 -61
  28. package/Common/DataModel/CellLinks.js +91 -127
  29. package/Common/DataModel/CellTypes/Constants.js +7 -6
  30. package/Common/DataModel/CellTypes.js +55 -74
  31. package/Common/DataModel/Collection.js +45 -61
  32. package/Common/DataModel/Cone.js +28 -20
  33. package/Common/DataModel/Cylinder.js +41 -35
  34. package/Common/DataModel/DataSet/Constants.js +11 -5
  35. package/Common/DataModel/DataSet.js +37 -25
  36. package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
  37. package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
  38. package/Common/DataModel/DataSetAttributes.js +96 -138
  39. package/Common/DataModel/EdgeLocator.js +45 -70
  40. package/Common/DataModel/ITKHelper.js +67 -137
  41. package/Common/DataModel/ImageData.js +115 -172
  42. package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
  43. package/Common/DataModel/ImplicitBoolean.js +66 -96
  44. package/Common/DataModel/IncrementalOctreeNode.js +201 -231
  45. package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
  46. package/Common/DataModel/KochanekSpline1D.js +78 -81
  47. package/Common/DataModel/Line/Constants.js +2 -2
  48. package/Common/DataModel/Line.js +82 -105
  49. package/Common/DataModel/Locator.js +17 -10
  50. package/Common/DataModel/Molecule.js +26 -17
  51. package/Common/DataModel/PiecewiseFunction.js +218 -239
  52. package/Common/DataModel/Plane.js +90 -113
  53. package/Common/DataModel/PointSet.js +30 -26
  54. package/Common/DataModel/PolyData/Constants.js +2 -2
  55. package/Common/DataModel/PolyData.js +95 -120
  56. package/Common/DataModel/PolyLine.js +44 -61
  57. package/Common/DataModel/Polygon/Constants.js +4 -4
  58. package/Common/DataModel/Polygon.js +128 -169
  59. package/Common/DataModel/Quad/Constants.js +2 -2
  60. package/Common/DataModel/Quad.js +61 -100
  61. package/Common/DataModel/SelectionNode/Constants.js +5 -4
  62. package/Common/DataModel/SelectionNode.js +25 -21
  63. package/Common/DataModel/Sphere.js +40 -35
  64. package/Common/DataModel/Spline1D/Constants.js +3 -2
  65. package/Common/DataModel/Spline1D.js +34 -18
  66. package/Common/DataModel/Spline3D/Constants.js +2 -2
  67. package/Common/DataModel/Spline3D.js +46 -41
  68. package/Common/DataModel/StructuredData/Constants.js +2 -2
  69. package/Common/DataModel/StructuredData.js +9 -20
  70. package/Common/DataModel/Triangle.js +207 -250
  71. package/Common/DataModel.js +19 -19
  72. package/Common/System/MobileVR.js +56 -61
  73. package/Common/System/TimerLog.js +1 -1
  74. package/Common/System.js +2 -2
  75. package/Common/Transform/LandmarkTransform/Constants.js +2 -2
  76. package/Common/Transform/LandmarkTransform.js +133 -117
  77. package/Common/Transform/Transform.js +42 -57
  78. package/Common/Transform.js +2 -2
  79. package/Common/index.js +4 -4
  80. package/Filters/Core/Cutter.js +134 -146
  81. package/Filters/Core/PolyDataNormals.js +44 -50
  82. package/Filters/Core.js +2 -2
  83. package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
  84. package/Filters/Cornerstone.js +1 -1
  85. package/Filters/General/AppendPolyData.js +84 -100
  86. package/Filters/General/Calculator.js +95 -163
  87. package/Filters/General/ClipClosedSurface/Constants.js +2 -2
  88. package/Filters/General/ClipClosedSurface.js +341 -416
  89. package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
  90. package/Filters/General/ContourTriangulator/Constants.js +2 -2
  91. package/Filters/General/ContourTriangulator/helper.js +684 -812
  92. package/Filters/General/ContourTriangulator.js +92 -89
  93. package/Filters/General/ImageCropFilter.js +77 -78
  94. package/Filters/General/ImageDataOutlineFilter.js +42 -36
  95. package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
  96. package/Filters/General/ImageMarchingCubes.js +99 -112
  97. package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
  98. package/Filters/General/ImageMarchingSquares.js +93 -118
  99. package/Filters/General/ImageOutlineFilter.js +53 -54
  100. package/Filters/General/ImageSliceFilter.js +39 -30
  101. package/Filters/General/ImageStreamline.js +107 -124
  102. package/Filters/General/LineFilter.js +26 -15
  103. package/Filters/General/MoleculeToRepresentation.js +136 -149
  104. package/Filters/General/OBBTree/OBBNode.js +36 -34
  105. package/Filters/General/OBBTree/helper.js +19 -24
  106. package/Filters/General/OBBTree.js +396 -488
  107. package/Filters/General/OutlineFilter.js +52 -34
  108. package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
  109. package/Filters/General/PaintFilter.js +150 -162
  110. package/Filters/General/ScalarToRGBA.js +38 -33
  111. package/Filters/General/TriangleFilter.js +65 -62
  112. package/Filters/General/TubeFilter/Constants.js +4 -4
  113. package/Filters/General/TubeFilter.js +376 -496
  114. package/Filters/General/WarpScalar.js +58 -60
  115. package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
  116. package/Filters/General.js +21 -21
  117. package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
  118. package/Filters/Sources/Arrow2DSource.js +56 -56
  119. package/Filters/Sources/ArrowSource.js +39 -29
  120. package/Filters/Sources/CircleSource.js +43 -43
  121. package/Filters/Sources/ConcentricCylinderSource.js +151 -174
  122. package/Filters/Sources/ConeSource.js +51 -42
  123. package/Filters/Sources/CubeSource.js +75 -96
  124. package/Filters/Sources/Cursor3D.js +94 -109
  125. package/Filters/Sources/CylinderSource.js +90 -90
  126. package/Filters/Sources/ImageGridSource.js +43 -43
  127. package/Filters/Sources/LineSource.js +49 -39
  128. package/Filters/Sources/PlaneSource.js +97 -104
  129. package/Filters/Sources/PointSource.js +46 -37
  130. package/Filters/Sources/RTAnalyticSource.js +50 -48
  131. package/Filters/Sources/SLICSource.js +63 -73
  132. package/Filters/Sources/SphereSource.js +88 -78
  133. package/Filters/Sources/ViewFinderSource.js +26 -23
  134. package/Filters/Sources.js +14 -14
  135. package/Filters/Texture/TextureMapToPlane.js +95 -97
  136. package/Filters/Texture/TextureMapToSphere.js +46 -54
  137. package/Filters/Texture.js +2 -2
  138. package/Filters/index.js +5 -5
  139. package/IO/Core/BinaryHelper.js +12 -18
  140. package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
  141. package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
  142. package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
  143. package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
  144. package/IO/Core/DataAccessHelper.js +6 -6
  145. package/IO/Core/HttpDataSetReader.js +136 -139
  146. package/IO/Core/HttpDataSetSeriesReader.js +64 -75
  147. package/IO/Core/HttpSceneLoader.js +130 -179
  148. package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
  149. package/IO/Core/ImageStream/ViewStream.js +100 -103
  150. package/IO/Core/ImageStream.js +62 -54
  151. package/IO/Core/ResourceLoader.js +10 -9
  152. package/IO/Core/Serializer/ArraySerializer.js +40 -40
  153. package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
  154. package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
  155. package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
  156. package/IO/Core/Serializer.js +6 -13
  157. package/IO/Core/WSLinkClient.js +90 -76
  158. package/IO/Core/ZipMultiDataSetReader.js +46 -44
  159. package/IO/Core/ZipMultiDataSetWriter.js +43 -34
  160. package/IO/Core.js +7 -7
  161. package/IO/Geometry/DracoReader.js +118 -121
  162. package/IO/Geometry/PLYReader.js +163 -223
  163. package/IO/Geometry/PLYWriter/Constants.js +5 -5
  164. package/IO/Geometry/PLYWriter.js +139 -154
  165. package/IO/Geometry/STLReader.js +123 -146
  166. package/IO/Geometry/STLWriter/Constants.js +2 -2
  167. package/IO/Geometry/STLWriter.js +83 -82
  168. package/IO/Geometry.js +5 -5
  169. package/IO/Legacy/LegacyAsciiParser.js +78 -139
  170. package/IO/Legacy/PolyDataReader.js +48 -36
  171. package/IO/Legacy.js +2 -2
  172. package/IO/Misc/ElevationReader.js +67 -60
  173. package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
  174. package/IO/Misc/ITKImageReader.js +58 -45
  175. package/IO/Misc/ITKPolyDataReader.js +50 -38
  176. package/IO/Misc/JSONNucleoReader.js +49 -42
  177. package/IO/Misc/JSONReader.js +38 -33
  178. package/IO/Misc/MTLReader.js +74 -119
  179. package/IO/Misc/OBJReader.js +153 -206
  180. package/IO/Misc/PDBReader.js +70 -68
  181. package/IO/Misc/SkyboxReader.js +77 -82
  182. package/IO/Misc.js +9 -9
  183. package/IO/XML/XMLImageDataReader.js +36 -38
  184. package/IO/XML/XMLImageDataWriter.js +28 -21
  185. package/IO/XML/XMLPolyDataReader.js +49 -46
  186. package/IO/XML/XMLPolyDataWriter.js +43 -42
  187. package/IO/XML/XMLReader.js +262 -304
  188. package/IO/XML/XMLWriter/Constants.js +3 -3
  189. package/IO/XML/XMLWriter.js +70 -84
  190. package/IO/XML.js +6 -6
  191. package/IO/index.js +5 -5
  192. package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
  193. package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
  194. package/Imaging/Core/AbstractImageInterpolator.js +74 -87
  195. package/Imaging/Core/ImageInterpolator.js +201 -252
  196. package/Imaging/Core/ImagePointDataIterator.js +96 -122
  197. package/Imaging/Core/ImageReslice/Constants.js +2 -2
  198. package/Imaging/Core/ImageReslice.js +327 -464
  199. package/Imaging/Core.js +4 -4
  200. package/Imaging/Hybrid/SampleFunction.js +58 -51
  201. package/Imaging/Hybrid.js +1 -1
  202. package/Imaging/index.js +2 -2
  203. package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
  204. package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
  205. package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
  206. package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
  207. package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
  208. package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
  209. package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
  210. package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
  211. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
  212. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
  213. package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
  214. package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
  215. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
  216. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
  217. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
  218. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
  219. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
  220. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
  221. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
  222. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
  223. package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
  224. package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
  225. package/Interaction/Manipulators.js +21 -21
  226. package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
  227. package/Interaction/Misc.js +1 -1
  228. package/Interaction/Style/InteractorStyleImage.js +101 -121
  229. package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
  230. package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
  231. package/Interaction/Style/InteractorStyleManipulator.js +254 -329
  232. package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
  233. package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
  234. package/Interaction/Style/InteractorStyleUnicam.js +30 -38
  235. package/Interaction/Style.js +5 -5
  236. package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
  237. package/Interaction/UI/CornerAnnotation.js +65 -48
  238. package/Interaction/UI/FPSMonitor.js +104 -105
  239. package/Interaction/UI/Icons.js +1 -1
  240. package/Interaction/UI/Slider/Constants.js +2 -2
  241. package/Interaction/UI/Slider.js +78 -95
  242. package/Interaction/UI/VolumeController.js +104 -97
  243. package/Interaction/UI.js +5 -5
  244. package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
  245. package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
  246. package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  247. package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
  248. package/Interaction/Widgets.js +2 -2
  249. package/Interaction/index.js +5 -5
  250. package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
  251. package/Proxy/Animation/AnimationProxyManager.js +43 -51
  252. package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
  253. package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
  254. package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
  255. package/Proxy/Core/LookupTableProxy.js +49 -52
  256. package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
  257. package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
  258. package/Proxy/Core/ProxyManager/core.js +83 -106
  259. package/Proxy/Core/ProxyManager/properties.js +53 -76
  260. package/Proxy/Core/ProxyManager/state.js +100 -110
  261. package/Proxy/Core/ProxyManager/view.js +45 -55
  262. package/Proxy/Core/ProxyManager.js +16 -8
  263. package/Proxy/Core/SourceProxy.js +41 -38
  264. package/Proxy/Core/View2DProxy.js +143 -199
  265. package/Proxy/Core/ViewProxy.js +223 -269
  266. package/Proxy/Core.js +7 -7
  267. package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
  268. package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
  269. package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
  270. package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
  271. package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
  272. package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
  273. package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
  274. package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
  275. package/Proxy/Representations.js +7 -7
  276. package/Proxy/index.js +2 -2
  277. package/README.md +1 -1
  278. package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  279. package/Rendering/Core/AbstractImageMapper.js +18 -19
  280. package/Rendering/Core/AbstractMapper.js +39 -55
  281. package/Rendering/Core/AbstractMapper3D.js +26 -31
  282. package/Rendering/Core/AbstractPicker.js +25 -21
  283. package/Rendering/Core/Actor.js +71 -93
  284. package/Rendering/Core/Actor2D.js +64 -78
  285. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  286. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  287. package/Rendering/Core/AxesActor.js +65 -87
  288. package/Rendering/Core/Camera.js +246 -271
  289. package/Rendering/Core/CellPicker.js +125 -148
  290. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  292. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  293. package/Rendering/Core/ColorTransferFunction.js +460 -546
  294. package/Rendering/Core/Coordinate/Constants.js +2 -2
  295. package/Rendering/Core/Coordinate.js +119 -198
  296. package/Rendering/Core/CubeAxesActor.js +294 -320
  297. package/Rendering/Core/Follower.js +46 -45
  298. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  299. package/Rendering/Core/Glyph3DMapper.js +96 -148
  300. package/Rendering/Core/HardwareSelector.js +36 -69
  301. package/Rendering/Core/ImageArrayMapper.js +87 -126
  302. package/Rendering/Core/ImageCPRMapper.js +134 -209
  303. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  304. package/Rendering/Core/ImageMapper.js +85 -144
  305. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  306. package/Rendering/Core/ImageProperty.js +66 -81
  307. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  308. package/Rendering/Core/ImageResliceMapper.js +36 -29
  309. package/Rendering/Core/ImageSlice.js +85 -127
  310. package/Rendering/Core/InteractorObserver.js +82 -73
  311. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  312. package/Rendering/Core/InteractorStyle.js +56 -58
  313. package/Rendering/Core/Light.js +43 -49
  314. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  315. package/Rendering/Core/Mapper/Constants.js +6 -6
  316. package/Rendering/Core/Mapper/Static.js +15 -12
  317. package/Rendering/Core/Mapper.js +194 -259
  318. package/Rendering/Core/Mapper2D.js +61 -100
  319. package/Rendering/Core/Picker.js +124 -143
  320. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  321. package/Rendering/Core/PointPicker.js +68 -79
  322. package/Rendering/Core/Prop/Constants.js +2 -2
  323. package/Rendering/Core/Prop.js +58 -106
  324. package/Rendering/Core/Prop3D.js +54 -83
  325. package/Rendering/Core/Property/Constants.js +6 -6
  326. package/Rendering/Core/Property.js +45 -74
  327. package/Rendering/Core/Property2D/Constants.js +2 -2
  328. package/Rendering/Core/Property2D.js +33 -42
  329. package/Rendering/Core/RenderWindow.js +70 -82
  330. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  331. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  332. package/Rendering/Core/Renderer.js +192 -256
  333. package/Rendering/Core/ScalarBarActor.js +267 -272
  334. package/Rendering/Core/Skybox.js +26 -24
  335. package/Rendering/Core/SphereMapper.js +22 -12
  336. package/Rendering/Core/StickMapper.js +22 -12
  337. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  338. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  339. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  340. package/Rendering/Core/Texture.js +99 -141
  341. package/Rendering/Core/Viewport.js +60 -88
  342. package/Rendering/Core/Volume.js +55 -77
  343. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  344. package/Rendering/Core/VolumeMapper.js +59 -91
  345. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  346. package/Rendering/Core/VolumeProperty.js +78 -115
  347. package/Rendering/Core.js +47 -49
  348. package/Rendering/Misc/CanvasView.js +62 -61
  349. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  350. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  351. package/Rendering/Misc/RemoteView.js +86 -80
  352. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  354. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  355. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  356. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  357. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  358. package/Rendering/Misc.js +7 -7
  359. package/Rendering/OpenGL/Actor.js +57 -68
  360. package/Rendering/OpenGL/Actor2D.js +56 -56
  361. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  362. package/Rendering/OpenGL/BufferObject.js +50 -65
  363. package/Rendering/OpenGL/Camera.js +35 -29
  364. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  365. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  366. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  367. package/Rendering/OpenGL/ForwardPass.js +53 -64
  368. package/Rendering/OpenGL/Framebuffer.js +61 -101
  369. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  370. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  371. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  372. package/Rendering/OpenGL/Helper.js +58 -73
  373. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  374. package/Rendering/OpenGL/ImageMapper.js +268 -361
  375. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  376. package/Rendering/OpenGL/ImageSlice.js +48 -54
  377. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  378. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  379. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  380. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  381. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  382. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  383. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  384. package/Rendering/OpenGL/RenderWindow.js +356 -510
  385. package/Rendering/OpenGL/Renderer.js +77 -89
  386. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  387. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  388. package/Rendering/OpenGL/Shader.js +37 -31
  389. package/Rendering/OpenGL/ShaderCache.js +67 -74
  390. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  391. package/Rendering/OpenGL/Skybox.js +99 -60
  392. package/Rendering/OpenGL/SphereMapper.js +94 -108
  393. package/Rendering/OpenGL/StickMapper.js +110 -114
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  395. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  397. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  398. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  399. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  400. package/Rendering/OpenGL/Texture.js +443 -608
  401. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  402. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  403. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  404. package/Rendering/OpenGL/Volume.js +38 -34
  405. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  406. package/Rendering/OpenGL.js +28 -28
  407. package/Rendering/SceneGraph/RenderPass.js +34 -31
  408. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  409. package/Rendering/SceneGraph/ViewNode.js +82 -111
  410. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  411. package/Rendering/SceneGraph.js +4 -4
  412. package/Rendering/WebGPU/Actor.js +49 -49
  413. package/Rendering/WebGPU/Actor2D.js +45 -44
  414. package/Rendering/WebGPU/BindGroup.js +43 -50
  415. package/Rendering/WebGPU/Buffer.js +41 -50
  416. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  417. package/Rendering/WebGPU/BufferManager.js +111 -141
  418. package/Rendering/WebGPU/Camera.js +65 -67
  419. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  420. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  421. package/Rendering/WebGPU/Device.js +78 -133
  422. package/Rendering/WebGPU/ForwardPass.js +75 -72
  423. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  424. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  425. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  426. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  427. package/Rendering/WebGPU/ImageMapper.js +180 -171
  428. package/Rendering/WebGPU/ImageSlice.js +45 -44
  429. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  430. package/Rendering/WebGPU/OpaquePass.js +37 -36
  431. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  432. package/Rendering/WebGPU/Pipeline.js +37 -51
  433. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  434. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  435. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  436. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  437. package/Rendering/WebGPU/RenderWindow.js +262 -376
  438. package/Rendering/WebGPU/Renderer.js +224 -208
  439. package/Rendering/WebGPU/Sampler.js +27 -21
  440. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  441. package/Rendering/WebGPU/ShaderCache.js +43 -41
  442. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  443. package/Rendering/WebGPU/ShaderModule.js +26 -17
  444. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  445. package/Rendering/WebGPU/SphereMapper.js +200 -130
  446. package/Rendering/WebGPU/StickMapper.js +289 -152
  447. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  448. package/Rendering/WebGPU/Texture.js +79 -99
  449. package/Rendering/WebGPU/TextureManager.js +52 -54
  450. package/Rendering/WebGPU/TextureView.js +40 -43
  451. package/Rendering/WebGPU/Types.js +53 -70
  452. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  453. package/Rendering/WebGPU/VertexInput.js +64 -90
  454. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  455. package/Rendering/WebGPU/Volume.js +52 -51
  456. package/Rendering/WebGPU/VolumePass.js +218 -239
  457. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  458. package/Rendering/WebGPU.js +1 -1
  459. package/Rendering/index.js +5 -5
  460. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  461. package/Widgets/Core/AbstractWidget.js +49 -58
  462. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  463. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  464. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  465. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  466. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  467. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  468. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  469. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  470. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  471. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  472. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  474. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  475. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  477. package/Widgets/Core/StateBuilder.js +120 -149
  478. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  479. package/Widgets/Core/WidgetManager.js +249 -421
  480. package/Widgets/Core/WidgetState.js +48 -57
  481. package/Widgets/Core.js +5 -5
  482. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  483. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  484. package/Widgets/Manipulators/LineManipulator.js +31 -28
  485. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  486. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  487. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  488. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  489. package/Widgets/Manipulators.js +4 -2
  490. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  491. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  492. package/Widgets/Representations/ContextRepresentation.js +17 -14
  493. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  494. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  495. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  496. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  497. package/Widgets/Representations/HandleRepresentation.js +17 -14
  498. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  499. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  500. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  501. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  502. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  503. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  504. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  505. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  506. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  507. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  508. package/Widgets/Representations.js +13 -13
  509. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  510. package/Widgets/Widgets3D/AngleWidget.js +40 -38
  511. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  512. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  513. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  514. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  515. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  516. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  517. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  518. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  519. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  520. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  523. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  524. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  525. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  526. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  527. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  528. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  529. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  530. package/Widgets/Widgets3D/LineWidget.js +39 -35
  531. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  532. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  533. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  534. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  535. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  536. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  537. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  538. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  539. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +133 -209
  540. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  541. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
  542. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  543. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  544. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  545. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  546. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  547. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  548. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  549. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  550. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  551. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  552. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  553. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  554. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  555. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  556. package/Widgets/Widgets3D.js +15 -15
  557. package/Widgets/index.js +4 -4
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  559. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  560. package/favicon.js +5 -6
  561. package/index.d.ts +4 -2
  562. package/index.js +4 -3
  563. package/macros.js +4 -1931
  564. package/macros2.js +1684 -0
  565. package/package.json +6 -6
  566. package/vtk.js +18 -31
@@ -1,6 +1,6 @@
1
1
  import { mat4 } from 'gl-matrix';
2
2
  import Constants from '../Core/ImageMapper/Constants.js';
3
- import { newInstance as newInstance$1, setGet, obj, vtkErrorMacro as vtkErrorMacro$1 } from '../../macros.js';
3
+ import { n as newInstance$1, e as setGet, o as obj, r as vtkErrorMacro$1, c as macro } from '../../macros2.js';
4
4
  import vtkDataArray from '../../Common/Core/DataArray.js';
5
5
  import { VtkDataTypes } from '../../Common/Core/DataArray/Constants.js';
6
6
  import vtkHelper from './Helper.js';
@@ -16,30 +16,34 @@ import { v as vtkPolyDataFS } from './glsl/vtkPolyDataFS.glsl.js';
16
16
  import vtkReplacementShaderMapper from './ReplacementShaderMapper.js';
17
17
  import { registerOverride } from './ViewNodeFactory.js';
18
18
 
19
- var vtkErrorMacro = vtkErrorMacro$1;
20
- var SlicingMode = Constants.SlicingMode; // ----------------------------------------------------------------------------
19
+ const {
20
+ vtkErrorMacro
21
+ } = macro;
22
+ const {
23
+ SlicingMode
24
+ } = Constants;
25
+
26
+ // ----------------------------------------------------------------------------
21
27
  // helper methods
22
28
  // ----------------------------------------------------------------------------
23
29
 
24
30
  function computeFnToString(property, fn, numberOfComponents) {
25
- var pwfun = fn.apply(property);
26
-
31
+ const pwfun = fn.apply(property);
27
32
  if (pwfun) {
28
- var iComps = property.getIndependentComponents();
29
- return "".concat(property.getMTime(), "-").concat(iComps, "-").concat(numberOfComponents);
33
+ const iComps = property.getIndependentComponents();
34
+ return `${property.getMTime()}-${iComps}-${numberOfComponents}`;
30
35
  }
31
-
32
36
  return '0';
33
- } // ----------------------------------------------------------------------------
37
+ }
38
+
39
+ // ----------------------------------------------------------------------------
34
40
  // vtkOpenGLImageMapper methods
35
41
  // ----------------------------------------------------------------------------
36
42
 
37
-
38
43
  function vtkOpenGLImageMapper(publicAPI, model) {
39
44
  // Set our className
40
45
  model.classHierarchy.push('vtkOpenGLImageMapper');
41
-
42
- publicAPI.buildPass = function (prepass) {
46
+ publicAPI.buildPass = prepass => {
43
47
  if (prepass) {
44
48
  model.currentRenderPass = null;
45
49
  model.openGLImageSlice = publicAPI.getFirstAncestorOfType('vtkOpenGLImageSlice');
@@ -50,25 +54,21 @@ function vtkOpenGLImageMapper(publicAPI, model) {
50
54
  model.openGLTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
51
55
  model.colorTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
52
56
  model.pwfTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
53
-
54
- var ren = model._openGLRenderer.getRenderable();
55
-
56
- model.openGLCamera = model._openGLRenderer.getViewNodeFor(ren.getActiveCamera()); // is slice set by the camera
57
-
57
+ const ren = model._openGLRenderer.getRenderable();
58
+ model.openGLCamera = model._openGLRenderer.getViewNodeFor(ren.getActiveCamera());
59
+ // is slice set by the camera
58
60
  if (model.renderable.isA('vtkImageMapper') && model.renderable.getSliceAtFocalPoint()) {
59
61
  model.renderable.setSliceFromCamera(ren.getActiveCamera());
60
62
  }
61
63
  }
62
64
  };
63
-
64
- publicAPI.translucentPass = function (prepass, renderPass) {
65
+ publicAPI.translucentPass = (prepass, renderPass) => {
65
66
  if (prepass) {
66
67
  model.currentRenderPass = renderPass;
67
68
  publicAPI.render();
68
69
  }
69
70
  };
70
-
71
- publicAPI.zBufferPass = function (prepass) {
71
+ publicAPI.zBufferPass = prepass => {
72
72
  if (prepass) {
73
73
  model.haveSeenDepthRequest = true;
74
74
  model.renderDepth = true;
@@ -76,118 +76,97 @@ function vtkOpenGLImageMapper(publicAPI, model) {
76
76
  model.renderDepth = false;
77
77
  }
78
78
  };
79
-
80
- publicAPI.opaqueZBufferPass = function (prepass) {
81
- return publicAPI.zBufferPass(prepass);
82
- };
83
-
84
- publicAPI.opaquePass = function (prepass) {
79
+ publicAPI.opaqueZBufferPass = prepass => publicAPI.zBufferPass(prepass);
80
+ publicAPI.opaquePass = prepass => {
85
81
  if (prepass) {
86
82
  publicAPI.render();
87
83
  }
88
84
  };
89
-
90
- publicAPI.getCoincidentParameters = function (ren, actor) {
85
+ publicAPI.getCoincidentParameters = (ren, actor) => {
91
86
  if (model.renderable.getResolveCoincidentTopology()) {
92
87
  return model.renderable.getCoincidentTopologyPolygonOffsetParameters();
93
88
  }
94
-
95
89
  return null;
96
- }; // Renders myself
97
-
98
-
99
- publicAPI.render = function () {
100
- var actor = model.openGLImageSlice.getRenderable();
101
-
102
- var ren = model._openGLRenderer.getRenderable();
90
+ };
103
91
 
92
+ // Renders myself
93
+ publicAPI.render = () => {
94
+ const actor = model.openGLImageSlice.getRenderable();
95
+ const ren = model._openGLRenderer.getRenderable();
104
96
  publicAPI.renderPiece(ren, actor);
105
97
  };
106
-
107
- publicAPI.getShaderTemplate = function (shaders, ren, actor) {
98
+ publicAPI.getShaderTemplate = (shaders, ren, actor) => {
108
99
  shaders.Vertex = vtkPolyDataVS;
109
100
  shaders.Fragment = vtkPolyDataFS;
110
101
  shaders.Geometry = '';
111
102
  };
112
-
113
- publicAPI.replaceShaderValues = function (shaders, ren, actor) {
114
- var VSSource = shaders.Vertex;
115
- var FSSource = shaders.Fragment;
103
+ publicAPI.replaceShaderValues = (shaders, ren, actor) => {
104
+ let VSSource = shaders.Vertex;
105
+ let FSSource = shaders.Fragment;
116
106
  VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Camera::Dec', ['uniform mat4 MCPCMatrix;']).result;
117
107
  VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::PositionVC::Impl', [' gl_Position = MCPCMatrix * vertexMC;']).result;
118
108
  VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::TCoord::Impl', 'tcoordVCVSOutput = tcoordMC;').result;
119
109
  VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::TCoord::Dec', 'attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;').result;
120
- var tNumComp = model.openGLTexture.getComponents();
121
- var iComps = actor.getProperty().getIndependentComponents();
122
- var tcoordDec = ['varying vec2 tcoordVCVSOutput;', // color shift and scale
123
- 'uniform float cshift0;', 'uniform float cscale0;', // pwf shift and scale
110
+ const tNumComp = model.openGLTexture.getComponents();
111
+ const iComps = actor.getProperty().getIndependentComponents();
112
+ let tcoordDec = ['varying vec2 tcoordVCVSOutput;',
113
+ // color shift and scale
114
+ 'uniform float cshift0;', 'uniform float cscale0;',
115
+ // pwf shift and scale
124
116
  'uniform float pwfshift0;', 'uniform float pwfscale0;', 'uniform sampler2D texture1;', 'uniform sampler2D colorTexture1;', 'uniform sampler2D pwfTexture1;', 'uniform float opacity;'];
125
-
126
117
  if (iComps) {
127
- for (var comp = 1; comp < tNumComp; comp++) {
128
- tcoordDec = tcoordDec.concat([// color shift and scale
129
- "uniform float cshift".concat(comp, ";"), "uniform float cscale".concat(comp, ";"), // weighting shift and scale
130
- "uniform float pwfshift".concat(comp, ";"), "uniform float pwfscale".concat(comp, ";")]);
131
- } // the heights defined below are the locations
118
+ for (let comp = 1; comp < tNumComp; comp++) {
119
+ tcoordDec = tcoordDec.concat([
120
+ // color shift and scale
121
+ `uniform float cshift${comp};`, `uniform float cscale${comp};`,
122
+ // weighting shift and scale
123
+ `uniform float pwfshift${comp};`, `uniform float pwfscale${comp};`]);
124
+ }
125
+ // the heights defined below are the locations
132
126
  // for the up to four components of the tfuns
133
127
  // the tfuns have a height of 2XnumComps pixels so the
134
128
  // values are computed to hit the middle of the two rows
135
129
  // for that component
136
-
137
-
138
130
  switch (tNumComp) {
139
131
  case 1:
140
132
  tcoordDec = tcoordDec.concat(['uniform float mix0;', '#define height0 0.5']);
141
133
  break;
142
-
143
134
  case 2:
144
135
  tcoordDec = tcoordDec.concat(['uniform float mix0;', 'uniform float mix1;', '#define height0 0.25', '#define height1 0.75']);
145
136
  break;
146
-
147
137
  case 3:
148
138
  tcoordDec = tcoordDec.concat(['uniform float mix0;', 'uniform float mix1;', 'uniform float mix2;', '#define height0 0.17', '#define height1 0.5', '#define height2 0.83']);
149
139
  break;
150
-
151
140
  case 4:
152
141
  tcoordDec = tcoordDec.concat(['uniform float mix0;', 'uniform float mix1;', 'uniform float mix2;', 'uniform float mix3;', '#define height0 0.125', '#define height1 0.375', '#define height2 0.625', '#define height3 0.875']);
153
142
  break;
154
-
155
143
  default:
156
144
  vtkErrorMacro('Unsupported number of independent coordinates.');
157
145
  }
158
146
  }
159
-
160
147
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::TCoord::Dec', tcoordDec).result;
161
-
162
148
  if (iComps) {
163
- var rgba = ['r', 'g', 'b', 'a'];
164
- var tcoordImpl = ['vec4 tvalue = texture2D(texture1, tcoordVCVSOutput);'];
165
-
166
- for (var _comp = 0; _comp < tNumComp; _comp++) {
167
- tcoordImpl = tcoordImpl.concat(["vec3 tcolor".concat(_comp, " = mix").concat(_comp, " * texture2D(colorTexture1, vec2(tvalue.").concat(rgba[_comp], " * cscale").concat(_comp, " + cshift").concat(_comp, ", height").concat(_comp, ")).rgb;"), "float compWeight".concat(_comp, " = mix").concat(_comp, " * texture2D(pwfTexture1, vec2(tvalue.").concat(rgba[_comp], " * pwfscale").concat(_comp, " + pwfshift").concat(_comp, ", height").concat(_comp, ")).r;")]);
149
+ const rgba = ['r', 'g', 'b', 'a'];
150
+ let tcoordImpl = ['vec4 tvalue = texture2D(texture1, tcoordVCVSOutput);'];
151
+ for (let comp = 0; comp < tNumComp; comp++) {
152
+ tcoordImpl = tcoordImpl.concat([`vec3 tcolor${comp} = mix${comp} * texture2D(colorTexture1, vec2(tvalue.${rgba[comp]} * cscale${comp} + cshift${comp}, height${comp})).rgb;`, `float compWeight${comp} = mix${comp} * texture2D(pwfTexture1, vec2(tvalue.${rgba[comp]} * pwfscale${comp} + pwfshift${comp}, height${comp})).r;`]);
168
153
  }
169
-
170
154
  switch (tNumComp) {
171
155
  case 1:
172
156
  tcoordImpl = tcoordImpl.concat(['gl_FragData[0] = vec4(tcolor0.rgb, opacity);']);
173
157
  break;
174
-
175
158
  case 2:
176
159
  tcoordImpl = tcoordImpl.concat(['float weightSum = compWeight0 + compWeight1;', 'gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum))), opacity);']);
177
160
  break;
178
-
179
161
  case 3:
180
162
  tcoordImpl = tcoordImpl.concat(['float weightSum = compWeight0 + compWeight1 + compWeight2;', 'gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum))), opacity);']);
181
163
  break;
182
-
183
164
  case 4:
184
165
  tcoordImpl = tcoordImpl.concat(['float weightSum = compWeight0 + compWeight1 + compWeight2 + compWeight3;', 'gl_FragData[0] = vec4(vec3((tcolor0.rgb * (compWeight0 / weightSum)) + (tcolor1.rgb * (compWeight1 / weightSum)) + (tcolor2.rgb * (compWeight2 / weightSum)) + (tcolor3.rgb * (compWeight3 / weightSum))), opacity);']);
185
166
  break;
186
-
187
167
  default:
188
168
  vtkErrorMacro('Unsupported number of independent coordinates.');
189
169
  }
190
-
191
170
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::TCoord::Impl', tcoordImpl).result;
192
171
  } else {
193
172
  // dependent components
@@ -195,295 +174,258 @@ function vtkOpenGLImageMapper(publicAPI, model) {
195
174
  case 1:
196
175
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::TCoord::Impl', ['float intensity = texture2D(texture1, tcoordVCVSOutput).r;', 'vec3 tcolor = texture2D(colorTexture1, vec2(intensity * cscale0 + cshift0, 0.5)).rgb;', 'float scalarOpacity = texture2D(pwfTexture1, vec2(intensity * pwfscale0 + pwfshift0, 0.5)).r;', 'gl_FragData[0] = vec4(tcolor, scalarOpacity * opacity);']).result;
197
176
  break;
198
-
199
177
  case 2:
200
178
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::TCoord::Impl', ['vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);', 'float intensity = tcolor.r*cscale0 + cshift0;', 'gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tcolor.g + pwfshift0);']).result;
201
179
  break;
202
-
203
180
  case 3:
204
181
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::TCoord::Impl', ['vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;', 'gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,', ' texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,', ' texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);']).result;
205
182
  break;
206
-
207
183
  default:
208
184
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::TCoord::Impl', ['vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;', 'gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,', ' texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,', ' texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);']).result;
209
185
  }
210
186
  }
211
-
212
187
  if (model.haveSeenDepthRequest) {
213
188
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::ZBuffer::Dec', 'uniform int depthRequest;').result;
214
189
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::ZBuffer::Impl', ['if (depthRequest == 1) {', 'float iz = floor(gl_FragCoord.z*65535.0 + 0.1);', 'float rf = floor(iz/256.0)/255.0;', 'float gf = mod(iz,256.0)/255.0;', 'gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }']).result;
215
190
  }
216
-
217
191
  shaders.Vertex = VSSource;
218
192
  shaders.Fragment = FSSource;
219
193
  publicAPI.replaceShaderClip(shaders, ren, actor);
220
194
  publicAPI.replaceShaderCoincidentOffset(shaders, ren, actor);
221
195
  };
222
-
223
- publicAPI.replaceShaderClip = function (shaders, ren, actor) {
224
- var VSSource = shaders.Vertex;
225
- var FSSource = shaders.Fragment;
226
-
196
+ publicAPI.replaceShaderClip = (shaders, ren, actor) => {
197
+ let VSSource = shaders.Vertex;
198
+ let FSSource = shaders.Fragment;
227
199
  if (model.renderable.getNumberOfClippingPlanes()) {
228
- var numClipPlanes = model.renderable.getNumberOfClippingPlanes();
229
-
200
+ let numClipPlanes = model.renderable.getNumberOfClippingPlanes();
230
201
  if (numClipPlanes > 6) {
231
202
  vtkErrorMacro$1('OpenGL has a limit of 6 clipping planes');
232
203
  numClipPlanes = 6;
233
204
  }
234
-
235
205
  VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Clip::Dec', ['uniform int numClipPlanes;', 'uniform vec4 clipPlanes[6];', 'varying float clipDistancesVSOutput[6];']).result;
236
206
  VSSource = vtkShaderProgram.substitute(VSSource, '//VTK::Clip::Impl', ['for (int planeNum = 0; planeNum < 6; planeNum++)', ' {', ' if (planeNum >= numClipPlanes)', ' {', ' break;', ' }', ' clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);', ' }']).result;
237
207
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::Clip::Dec', ['uniform int numClipPlanes;', 'varying float clipDistancesVSOutput[6];']).result;
238
208
  FSSource = vtkShaderProgram.substitute(FSSource, '//VTK::Clip::Impl', ['for (int planeNum = 0; planeNum < 6; planeNum++)', ' {', ' if (planeNum >= numClipPlanes)', ' {', ' break;', ' }', ' if (clipDistancesVSOutput[planeNum] < 0.0) discard;', ' }']).result;
239
209
  }
240
-
241
210
  shaders.Vertex = VSSource;
242
211
  shaders.Fragment = FSSource;
243
212
  };
244
-
245
- publicAPI.getNeedToRebuildShaders = function (cellBO, ren, actor) {
213
+ publicAPI.getNeedToRebuildShaders = (cellBO, ren, actor) => {
246
214
  // has something changed that would require us to recreate the shader?
247
215
  // candidates are
248
216
  // property modified (representation interpolation and lighting)
249
217
  // input modified
250
218
  // light complexity changed
251
219
  // render pass shader replacement changed
252
- var tNumComp = model.openGLTexture.getComponents();
253
- var iComp = actor.getProperty().getIndependentComponents(); // has the render pass shader replacement changed? Two options
254
220
 
255
- var needRebuild = false;
221
+ const tNumComp = model.openGLTexture.getComponents();
222
+ const iComp = actor.getProperty().getIndependentComponents();
256
223
 
224
+ // has the render pass shader replacement changed? Two options
225
+ let needRebuild = false;
257
226
  if (!model.currentRenderPass && model.lastRenderPassShaderReplacement || model.currentRenderPass && model.currentRenderPass.getShaderReplacement() !== model.lastRenderPassShaderReplacement) {
258
227
  needRebuild = true;
259
228
  }
260
-
261
229
  if (needRebuild || model.lastHaveSeenDepthRequest !== model.haveSeenDepthRequest || cellBO.getProgram() === 0 || model.lastTextureComponents !== tNumComp || model.lastIndependentComponents !== iComp) {
262
230
  model.lastHaveSeenDepthRequest = model.haveSeenDepthRequest;
263
231
  model.lastTextureComponents = tNumComp;
264
232
  model.lastIndependentComponents = iComp;
265
233
  return true;
266
234
  }
267
-
268
235
  return false;
269
236
  };
237
+ publicAPI.updateShaders = (cellBO, ren, actor) => {
238
+ model.lastBoundBO = cellBO;
270
239
 
271
- publicAPI.updateShaders = function (cellBO, ren, actor) {
272
- model.lastBoundBO = cellBO; // has something changed that would require us to recreate the shader?
273
-
240
+ // has something changed that would require us to recreate the shader?
274
241
  if (publicAPI.getNeedToRebuildShaders(cellBO, ren, actor)) {
275
- var shaders = {
242
+ const shaders = {
276
243
  Vertex: null,
277
244
  Fragment: null,
278
245
  Geometry: null
279
246
  };
280
- publicAPI.buildShaders(shaders, ren, actor); // compile and bind the program if needed
281
-
282
- var newShader = model._openGLRenderWindow.getShaderCache().readyShaderProgramArray(shaders.Vertex, shaders.Fragment, shaders.Geometry); // if the shader changed reinitialize the VAO
247
+ publicAPI.buildShaders(shaders, ren, actor);
283
248
 
249
+ // compile and bind the program if needed
250
+ const newShader = model._openGLRenderWindow.getShaderCache().readyShaderProgramArray(shaders.Vertex, shaders.Fragment, shaders.Geometry);
284
251
 
252
+ // if the shader changed reinitialize the VAO
285
253
  if (newShader !== cellBO.getProgram()) {
286
- cellBO.setProgram(newShader); // reset the VAO as the shader has changed
287
-
254
+ cellBO.setProgram(newShader);
255
+ // reset the VAO as the shader has changed
288
256
  cellBO.getVAO().releaseGraphicsResources();
289
257
  }
290
-
291
258
  cellBO.getShaderSourceTime().modified();
292
259
  } else {
293
260
  model._openGLRenderWindow.getShaderCache().readyShaderProgram(cellBO.getProgram());
294
261
  }
295
-
296
262
  cellBO.getVAO().bind();
297
263
  publicAPI.setMapperShaderParameters(cellBO, ren, actor);
298
264
  publicAPI.setCameraShaderParameters(cellBO, ren, actor);
299
265
  publicAPI.setPropertyShaderParameters(cellBO, ren, actor);
300
266
  };
301
-
302
- publicAPI.setMapperShaderParameters = function (cellBO, ren, actor) {
267
+ publicAPI.setMapperShaderParameters = (cellBO, ren, actor) => {
303
268
  // Now to update the VAO too, if necessary.
269
+
304
270
  if (cellBO.getCABO().getElementCount() && (model.VBOBuildTime > cellBO.getAttributeUpdateTime().getMTime() || cellBO.getShaderSourceTime().getMTime() > cellBO.getAttributeUpdateTime().getMTime())) {
305
271
  if (cellBO.getProgram().isAttributeUsed('vertexMC')) {
306
272
  if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), 'vertexMC', cellBO.getCABO().getVertexOffset(), cellBO.getCABO().getStride(), model.context.FLOAT, 3, model.context.FALSE)) {
307
273
  vtkErrorMacro('Error setting vertexMC in shader VAO.');
308
274
  }
309
275
  }
310
-
311
276
  if (cellBO.getProgram().isAttributeUsed('tcoordMC') && cellBO.getCABO().getTCoordOffset()) {
312
277
  if (!cellBO.getVAO().addAttributeArray(cellBO.getProgram(), cellBO.getCABO(), 'tcoordMC', cellBO.getCABO().getTCoordOffset(), cellBO.getCABO().getStride(), model.context.FLOAT, cellBO.getCABO().getTCoordComponents(), model.context.FALSE)) {
313
278
  vtkErrorMacro('Error setting tcoordMC in shader VAO.');
314
279
  }
315
280
  }
316
-
317
281
  cellBO.getAttributeUpdateTime().modified();
318
282
  }
319
-
320
- var texUnit = model.openGLTexture.getTextureUnit();
283
+ const texUnit = model.openGLTexture.getTextureUnit();
321
284
  cellBO.getProgram().setUniformi('texture1', texUnit);
322
- var numComp = model.openGLTexture.getComponents();
323
- var iComps = actor.getProperty().getIndependentComponents();
324
-
285
+ const numComp = model.openGLTexture.getComponents();
286
+ const iComps = actor.getProperty().getIndependentComponents();
325
287
  if (iComps) {
326
- for (var i = 0; i < numComp; i++) {
327
- cellBO.getProgram().setUniformf("mix".concat(i), actor.getProperty().getComponentWeight(i));
288
+ for (let i = 0; i < numComp; i++) {
289
+ cellBO.getProgram().setUniformf(`mix${i}`, actor.getProperty().getComponentWeight(i));
328
290
  }
329
291
  }
292
+ const oglShiftScale = model.openGLTexture.getShiftAndScale();
330
293
 
331
- var oglShiftScale = model.openGLTexture.getShiftAndScale(); // three levels of shift scale combined into one
294
+ // three levels of shift scale combined into one
332
295
  // for performance in the fragment shader
333
-
334
- for (var _i = 0; _i < numComp; _i++) {
335
- var cw = actor.getProperty().getColorWindow();
336
- var cl = actor.getProperty().getColorLevel();
337
- var target = iComps ? _i : 0;
338
- var cfun = actor.getProperty().getRGBTransferFunction(target);
339
-
296
+ for (let i = 0; i < numComp; i++) {
297
+ let cw = actor.getProperty().getColorWindow();
298
+ let cl = actor.getProperty().getColorLevel();
299
+ const target = iComps ? i : 0;
300
+ const cfun = actor.getProperty().getRGBTransferFunction(target);
340
301
  if (cfun && actor.getProperty().getUseLookupTableScalarRange()) {
341
- var cRange = cfun.getRange();
302
+ const cRange = cfun.getRange();
342
303
  cw = cRange[1] - cRange[0];
343
304
  cl = 0.5 * (cRange[1] + cRange[0]);
344
305
  }
306
+ const scale = oglShiftScale.scale / cw;
307
+ const shift = (oglShiftScale.shift - cl) / cw + 0.5;
308
+ cellBO.getProgram().setUniformf(`cshift${i}`, shift);
309
+ cellBO.getProgram().setUniformf(`cscale${i}`, scale);
310
+ }
345
311
 
346
- var scale = oglShiftScale.scale / cw;
347
- var shift = (oglShiftScale.shift - cl) / cw + 0.5;
348
- cellBO.getProgram().setUniformf("cshift".concat(_i), shift);
349
- cellBO.getProgram().setUniformf("cscale".concat(_i), scale);
350
- } // pwf shift/scale
351
-
352
-
353
- for (var _i2 = 0; _i2 < numComp; _i2++) {
354
- var pwfScale = 1.0;
355
- var pwfShift = 0.0;
356
-
357
- var _target = iComps ? _i2 : 0;
358
-
359
- var pwfun = actor.getProperty().getPiecewiseFunction(_target);
360
-
312
+ // pwf shift/scale
313
+ for (let i = 0; i < numComp; i++) {
314
+ let pwfScale = 1.0;
315
+ let pwfShift = 0.0;
316
+ const target = iComps ? i : 0;
317
+ const pwfun = actor.getProperty().getPiecewiseFunction(target);
361
318
  if (pwfun) {
362
- var pwfRange = pwfun.getRange();
363
- var length = pwfRange[1] - pwfRange[0];
364
- var mid = 0.5 * (pwfRange[0] + pwfRange[1]);
319
+ const pwfRange = pwfun.getRange();
320
+ const length = pwfRange[1] - pwfRange[0];
321
+ const mid = 0.5 * (pwfRange[0] + pwfRange[1]);
365
322
  pwfScale = oglShiftScale.scale / length;
366
323
  pwfShift = (oglShiftScale.shift - mid) / length + 0.5;
367
324
  }
368
-
369
- cellBO.getProgram().setUniformf("pwfshift".concat(_i2), pwfShift);
370
- cellBO.getProgram().setUniformf("pwfscale".concat(_i2), pwfScale);
325
+ cellBO.getProgram().setUniformf(`pwfshift${i}`, pwfShift);
326
+ cellBO.getProgram().setUniformf(`pwfscale${i}`, pwfScale);
371
327
  }
372
-
373
328
  if (model.haveSeenDepthRequest) {
374
329
  cellBO.getProgram().setUniformi('depthRequest', model.renderDepth ? 1 : 0);
375
- } // handle coincident
376
-
330
+ }
377
331
 
332
+ // handle coincident
378
333
  if (cellBO.getProgram().isUniformUsed('coffset')) {
379
- var cp = publicAPI.getCoincidentParameters(ren, actor);
380
- cellBO.getProgram().setUniformf('coffset', cp.offset); // cfactor isn't always used when coffset is.
381
-
334
+ const cp = publicAPI.getCoincidentParameters(ren, actor);
335
+ cellBO.getProgram().setUniformf('coffset', cp.offset);
336
+ // cfactor isn't always used when coffset is.
382
337
  if (cellBO.getProgram().isUniformUsed('cfactor')) {
383
338
  cellBO.getProgram().setUniformf('cfactor', cp.factor);
384
339
  }
385
340
  }
386
-
387
- var texColorUnit = model.colorTexture.getTextureUnit();
341
+ const texColorUnit = model.colorTexture.getTextureUnit();
388
342
  cellBO.getProgram().setUniformi('colorTexture1', texColorUnit);
389
- var texOpacityUnit = model.pwfTexture.getTextureUnit();
343
+ const texOpacityUnit = model.pwfTexture.getTextureUnit();
390
344
  cellBO.getProgram().setUniformi('pwfTexture1', texOpacityUnit);
391
-
392
345
  if (model.renderable.getNumberOfClippingPlanes()) {
393
346
  // add all the clipping planes
394
- var numClipPlanes = model.renderable.getNumberOfClippingPlanes();
395
-
347
+ let numClipPlanes = model.renderable.getNumberOfClippingPlanes();
396
348
  if (numClipPlanes > 6) {
397
349
  vtkErrorMacro$1('OpenGL has a limit of 6 clipping planes');
398
350
  numClipPlanes = 6;
399
351
  }
400
-
401
- var shiftScaleEnabled = cellBO.getCABO().getCoordShiftAndScaleEnabled();
402
- var inverseShiftScaleMatrix = shiftScaleEnabled ? cellBO.getCABO().getInverseShiftAndScaleMatrix() : null;
403
- var mat = inverseShiftScaleMatrix ? mat4.copy(model.imagematinv, actor.getMatrix()) : actor.getMatrix();
404
-
352
+ const shiftScaleEnabled = cellBO.getCABO().getCoordShiftAndScaleEnabled();
353
+ const inverseShiftScaleMatrix = shiftScaleEnabled ? cellBO.getCABO().getInverseShiftAndScaleMatrix() : null;
354
+ const mat = inverseShiftScaleMatrix ? mat4.copy(model.imagematinv, actor.getMatrix()) : actor.getMatrix();
405
355
  if (inverseShiftScaleMatrix) {
406
356
  mat4.transpose(mat, mat);
407
357
  mat4.multiply(mat, mat, inverseShiftScaleMatrix);
408
358
  mat4.transpose(mat, mat);
409
- } // transform crop plane normal with transpose(inverse(worldToIndex))
410
-
359
+ }
411
360
 
361
+ // transform crop plane normal with transpose(inverse(worldToIndex))
412
362
  mat4.transpose(model.imagemat, model.currentInput.getIndexToWorld());
413
363
  mat4.multiply(model.imagematinv, mat, model.imagemat);
414
- var planeEquations = [];
415
-
416
- for (var _i3 = 0; _i3 < numClipPlanes; _i3++) {
417
- var planeEquation = [];
418
- model.renderable.getClippingPlaneInDataCoords(model.imagematinv, _i3, planeEquation);
419
-
420
- for (var j = 0; j < 4; j++) {
364
+ const planeEquations = [];
365
+ for (let i = 0; i < numClipPlanes; i++) {
366
+ const planeEquation = [];
367
+ model.renderable.getClippingPlaneInDataCoords(model.imagematinv, i, planeEquation);
368
+ for (let j = 0; j < 4; j++) {
421
369
  planeEquations.push(planeEquation[j]);
422
370
  }
423
371
  }
424
-
425
372
  cellBO.getProgram().setUniformi('numClipPlanes', numClipPlanes);
426
373
  cellBO.getProgram().setUniform4fv('clipPlanes', planeEquations);
427
374
  }
428
375
  };
429
-
430
- publicAPI.setCameraShaderParameters = function (cellBO, ren, actor) {
431
- var program = cellBO.getProgram();
432
- var actMats = model.openGLImageSlice.getKeyMatrices();
433
- var image = model.currentInput;
434
- var i2wmat4 = image.getIndexToWorld();
376
+ publicAPI.setCameraShaderParameters = (cellBO, ren, actor) => {
377
+ const program = cellBO.getProgram();
378
+ const actMats = model.openGLImageSlice.getKeyMatrices();
379
+ const image = model.currentInput;
380
+ const i2wmat4 = image.getIndexToWorld();
435
381
  mat4.multiply(model.imagemat, actMats.mcwc, i2wmat4);
436
- var keyMats = model.openGLCamera.getKeyMatrices(ren);
382
+ const keyMats = model.openGLCamera.getKeyMatrices(ren);
437
383
  mat4.multiply(model.imagemat, keyMats.wcpc, model.imagemat);
438
-
439
384
  if (cellBO.getCABO().getCoordShiftAndScaleEnabled()) {
440
- var inverseShiftScaleMat = cellBO.getCABO().getInverseShiftAndScaleMatrix();
385
+ const inverseShiftScaleMat = cellBO.getCABO().getInverseShiftAndScaleMatrix();
441
386
  mat4.multiply(model.imagemat, model.imagemat, inverseShiftScaleMat);
442
387
  }
443
-
444
388
  program.setUniformMatrix('MCPCMatrix', model.imagemat);
445
389
  };
446
-
447
- publicAPI.setPropertyShaderParameters = function (cellBO, ren, actor) {
448
- var program = cellBO.getProgram();
449
- var ppty = actor.getProperty();
450
- var opacity = ppty.getOpacity();
390
+ publicAPI.setPropertyShaderParameters = (cellBO, ren, actor) => {
391
+ const program = cellBO.getProgram();
392
+ const ppty = actor.getProperty();
393
+ const opacity = ppty.getOpacity();
451
394
  program.setUniformf('opacity', opacity);
452
395
  };
453
-
454
- publicAPI.renderPieceStart = function (ren, actor) {
396
+ publicAPI.renderPieceStart = (ren, actor) => {
455
397
  // make sure the BOs are up to date
456
- publicAPI.updateBufferObjects(ren, actor); // Bind the OpenGL, this is shared between the different primitive/cell types.
398
+ publicAPI.updateBufferObjects(ren, actor);
457
399
 
400
+ // Bind the OpenGL, this is shared between the different primitive/cell types.
458
401
  model.lastBoundBO = null;
459
402
  };
403
+ publicAPI.renderPieceDraw = (ren, actor) => {
404
+ const gl = model.context;
460
405
 
461
- publicAPI.renderPieceDraw = function (ren, actor) {
462
- var gl = model.context; // activate the texture
463
-
406
+ // activate the texture
464
407
  model.openGLTexture.activate();
465
408
  model.colorTexture.activate();
466
- model.pwfTexture.activate(); // draw polygons
409
+ model.pwfTexture.activate();
467
410
 
411
+ // draw polygons
468
412
  if (model.tris.getCABO().getElementCount()) {
469
413
  // First we do the triangles, update the shader, set uniforms, etc.
470
414
  publicAPI.updateShaders(model.tris, ren, actor);
471
415
  gl.drawArrays(gl.TRIANGLES, 0, model.tris.getCABO().getElementCount());
472
416
  model.tris.getVAO().release();
473
417
  }
474
-
475
418
  model.openGLTexture.deactivate();
476
419
  model.colorTexture.deactivate();
477
420
  model.pwfTexture.deactivate();
478
421
  };
479
-
480
- publicAPI.renderPieceFinish = function (ren, actor) {};
481
-
482
- publicAPI.renderPiece = function (ren, actor) {
422
+ publicAPI.renderPieceFinish = (ren, actor) => {};
423
+ publicAPI.renderPiece = (ren, actor) => {
483
424
  // Make sure that we have been properly initialized.
484
425
  // if (ren.getRenderWindow().checkAbortStatus()) {
485
426
  // return;
486
427
  // }
428
+
487
429
  publicAPI.invokeEvent({
488
430
  type: 'StartEvent'
489
431
  });
@@ -492,61 +434,49 @@ function vtkOpenGLImageMapper(publicAPI, model) {
492
434
  publicAPI.invokeEvent({
493
435
  type: 'EndEvent'
494
436
  });
495
-
496
437
  if (!model.currentInput) {
497
438
  vtkErrorMacro('No input!');
498
439
  return;
499
440
  }
500
-
501
441
  publicAPI.renderPieceStart(ren, actor);
502
442
  publicAPI.renderPieceDraw(ren, actor);
503
443
  publicAPI.renderPieceFinish(ren, actor);
504
444
  };
505
-
506
- publicAPI.computeBounds = function (ren, actor) {
445
+ publicAPI.computeBounds = (ren, actor) => {
507
446
  if (!publicAPI.getInput()) {
508
447
  uninitializeBounds(model.bounds);
509
448
  return;
510
449
  }
511
-
512
450
  model.bounds = publicAPI.getInput().getBounds();
513
451
  };
514
-
515
- publicAPI.updateBufferObjects = function (ren, actor) {
452
+ publicAPI.updateBufferObjects = (ren, actor) => {
516
453
  // Rebuild buffers if needed
517
454
  if (publicAPI.getNeedToRebuildBufferObjects(ren, actor)) {
518
455
  publicAPI.buildBufferObjects(ren, actor);
519
456
  }
520
457
  };
521
-
522
- publicAPI.getNeedToRebuildBufferObjects = function (ren, actor) {
458
+ publicAPI.getNeedToRebuildBufferObjects = (ren, actor) => {
523
459
  // first do a coarse check
524
460
  if (model.VBOBuildTime.getMTime() < publicAPI.getMTime() || model.VBOBuildTime.getMTime() < actor.getMTime() || model.VBOBuildTime.getMTime() < model.renderable.getMTime() || model.VBOBuildTime.getMTime() < actor.getProperty().getMTime() || model.VBOBuildTime.getMTime() < model.currentInput.getMTime()) {
525
461
  return true;
526
462
  }
527
-
528
463
  return false;
529
464
  };
530
-
531
- publicAPI.buildBufferObjects = function (ren, actor) {
532
- var image = model.currentInput;
533
-
465
+ publicAPI.buildBufferObjects = (ren, actor) => {
466
+ const image = model.currentInput;
534
467
  if (!image) {
535
468
  return;
536
469
  }
537
-
538
- var imgScalars = image.getPointData() && image.getPointData().getScalars();
539
-
470
+ const imgScalars = image.getPointData() && image.getPointData().getScalars();
540
471
  if (!imgScalars) {
541
472
  return;
542
473
  }
474
+ const dataType = imgScalars.getDataType();
475
+ const numComp = imgScalars.getNumberOfComponents();
476
+ const actorProperty = actor.getProperty();
543
477
 
544
- var dataType = imgScalars.getDataType();
545
- var numComp = imgScalars.getNumberOfComponents();
546
- var actorProperty = actor.getProperty(); // set interpolation on the texture based on property setting
547
-
548
- var iType = actorProperty.getInterpolationType();
549
-
478
+ // set interpolation on the texture based on property setting
479
+ const iType = actorProperty.getInterpolationType();
550
480
  if (iType === InterpolationType.NEAREST) {
551
481
  model.colorTexture.setMinificationFilter(Filter.NEAREST);
552
482
  model.colorTexture.setMagnificationFilter(Filter.NEAREST);
@@ -558,144 +488,123 @@ function vtkOpenGLImageMapper(publicAPI, model) {
558
488
  model.pwfTexture.setMinificationFilter(Filter.LINEAR);
559
489
  model.pwfTexture.setMagnificationFilter(Filter.LINEAR);
560
490
  }
561
-
562
- var iComps = actorProperty.getIndependentComponents();
563
- var numIComps = iComps ? numComp : 1;
564
- var textureHeight = iComps ? 2 * numIComps : 1;
565
- var cfunToString = computeFnToString(actorProperty, actorProperty.getRGBTransferFunction, numIComps);
566
-
491
+ const iComps = actorProperty.getIndependentComponents();
492
+ const numIComps = iComps ? numComp : 1;
493
+ const textureHeight = iComps ? 2 * numIComps : 1;
494
+ const cfunToString = computeFnToString(actorProperty, actorProperty.getRGBTransferFunction, numIComps);
567
495
  if (model.colorTextureString !== cfunToString) {
568
- var cWidth = 1024;
569
- var cSize = cWidth * textureHeight * 3;
570
- var cTable = new Uint8Array(cSize);
571
- var cfun = actorProperty.getRGBTransferFunction();
572
-
496
+ const cWidth = 1024;
497
+ const cSize = cWidth * textureHeight * 3;
498
+ const cTable = new Uint8Array(cSize);
499
+ let cfun = actorProperty.getRGBTransferFunction();
573
500
  if (cfun) {
574
- var tmpTable = new Float32Array(cWidth * 3);
575
-
576
- for (var c = 0; c < numIComps; c++) {
501
+ const tmpTable = new Float32Array(cWidth * 3);
502
+ for (let c = 0; c < numIComps; c++) {
577
503
  cfun = actorProperty.getRGBTransferFunction(c);
578
- var cRange = cfun.getRange();
504
+ const cRange = cfun.getRange();
579
505
  cfun.getTable(cRange[0], cRange[1], cWidth, tmpTable, 1);
580
-
581
506
  if (iComps) {
582
- for (var i = 0; i < cWidth * 3; i++) {
507
+ for (let i = 0; i < cWidth * 3; i++) {
583
508
  cTable[c * cWidth * 6 + i] = 255.0 * tmpTable[i];
584
509
  cTable[c * cWidth * 6 + i + cWidth * 3] = 255.0 * tmpTable[i];
585
510
  }
586
511
  } else {
587
- for (var _i4 = 0; _i4 < cWidth * 3; _i4++) {
588
- cTable[c * cWidth * 6 + _i4] = 255.0 * tmpTable[_i4];
512
+ for (let i = 0; i < cWidth * 3; i++) {
513
+ cTable[c * cWidth * 6 + i] = 255.0 * tmpTable[i];
589
514
  }
590
515
  }
591
516
  }
592
-
593
517
  model.colorTexture.create2DFromRaw(cWidth, textureHeight, 3, VtkDataTypes.UNSIGNED_CHAR, cTable);
594
518
  } else {
595
- for (var _i5 = 0; _i5 < cWidth * 3; ++_i5) {
596
- cTable[_i5] = 255.0 * _i5 / ((cWidth - 1) * 3);
597
- cTable[_i5 + 1] = 255.0 * _i5 / ((cWidth - 1) * 3);
598
- cTable[_i5 + 2] = 255.0 * _i5 / ((cWidth - 1) * 3);
519
+ for (let i = 0; i < cWidth * 3; ++i) {
520
+ cTable[i] = 255.0 * i / ((cWidth - 1) * 3);
521
+ cTable[i + 1] = 255.0 * i / ((cWidth - 1) * 3);
522
+ cTable[i + 2] = 255.0 * i / ((cWidth - 1) * 3);
599
523
  }
600
-
601
524
  model.colorTexture.create2DFromRaw(cWidth, 1, 3, VtkDataTypes.UNSIGNED_CHAR, cTable);
602
525
  }
603
-
604
526
  model.colorTextureString = cfunToString;
605
- } // Build piecewise function buffer. This buffer is used either
527
+ }
528
+
529
+ // Build piecewise function buffer. This buffer is used either
606
530
  // for component weighting or opacity, depending on whether we're
607
531
  // rendering components independently or not.
608
-
609
-
610
- var pwfunToString = computeFnToString(actorProperty, actorProperty.getPiecewiseFunction, numIComps);
611
-
532
+ const pwfunToString = computeFnToString(actorProperty, actorProperty.getPiecewiseFunction, numIComps);
612
533
  if (model.pwfTextureString !== pwfunToString) {
613
- var pwfWidth = 1024;
614
- var pwfSize = pwfWidth * textureHeight;
615
- var pwfTable = new Uint8Array(pwfSize);
616
- var pwfun = actorProperty.getPiecewiseFunction(); // support case where pwfun is added/removed
617
-
534
+ const pwfWidth = 1024;
535
+ const pwfSize = pwfWidth * textureHeight;
536
+ const pwfTable = new Uint8Array(pwfSize);
537
+ let pwfun = actorProperty.getPiecewiseFunction();
538
+ // support case where pwfun is added/removed
618
539
  model.pwfTexture.resetFormatAndType();
619
-
620
540
  if (pwfun) {
621
- var pwfFloatTable = new Float32Array(pwfSize);
622
-
623
- var _tmpTable = new Float32Array(pwfWidth);
624
-
625
- for (var _c = 0; _c < numIComps; ++_c) {
626
- pwfun = actorProperty.getPiecewiseFunction(_c);
627
-
541
+ const pwfFloatTable = new Float32Array(pwfSize);
542
+ const tmpTable = new Float32Array(pwfWidth);
543
+ for (let c = 0; c < numIComps; ++c) {
544
+ pwfun = actorProperty.getPiecewiseFunction(c);
628
545
  if (pwfun === null) {
629
546
  // Piecewise constant max if no function supplied for this component
630
547
  pwfFloatTable.fill(1.0);
631
548
  } else {
632
- var pwfRange = pwfun.getRange();
633
- pwfun.getTable(pwfRange[0], pwfRange[1], pwfWidth, _tmpTable, 1); // adjust for sample distance etc
634
-
549
+ const pwfRange = pwfun.getRange();
550
+ pwfun.getTable(pwfRange[0], pwfRange[1], pwfWidth, tmpTable, 1);
551
+ // adjust for sample distance etc
635
552
  if (iComps) {
636
- for (var _i6 = 0; _i6 < pwfWidth; _i6++) {
637
- pwfFloatTable[_c * pwfWidth * 2 + _i6] = _tmpTable[_i6];
638
- pwfFloatTable[_c * pwfWidth * 2 + _i6 + pwfWidth] = _tmpTable[_i6];
553
+ for (let i = 0; i < pwfWidth; i++) {
554
+ pwfFloatTable[c * pwfWidth * 2 + i] = tmpTable[i];
555
+ pwfFloatTable[c * pwfWidth * 2 + i + pwfWidth] = tmpTable[i];
639
556
  }
640
557
  } else {
641
- for (var _i7 = 0; _i7 < pwfWidth; _i7++) {
642
- pwfFloatTable[_c * pwfWidth * 2 + _i7] = _tmpTable[_i7];
558
+ for (let i = 0; i < pwfWidth; i++) {
559
+ pwfFloatTable[c * pwfWidth * 2 + i] = tmpTable[i];
643
560
  }
644
561
  }
645
562
  }
646
563
  }
647
-
648
564
  model.pwfTexture.create2DFromRaw(pwfWidth, textureHeight, 1, VtkDataTypes.FLOAT, pwfFloatTable);
649
565
  } else {
650
566
  // default is opaque
651
567
  pwfTable.fill(255.0);
652
568
  model.pwfTexture.create2DFromRaw(pwfWidth, 1, 1, VtkDataTypes.UNSIGNED_CHAR, pwfTable);
653
569
  }
654
-
655
570
  model.pwfTextureString = pwfunToString;
656
- } // Find what IJK axis and what direction to slice along
657
-
658
-
659
- var _model$renderable$get = model.renderable.getClosestIJKAxis(),
660
- ijkMode = _model$renderable$get.ijkMode; // Find the IJK slice
661
-
571
+ }
662
572
 
663
- var slice = model.renderable.getSlice();
573
+ // Find what IJK axis and what direction to slice along
574
+ const {
575
+ ijkMode
576
+ } = model.renderable.getClosestIJKAxis();
664
577
 
578
+ // Find the IJK slice
579
+ let slice = model.renderable.getSlice();
665
580
  if (ijkMode !== model.renderable.getSlicingMode()) {
666
581
  // If not IJK slicing, get the IJK slice from the XYZ position/slice
667
582
  slice = model.renderable.getSliceAtPosition(slice);
668
- } // Use sub-Slice number/offset if mapper being used is vtkImageArrayMapper,
669
- // since this mapper uses a collection of vtkImageData (and not just a single vtkImageData).
670
-
671
-
672
- var nSlice = model.renderable.isA('vtkImageArrayMapper') ? model.renderable.getSubSlice() // get subSlice of the current (possibly multi-frame) image
673
- : Math.round(slice); // Find sliceOffset
583
+ }
674
584
 
675
- var ext = image.getExtent();
676
- var sliceOffset;
585
+ // Use sub-Slice number/offset if mapper being used is vtkImageArrayMapper,
586
+ // since this mapper uses a collection of vtkImageData (and not just a single vtkImageData).
587
+ const nSlice = model.renderable.isA('vtkImageArrayMapper') ? model.renderable.getSubSlice() // get subSlice of the current (possibly multi-frame) image
588
+ : Math.round(slice);
677
589
 
590
+ // Find sliceOffset
591
+ const ext = image.getExtent();
592
+ let sliceOffset;
678
593
  if (ijkMode === SlicingMode.I) {
679
594
  sliceOffset = nSlice - ext[0];
680
595
  }
681
-
682
596
  if (ijkMode === SlicingMode.J) {
683
597
  sliceOffset = nSlice - ext[2];
684
598
  }
685
-
686
599
  if (ijkMode === SlicingMode.K || ijkMode === SlicingMode.NONE) {
687
600
  sliceOffset = nSlice - ext[4];
688
- } // rebuild the VBO if the data has changed
689
-
690
-
691
- var toString = "".concat(slice, "A").concat(image.getMTime(), "A").concat(imgScalars.getMTime(), "B").concat(publicAPI.getMTime(), "C").concat(model.renderable.getSlicingMode(), "D").concat(actor.getProperty().getInterpolationType());
601
+ }
692
602
 
603
+ // rebuild the VBO if the data has changed
604
+ const toString = `${slice}A${image.getMTime()}A${imgScalars.getMTime()}B${publicAPI.getMTime()}C${model.renderable.getSlicingMode()}D${actor.getProperty().getInterpolationType()}`;
693
605
  if (model.VBOBuildString !== toString) {
694
- var _model$renderable$get2, _model$renderable;
695
-
696
606
  // Build the VBOs
697
- var dims = image.getDimensions();
698
-
607
+ const dims = image.getDimensions();
699
608
  if (iType === InterpolationType.NEAREST) {
700
609
  if (new Set([1, 3, 4]).has(numComp) && dataType === VtkDataTypes.UNSIGNED_CHAR && !iComps) {
701
610
  model.openGLTexture.setGenerateMipmap(true);
@@ -703,7 +612,6 @@ function vtkOpenGLImageMapper(publicAPI, model) {
703
612
  } else {
704
613
  model.openGLTexture.setMinificationFilter(Filter.NEAREST);
705
614
  }
706
-
707
615
  model.openGLTexture.setMagnificationFilter(Filter.NEAREST);
708
616
  } else {
709
617
  if (numComp === 4 && dataType === VtkDataTypes.UNSIGNED_CHAR && !iComps) {
@@ -712,45 +620,39 @@ function vtkOpenGLImageMapper(publicAPI, model) {
712
620
  } else {
713
621
  model.openGLTexture.setMinificationFilter(Filter.LINEAR);
714
622
  }
715
-
716
623
  model.openGLTexture.setMagnificationFilter(Filter.LINEAR);
717
624
  }
718
-
719
625
  model.openGLTexture.setWrapS(Wrap.CLAMP_TO_EDGE);
720
626
  model.openGLTexture.setWrapT(Wrap.CLAMP_TO_EDGE);
721
- var sliceSize = dims[0] * dims[1] * numComp;
722
- var ptsArray = new Float32Array(12);
723
- var tcoordArray = new Float32Array(8);
724
-
725
- for (var _i8 = 0; _i8 < 4; _i8++) {
726
- tcoordArray[_i8 * 2] = _i8 % 2 ? 1.0 : 0.0;
727
- tcoordArray[_i8 * 2 + 1] = _i8 > 1 ? 1.0 : 0.0;
728
- } // Determine depth position of the slicing plane in the scene.
627
+ const sliceSize = dims[0] * dims[1] * numComp;
628
+ const ptsArray = new Float32Array(12);
629
+ const tcoordArray = new Float32Array(8);
630
+ for (let i = 0; i < 4; i++) {
631
+ tcoordArray[i * 2] = i % 2 ? 1.0 : 0.0;
632
+ tcoordArray[i * 2 + 1] = i > 1 ? 1.0 : 0.0;
633
+ }
634
+
635
+ // Determine depth position of the slicing plane in the scene.
729
636
  // Slicing modes X, Y, and Z use a continuous axis position, whereas
730
637
  // slicing modes I, J, and K should use discrete positions.
731
-
732
-
733
- var sliceDepth = [SlicingMode.X, SlicingMode.Y, SlicingMode.Z].includes(model.renderable.getSlicingMode()) ? slice : nSlice;
734
- var spatialExt = image.getSpatialExtent();
735
- var basicScalars = imgScalars.getData();
736
- var scalars = null; // Get right scalars according to slicing mode
737
-
638
+ const sliceDepth = [SlicingMode.X, SlicingMode.Y, SlicingMode.Z].includes(model.renderable.getSlicingMode()) ? slice : nSlice;
639
+ const spatialExt = image.getSpatialExtent();
640
+ const basicScalars = imgScalars.getData();
641
+ let scalars = null;
642
+ // Get right scalars according to slicing mode
738
643
  if (ijkMode === SlicingMode.I) {
739
644
  scalars = new basicScalars.constructor(dims[2] * dims[1] * numComp);
740
- var id = 0;
741
-
742
- for (var k = 0; k < dims[2]; k++) {
743
- for (var j = 0; j < dims[1]; j++) {
744
- var bsIdx = (sliceOffset + j * dims[0] + k * dims[0] * dims[1]) * numComp;
645
+ let id = 0;
646
+ for (let k = 0; k < dims[2]; k++) {
647
+ for (let j = 0; j < dims[1]; j++) {
648
+ let bsIdx = (sliceOffset + j * dims[0] + k * dims[0] * dims[1]) * numComp;
745
649
  id = (k * dims[1] + j) * numComp;
746
- var end = bsIdx + numComp;
747
-
650
+ const end = bsIdx + numComp;
748
651
  while (bsIdx < end) {
749
652
  scalars[id++] = basicScalars[bsIdx++];
750
653
  }
751
654
  }
752
655
  }
753
-
754
656
  dims[0] = dims[1];
755
657
  dims[1] = dims[2];
756
658
  ptsArray[0] = sliceDepth;
@@ -767,22 +669,17 @@ function vtkOpenGLImageMapper(publicAPI, model) {
767
669
  ptsArray[11] = spatialExt[5];
768
670
  } else if (ijkMode === SlicingMode.J) {
769
671
  scalars = new basicScalars.constructor(dims[2] * dims[0] * numComp);
770
- var _id = 0;
771
-
772
- for (var _k = 0; _k < dims[2]; _k++) {
773
- for (var _i9 = 0; _i9 < dims[0]; _i9++) {
774
- var _bsIdx = (_i9 + sliceOffset * dims[0] + _k * dims[0] * dims[1]) * numComp;
775
-
776
- _id = (_k * dims[0] + _i9) * numComp;
777
-
778
- var _end = _bsIdx + numComp;
779
-
780
- while (_bsIdx < _end) {
781
- scalars[_id++] = basicScalars[_bsIdx++];
672
+ let id = 0;
673
+ for (let k = 0; k < dims[2]; k++) {
674
+ for (let i = 0; i < dims[0]; i++) {
675
+ let bsIdx = (i + sliceOffset * dims[0] + k * dims[0] * dims[1]) * numComp;
676
+ id = (k * dims[0] + i) * numComp;
677
+ const end = bsIdx + numComp;
678
+ while (bsIdx < end) {
679
+ scalars[id++] = basicScalars[bsIdx++];
782
680
  }
783
681
  }
784
682
  }
785
-
786
683
  dims[1] = dims[2];
787
684
  ptsArray[0] = spatialExt[0];
788
685
  ptsArray[1] = sliceDepth;
@@ -813,22 +710,21 @@ function vtkOpenGLImageMapper(publicAPI, model) {
813
710
  } else {
814
711
  vtkErrorMacro('Reformat slicing not yet supported.');
815
712
  }
816
-
817
- model.openGLTexture.create2DFilterableFromRaw(dims[0], dims[1], numComp, imgScalars.getDataType(), scalars, (_model$renderable$get2 = (_model$renderable = model.renderable).getPreferSizeOverAccuracy) === null || _model$renderable$get2 === void 0 ? void 0 : _model$renderable$get2.call(_model$renderable));
713
+ model.openGLTexture.create2DFilterableFromRaw(dims[0], dims[1], numComp, imgScalars.getDataType(), scalars, model.renderable.getPreferSizeOverAccuracy?.());
818
714
  model.openGLTexture.activate();
819
715
  model.openGLTexture.sendParameters();
820
716
  model.openGLTexture.deactivate();
821
- var points = vtkDataArray.newInstance({
717
+ const points = vtkDataArray.newInstance({
822
718
  numberOfComponents: 3,
823
719
  values: ptsArray
824
720
  });
825
721
  points.setName('points');
826
- var tcoords = vtkDataArray.newInstance({
722
+ const tcoords = vtkDataArray.newInstance({
827
723
  numberOfComponents: 2,
828
724
  values: tcoordArray
829
725
  });
830
726
  tcoords.setName('tcoords');
831
- var cellArray = new Uint16Array(8);
727
+ const cellArray = new Uint16Array(8);
832
728
  cellArray[0] = 3;
833
729
  cellArray[1] = 0;
834
730
  cellArray[2] = 1;
@@ -837,25 +733,26 @@ function vtkOpenGLImageMapper(publicAPI, model) {
837
733
  cellArray[5] = 0;
838
734
  cellArray[6] = 3;
839
735
  cellArray[7] = 2;
840
- var cells = vtkDataArray.newInstance({
736
+ const cells = vtkDataArray.newInstance({
841
737
  numberOfComponents: 1,
842
738
  values: cellArray
843
739
  });
844
740
  model.tris.getCABO().createVBO(cells, 'polys', Representation.SURFACE, {
845
- points: points,
846
- tcoords: tcoords,
741
+ points,
742
+ tcoords,
847
743
  cellOffset: 0
848
744
  });
849
745
  model.VBOBuildTime.modified();
850
746
  model.VBOBuildString = toString;
851
747
  }
852
748
  };
853
- } // ----------------------------------------------------------------------------
749
+ }
750
+
751
+ // ----------------------------------------------------------------------------
854
752
  // Object factory
855
753
  // ----------------------------------------------------------------------------
856
754
 
857
-
858
- var DEFAULT_VALUES = {
755
+ const DEFAULT_VALUES = {
859
756
  VBOBuildTime: 0,
860
757
  VBOBuildString: null,
861
758
  openGLTexture: null,
@@ -867,12 +764,15 @@ var DEFAULT_VALUES = {
867
764
  lastHaveSeenDepthRequest: false,
868
765
  haveSeenDepthRequest: false,
869
766
  lastTextureComponents: 0
870
- }; // ----------------------------------------------------------------------------
767
+ };
768
+
769
+ // ----------------------------------------------------------------------------
871
770
 
872
771
  function extend(publicAPI, model) {
873
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
874
- Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance
772
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
773
+ Object.assign(model, DEFAULT_VALUES, initialValues);
875
774
 
775
+ // Inheritance
876
776
  vtkViewNode.extend(publicAPI, model, initialValues);
877
777
  vtkReplacementShaderMapper.implementReplaceShaderCoincidentOffset(publicAPI, model, initialValues);
878
778
  vtkReplacementShaderMapper.implementBuildShadersWithReplacements(publicAPI, model, initialValues);
@@ -887,22 +787,29 @@ function extend(publicAPI, model) {
887
787
  resizable: true
888
788
  });
889
789
  model.imagemat = mat4.identity(new Float64Array(16));
890
- model.imagematinv = mat4.identity(new Float64Array(16)); // Build VTK API
790
+ model.imagematinv = mat4.identity(new Float64Array(16));
891
791
 
792
+ // Build VTK API
892
793
  setGet(publicAPI, model, []);
893
794
  model.VBOBuildTime = {};
894
- obj(model.VBOBuildTime); // Object methods
795
+ obj(model.VBOBuildTime);
895
796
 
797
+ // Object methods
896
798
  vtkOpenGLImageMapper(publicAPI, model);
897
- } // ----------------------------------------------------------------------------
799
+ }
800
+
801
+ // ----------------------------------------------------------------------------
898
802
 
899
- var newInstance = newInstance$1(extend, 'vtkOpenGLImageMapper'); // ----------------------------------------------------------------------------
803
+ const newInstance = newInstance$1(extend, 'vtkOpenGLImageMapper');
804
+
805
+ // ----------------------------------------------------------------------------
900
806
 
901
807
  var vtkImageMapper = {
902
- newInstance: newInstance,
903
- extend: extend
904
- }; // Register ourself to OpenGL backend if imported
808
+ newInstance,
809
+ extend
810
+ };
905
811
 
812
+ // Register ourself to OpenGL backend if imported
906
813
  registerOverride('vtkAbstractImageMapper', newInstance);
907
814
 
908
815
  export { vtkImageMapper as default, extend, newInstance };