@kitware/vtk.js 28.10.2 → 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 (565) 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 +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/Rendering/Core/AbstractImageMapper/helper.js +44 -49
  278. package/Rendering/Core/AbstractImageMapper.js +18 -19
  279. package/Rendering/Core/AbstractMapper.js +39 -55
  280. package/Rendering/Core/AbstractMapper3D.js +26 -31
  281. package/Rendering/Core/AbstractPicker.js +25 -21
  282. package/Rendering/Core/Actor.js +71 -93
  283. package/Rendering/Core/Actor2D.js +64 -78
  284. package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
  285. package/Rendering/Core/AnnotatedCubeActor.js +94 -79
  286. package/Rendering/Core/AxesActor.js +65 -87
  287. package/Rendering/Core/Camera.js +246 -271
  288. package/Rendering/Core/CellPicker.js +125 -148
  289. package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
  290. package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
  291. package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
  292. package/Rendering/Core/ColorTransferFunction.js +460 -546
  293. package/Rendering/Core/Coordinate/Constants.js +2 -2
  294. package/Rendering/Core/Coordinate.js +119 -198
  295. package/Rendering/Core/CubeAxesActor.js +294 -320
  296. package/Rendering/Core/Follower.js +46 -45
  297. package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
  298. package/Rendering/Core/Glyph3DMapper.js +96 -148
  299. package/Rendering/Core/HardwareSelector.js +36 -69
  300. package/Rendering/Core/ImageArrayMapper.js +87 -126
  301. package/Rendering/Core/ImageCPRMapper.js +134 -209
  302. package/Rendering/Core/ImageMapper/Constants.js +2 -2
  303. package/Rendering/Core/ImageMapper.js +85 -144
  304. package/Rendering/Core/ImageProperty/Constants.js +2 -2
  305. package/Rendering/Core/ImageProperty.js +66 -81
  306. package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
  307. package/Rendering/Core/ImageResliceMapper.js +36 -29
  308. package/Rendering/Core/ImageSlice.js +85 -127
  309. package/Rendering/Core/InteractorObserver.js +82 -73
  310. package/Rendering/Core/InteractorStyle/Constants.js +2 -2
  311. package/Rendering/Core/InteractorStyle.js +56 -58
  312. package/Rendering/Core/Light.js +43 -49
  313. package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
  314. package/Rendering/Core/Mapper/Constants.js +6 -6
  315. package/Rendering/Core/Mapper/Static.js +15 -12
  316. package/Rendering/Core/Mapper.js +194 -259
  317. package/Rendering/Core/Mapper2D.js +61 -100
  318. package/Rendering/Core/Picker.js +124 -143
  319. package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
  320. package/Rendering/Core/PointPicker.js +68 -79
  321. package/Rendering/Core/Prop/Constants.js +2 -2
  322. package/Rendering/Core/Prop.js +58 -106
  323. package/Rendering/Core/Prop3D.js +54 -83
  324. package/Rendering/Core/Property/Constants.js +6 -6
  325. package/Rendering/Core/Property.js +45 -74
  326. package/Rendering/Core/Property2D/Constants.js +2 -2
  327. package/Rendering/Core/Property2D.js +33 -42
  328. package/Rendering/Core/RenderWindow.js +70 -82
  329. package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
  330. package/Rendering/Core/RenderWindowInteractor.js +324 -439
  331. package/Rendering/Core/Renderer.js +192 -256
  332. package/Rendering/Core/ScalarBarActor.js +267 -272
  333. package/Rendering/Core/Skybox.js +26 -24
  334. package/Rendering/Core/SphereMapper.js +22 -12
  335. package/Rendering/Core/StickMapper.js +22 -12
  336. package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
  337. package/Rendering/Core/SurfaceLICInterface.js +13 -9
  338. package/Rendering/Core/SurfaceLICMapper.js +23 -15
  339. package/Rendering/Core/Texture.js +99 -141
  340. package/Rendering/Core/Viewport.js +60 -88
  341. package/Rendering/Core/Volume.js +55 -77
  342. package/Rendering/Core/VolumeMapper/Constants.js +4 -4
  343. package/Rendering/Core/VolumeMapper.js +59 -91
  344. package/Rendering/Core/VolumeProperty/Constants.js +4 -4
  345. package/Rendering/Core/VolumeProperty.js +78 -115
  346. package/Rendering/Core.js +47 -49
  347. package/Rendering/Misc/CanvasView.js +62 -61
  348. package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
  349. package/Rendering/Misc/GenericRenderWindow.js +48 -37
  350. package/Rendering/Misc/RemoteView.js +86 -80
  351. package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
  352. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
  353. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
  354. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
  355. package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
  356. package/Rendering/Misc/TextureLODsDownloader.js +72 -74
  357. package/Rendering/Misc.js +7 -7
  358. package/Rendering/OpenGL/Actor.js +57 -68
  359. package/Rendering/OpenGL/Actor2D.js +56 -56
  360. package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
  361. package/Rendering/OpenGL/BufferObject.js +50 -65
  362. package/Rendering/OpenGL/Camera.js +35 -29
  363. package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
  364. package/Rendering/OpenGL/Convolution2DPass.js +87 -81
  365. package/Rendering/OpenGL/CubeAxesActor.js +28 -21
  366. package/Rendering/OpenGL/ForwardPass.js +53 -64
  367. package/Rendering/OpenGL/Framebuffer.js +61 -101
  368. package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
  369. package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
  370. package/Rendering/OpenGL/HardwareSelector.js +272 -397
  371. package/Rendering/OpenGL/Helper.js +58 -73
  372. package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
  373. package/Rendering/OpenGL/ImageMapper.js +268 -361
  374. package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
  375. package/Rendering/OpenGL/ImageSlice.js +48 -54
  376. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
  377. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
  378. package/Rendering/OpenGL/PolyDataMapper.js +358 -492
  379. package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
  380. package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
  381. package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
  382. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
  383. package/Rendering/OpenGL/RenderWindow.js +356 -510
  384. package/Rendering/OpenGL/Renderer.js +77 -89
  385. package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
  386. package/Rendering/OpenGL/ScalarBarActor.js +28 -21
  387. package/Rendering/OpenGL/Shader.js +37 -31
  388. package/Rendering/OpenGL/ShaderCache.js +67 -74
  389. package/Rendering/OpenGL/ShaderProgram.js +136 -248
  390. package/Rendering/OpenGL/Skybox.js +99 -60
  391. package/Rendering/OpenGL/SphereMapper.js +94 -108
  392. package/Rendering/OpenGL/StickMapper.js +110 -114
  393. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
  394. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
  395. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
  396. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
  397. package/Rendering/OpenGL/SurfaceLIC.js +2 -2
  398. package/Rendering/OpenGL/Texture/Constants.js +4 -4
  399. package/Rendering/OpenGL/Texture.js +443 -608
  400. package/Rendering/OpenGL/TextureUnitManager.js +47 -43
  401. package/Rendering/OpenGL/VertexArrayObject.js +92 -131
  402. package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
  403. package/Rendering/OpenGL/Volume.js +38 -34
  404. package/Rendering/OpenGL/VolumeMapper.js +437 -547
  405. package/Rendering/OpenGL.js +28 -28
  406. package/Rendering/SceneGraph/RenderPass.js +34 -31
  407. package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
  408. package/Rendering/SceneGraph/ViewNode.js +82 -111
  409. package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
  410. package/Rendering/SceneGraph.js +4 -4
  411. package/Rendering/WebGPU/Actor.js +49 -49
  412. package/Rendering/WebGPU/Actor2D.js +45 -44
  413. package/Rendering/WebGPU/BindGroup.js +43 -50
  414. package/Rendering/WebGPU/Buffer.js +41 -50
  415. package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
  416. package/Rendering/WebGPU/BufferManager.js +111 -141
  417. package/Rendering/WebGPU/Camera.js +65 -67
  418. package/Rendering/WebGPU/CellArrayMapper.js +621 -388
  419. package/Rendering/WebGPU/CubeAxesActor.js +28 -19
  420. package/Rendering/WebGPU/Device.js +78 -133
  421. package/Rendering/WebGPU/ForwardPass.js +75 -72
  422. package/Rendering/WebGPU/FullScreenQuad.js +25 -18
  423. package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
  424. package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
  425. package/Rendering/WebGPU/HardwareSelector.js +200 -276
  426. package/Rendering/WebGPU/ImageMapper.js +180 -171
  427. package/Rendering/WebGPU/ImageSlice.js +45 -44
  428. package/Rendering/WebGPU/IndexBuffer.js +166 -200
  429. package/Rendering/WebGPU/OpaquePass.js +37 -36
  430. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
  431. package/Rendering/WebGPU/Pipeline.js +37 -51
  432. package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
  433. package/Rendering/WebGPU/PolyDataMapper.js +50 -53
  434. package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
  435. package/Rendering/WebGPU/RenderEncoder.js +68 -88
  436. package/Rendering/WebGPU/RenderWindow.js +262 -376
  437. package/Rendering/WebGPU/Renderer.js +224 -208
  438. package/Rendering/WebGPU/Sampler.js +27 -21
  439. package/Rendering/WebGPU/ScalarBarActor.js +28 -19
  440. package/Rendering/WebGPU/ShaderCache.js +43 -41
  441. package/Rendering/WebGPU/ShaderDescription.js +52 -59
  442. package/Rendering/WebGPU/ShaderModule.js +26 -17
  443. package/Rendering/WebGPU/SimpleMapper.js +185 -121
  444. package/Rendering/WebGPU/SphereMapper.js +200 -130
  445. package/Rendering/WebGPU/StickMapper.js +289 -152
  446. package/Rendering/WebGPU/StorageBuffer.js +100 -115
  447. package/Rendering/WebGPU/Texture.js +79 -99
  448. package/Rendering/WebGPU/TextureManager.js +52 -54
  449. package/Rendering/WebGPU/TextureView.js +40 -43
  450. package/Rendering/WebGPU/Types.js +53 -70
  451. package/Rendering/WebGPU/UniformBuffer.js +158 -184
  452. package/Rendering/WebGPU/VertexInput.js +64 -90
  453. package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
  454. package/Rendering/WebGPU/Volume.js +52 -51
  455. package/Rendering/WebGPU/VolumePass.js +218 -239
  456. package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
  457. package/Rendering/WebGPU.js +1 -1
  458. package/Rendering/index.js +5 -5
  459. package/Widgets/Core/AbstractWidget/Constants.js +2 -2
  460. package/Widgets/Core/AbstractWidget.js +49 -58
  461. package/Widgets/Core/AbstractWidgetFactory.js +101 -122
  462. package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
  463. package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
  464. package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
  465. package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
  466. package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
  467. package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
  468. package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
  469. package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
  470. package/Widgets/Core/StateBuilder/originMixin.js +25 -32
  471. package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
  472. package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
  473. package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
  474. package/Widgets/Core/StateBuilder/textMixin.js +10 -6
  475. package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
  476. package/Widgets/Core/StateBuilder.js +120 -149
  477. package/Widgets/Core/WidgetManager/Constants.js +7 -7
  478. package/Widgets/Core/WidgetManager.js +249 -421
  479. package/Widgets/Core/WidgetState.js +48 -57
  480. package/Widgets/Core.js +5 -5
  481. package/Widgets/Manipulators/AbstractManipulator.js +20 -14
  482. package/Widgets/Manipulators/CPRManipulator.js +55 -71
  483. package/Widgets/Manipulators/LineManipulator.js +31 -28
  484. package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
  485. package/Widgets/Manipulators/PickerManipulator.js +65 -0
  486. package/Widgets/Manipulators/PlaneManipulator.js +26 -23
  487. package/Widgets/Manipulators/TrackballManipulator.js +39 -35
  488. package/Widgets/Manipulators.js +4 -2
  489. package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
  490. package/Widgets/Representations/CircleContextRepresentation.js +44 -38
  491. package/Widgets/Representations/ContextRepresentation.js +17 -14
  492. package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
  493. package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
  494. package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
  495. package/Widgets/Representations/GlyphRepresentation.js +107 -152
  496. package/Widgets/Representations/HandleRepresentation.js +17 -14
  497. package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
  498. package/Widgets/Representations/LineHandleRepresentation.js +44 -41
  499. package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
  500. package/Widgets/Representations/PolyLineRepresentation.js +60 -75
  501. package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
  502. package/Widgets/Representations/SphereContextRepresentation.js +19 -27
  503. package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
  504. package/Widgets/Representations/SplineContextRepresentation.js +46 -70
  505. package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
  506. package/Widgets/Representations/WidgetRepresentation.js +99 -134
  507. package/Widgets/Representations.js +13 -13
  508. package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
  509. package/Widgets/Widgets3D/AngleWidget.js +40 -38
  510. package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
  511. package/Widgets/Widgets3D/DistanceWidget.js +38 -36
  512. package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
  513. package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
  514. package/Widgets/Widgets3D/EllipseWidget.js +37 -26
  515. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
  516. package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
  517. package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
  518. package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
  519. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
  520. package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
  521. package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
  522. package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
  523. package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
  524. package/Widgets/Widgets3D/LabelWidget.js +31 -25
  525. package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
  526. package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
  527. package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
  528. package/Widgets/Widgets3D/LineWidget/state.js +2 -1
  529. package/Widgets/Widgets3D/LineWidget.js +39 -35
  530. package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
  531. package/Widgets/Widgets3D/PaintWidget.js +39 -37
  532. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
  533. package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
  534. package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
  535. package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
  536. package/Widgets/Widgets3D/RectangleWidget.js +37 -25
  537. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
  538. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +133 -209
  539. package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
  540. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
  541. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
  542. package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
  543. package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
  544. package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
  545. package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
  546. package/Widgets/Widgets3D/SeedWidget.js +43 -0
  547. package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
  548. package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
  549. package/Widgets/Widgets3D/ShapeWidget.js +24 -27
  550. package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
  551. package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
  552. package/Widgets/Widgets3D/SphereWidget.js +34 -44
  553. package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
  554. package/Widgets/Widgets3D/SplineWidget.js +43 -39
  555. package/Widgets/Widgets3D.js +15 -15
  556. package/Widgets/index.js +4 -4
  557. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
  558. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
  559. package/favicon.js +5 -6
  560. package/index.d.ts +4 -2
  561. package/index.js +4 -3
  562. package/macros.js +4 -1931
  563. package/macros2.js +1684 -0
  564. package/package.json +6 -6
  565. package/vtk.js +18 -31
@@ -1,8 +1,6 @@
1
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
1
  import * as d3 from 'd3-scale';
4
2
  import { N as nearestPowerOfTwo } from '../../Common/Core/Math/index.js';
5
- import macro from '../../macros.js';
3
+ import { m as macro } from '../../macros2.js';
6
4
  import vtkActor from './Actor.js';
7
5
  import vtkDataArray from '../../Common/Core/DataArray.js';
8
6
  import vtkScalarsToColors from '../../Common/Core/ScalarsToColors.js';
@@ -10,10 +8,11 @@ import vtkMapper from './Mapper.js';
10
8
  import vtkPolyData from '../../Common/DataModel/PolyData.js';
11
9
  import vtkTexture from './Texture.js';
12
10
 
13
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+ const {
12
+ VectorMode
13
+ } = vtkScalarsToColors;
14
14
 
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
- var VectorMode = vtkScalarsToColors.VectorMode; // ----------------------------------------------------------------------------
15
+ // ----------------------------------------------------------------------------
17
16
  // vtkScalarBarActor
18
17
  //
19
18
  // Note log scales are currently not supported
@@ -33,10 +32,13 @@ function applyTextStyle(ctx, style) {
33
32
  ctx.strokeStyle = style.strokeColor;
34
33
  ctx.lineWidth = style.strokeSize;
35
34
  ctx.fillStyle = style.fontColor;
36
- ctx.font = "".concat(style.fontStyle, " ").concat(style.fontSize, "px ").concat(style.fontFamily);
37
- } // ----------------------------------------------------------------------------
35
+ ctx.font = `${style.fontStyle} ${style.fontSize}px ${style.fontFamily}`;
36
+ }
37
+
38
+ // ----------------------------------------------------------------------------
38
39
  // Default autoLayout function
39
40
  // ----------------------------------------------------------------------------
41
+
40
42
  // compute good values to use based on window size etc a bunch of heuristics
41
43
  // here with hand tuned constants These values worked for me but really this
42
44
  // method could be redically changed. The basic gist is
@@ -53,41 +55,42 @@ function applyTextStyle(ctx, style) {
53
55
  // instance that is provided as those values are the ones that will be used
54
56
  // for rendering.
55
57
  //
56
-
57
-
58
58
  function defaultAutoLayout(publicAPI, model) {
59
- return function (helper) {
59
+ return helper => {
60
60
  // we don't do a linear scale, the proportions for
61
61
  // a 700 pixel window differ from a 1400
62
- var lastSize = helper.getLastSize();
63
- var xAxisAdjust = Math.pow(lastSize[0] / 700, 0.8);
64
- var yAxisAdjust = Math.pow(lastSize[1] / 700, 0.8);
65
- var minAdjust = Math.min(xAxisAdjust, yAxisAdjust);
66
- var axisTextStyle = helper.getAxisTextStyle();
67
- var tickTextStyle = helper.getTickTextStyle();
62
+ const lastSize = helper.getLastSize();
63
+ const xAxisAdjust = (lastSize[0] / 700) ** 0.8;
64
+ const yAxisAdjust = (lastSize[1] / 700) ** 0.8;
65
+ const minAdjust = Math.min(xAxisAdjust, yAxisAdjust);
66
+ const axisTextStyle = helper.getAxisTextStyle();
67
+ const tickTextStyle = helper.getTickTextStyle();
68
68
  Object.assign(axisTextStyle, model.axisTextStyle);
69
- Object.assign(tickTextStyle, model.tickTextStyle); // compute a reasonable font size first
69
+ Object.assign(tickTextStyle, model.tickTextStyle);
70
70
 
71
+ // compute a reasonable font size first
71
72
  axisTextStyle.fontSize = Math.max(24 * minAdjust, 12);
72
-
73
73
  if (helper.getLastAspectRatio() > 1.0) {
74
74
  tickTextStyle.fontSize = Math.max(20 * minAdjust, 10);
75
75
  } else {
76
76
  tickTextStyle.fontSize = Math.max(16 * minAdjust, 10);
77
- } // rebuild the text atlas
77
+ }
78
78
 
79
+ // rebuild the text atlas
80
+ const textSizes = helper.updateTextureAtlas();
79
81
 
80
- var textSizes = helper.updateTextureAtlas(); // now compute the boxSize and pixel offsets, different algorithm
82
+ // now compute the boxSize and pixel offsets, different algorithm
81
83
  // for horizonal versus vertical
82
-
83
84
  helper.setTopTitle(false);
84
- var boxSize = helper.getBoxSizeByReference(); // if vertical
85
+ const boxSize = helper.getBoxSizeByReference();
85
86
 
87
+ // if vertical
86
88
  if (helper.getLastAspectRatio() > 1.0) {
87
- helper.setTickLabelPixelOffset(0.3 * tickTextStyle.fontSize); // if the title will fit within the width of the bar then that looks
89
+ helper.setTickLabelPixelOffset(0.3 * tickTextStyle.fontSize);
90
+
91
+ // if the title will fit within the width of the bar then that looks
88
92
  // nicer to put it at the top (helper.topTitle), otherwise rotate it
89
93
  // and place it sideways
90
-
91
94
  if (textSizes.titleWidth <= textSizes.tickWidth + helper.getTickLabelPixelOffset() + 0.8 * tickTextStyle.fontSize) {
92
95
  helper.setTopTitle(true);
93
96
  helper.setAxisTitlePixelOffset(0.2 * tickTextStyle.fontSize);
@@ -98,60 +101,59 @@ function defaultAutoLayout(publicAPI, model) {
98
101
  boxSize[0] = 2.0 * (textSizes.titleHeight + helper.getAxisTitlePixelOffset() + textSizes.tickWidth + helper.getTickLabelPixelOffset() + 0.8 * tickTextStyle.fontSize) / lastSize[0];
99
102
  helper.setBoxPosition([0.99 - boxSize[0], -0.92]);
100
103
  }
101
-
102
104
  boxSize[1] = Math.max(1.2, Math.min(1.84 / yAxisAdjust, 1.84));
103
105
  } else {
104
106
  // horizontal
105
107
  helper.setAxisTitlePixelOffset(1.2 * tickTextStyle.fontSize);
106
108
  helper.setTickLabelPixelOffset(0.1 * tickTextStyle.fontSize);
107
- var titleHeight = // total offset from top of bar (includes ticks)
109
+ const titleHeight =
110
+ // total offset from top of bar (includes ticks)
108
111
  2.0 * (0.8 * tickTextStyle.fontSize + textSizes.titleHeight + helper.getAxisTitlePixelOffset()) / lastSize[1];
109
- var tickWidth = 2.0 * textSizes.tickWidth / lastSize[0];
112
+ const tickWidth = 2.0 * textSizes.tickWidth / lastSize[0];
110
113
  boxSize[0] = Math.min(1.9, Math.max(1.4, 1.4 * tickWidth * (helper.getTicks().length + 3)));
111
114
  boxSize[1] = titleHeight;
112
115
  helper.setBoxPosition([-0.5 * boxSize[0], -0.97]);
113
- } // recomute bar segments based on positioning
114
-
116
+ }
115
117
 
118
+ // recomute bar segments based on positioning
116
119
  helper.recomputeBarSegments(textSizes);
117
120
  };
118
- } // ----------------------------------------------------------------------------
121
+ }
122
+
123
+ // ----------------------------------------------------------------------------
119
124
  // Default generateTicks function
120
125
  // ----------------------------------------------------------------------------
126
+
121
127
  // This function returns the default function used to generate vtkScalarBarActor ticks.
122
128
  // The default function makes use of d3.scaleLinear() to generate 5 tick marks between
123
129
  // the minimum and maximum values of the scalar bar. Customize this behavior by passing
124
130
  // a function to vtkScalarBarActor.newInstance({ generateTicks: customGenerateTicks })
125
131
  // or by calling scalarBarActor.setGenerateTicks(customGenerateTicks).
126
-
127
-
128
132
  function defaultGenerateTicks(publicApi, model) {
129
- return function (helper) {
130
- var lastTickBounds = helper.getLastTickBounds();
131
- var scale = d3.scaleLinear().domain([lastTickBounds[0], lastTickBounds[1]]);
132
- var ticks = scale.ticks(5);
133
- var format = scale.tickFormat(5);
133
+ return helper => {
134
+ const lastTickBounds = helper.getLastTickBounds();
135
+ const scale = d3.scaleLinear().domain([lastTickBounds[0], lastTickBounds[1]]);
136
+ const ticks = scale.ticks(5);
137
+ const format = scale.tickFormat(5);
134
138
  helper.setTicks(ticks);
135
139
  helper.setTickStrings(ticks.map(format));
136
140
  };
137
- } // many properties of this actor depend on the API specific view The main
141
+ }
142
+
143
+ // many properties of this actor depend on the API specific view The main
138
144
  // dependency being the resolution as that drives what font sizes to use.
139
145
  // Bacause of this we need to do some of the calculations in a API specific
140
146
  // subclass. But... we don't want a lot of duplicated code between WebGL and
141
147
  // WebGPU for example so we have this helper class, that is designed to be
142
148
  // fairly API independent so that API specific views can call this to do
143
149
  // most of the work.
144
-
145
-
146
150
  function vtkScalarBarActorHelper(publicAPI, model) {
147
151
  // Set our className
148
152
  model.classHierarchy.push('vtkScalarBarActorHelper');
149
-
150
- publicAPI.setRenderable = function (renderable) {
153
+ publicAPI.setRenderable = renderable => {
151
154
  if (model.renderable === renderable) {
152
155
  return;
153
156
  }
154
-
155
157
  model.renderable = renderable;
156
158
  model.barActor.setProperty(renderable.getProperty());
157
159
  model.barActor.setParentProp(renderable);
@@ -160,12 +162,15 @@ function vtkScalarBarActorHelper(publicAPI, model) {
160
162
  model.tmActor.setParentProp(renderable);
161
163
  model.tmActor.setCoordinateSystemToDisplay();
162
164
  model.generateTicks = renderable.generateTicks;
163
- model.axisTextStyle = _objectSpread({}, renderable.getAxisTextStyle());
164
- model.tickTextStyle = _objectSpread({}, renderable.getTickTextStyle());
165
+ model.axisTextStyle = {
166
+ ...renderable.getAxisTextStyle()
167
+ };
168
+ model.tickTextStyle = {
169
+ ...renderable.getTickTextStyle()
170
+ };
165
171
  publicAPI.modified();
166
172
  };
167
-
168
- publicAPI.updateAPISpecificData = function (size, camera, renderWindow) {
173
+ publicAPI.updateAPISpecificData = (size, camera, renderWindow) => {
169
174
  // has the size changed?
170
175
  if (model.lastSize[0] !== size[0] || model.lastSize[1] !== size[1]) {
171
176
  model.lastSize[0] = size[0];
@@ -173,68 +178,74 @@ function vtkScalarBarActorHelper(publicAPI, model) {
173
178
  model.lastAspectRatio = size[0] / size[1];
174
179
  model.forceUpdate = true;
175
180
  }
176
-
177
- var scalarsToColors = model.renderable.getScalarsToColors();
178
-
181
+ const scalarsToColors = model.renderable.getScalarsToColors();
179
182
  if (!scalarsToColors || !model.renderable.getVisibility()) {
180
183
  return;
181
- } // make sure the lut is assigned to our mapper
182
-
184
+ }
183
185
 
184
- model.barMapper.setLookupTable(scalarsToColors); // camera should be the same for all views
186
+ // make sure the lut is assigned to our mapper
187
+ model.barMapper.setLookupTable(scalarsToColors);
185
188
 
189
+ // camera should be the same for all views
186
190
  model.camera = camera;
187
- model.renderWindow = renderWindow; // did something significant change? If so rebuild a lot of things
191
+ model.renderWindow = renderWindow;
188
192
 
193
+ // did something significant change? If so rebuild a lot of things
189
194
  if (model.forceUpdate || Math.max(scalarsToColors.getMTime(), publicAPI.getMTime(), model.renderable.getMTime()) > model.lastRebuildTime.getMTime()) {
190
- var range = scalarsToColors.getMappingRange();
191
- model.lastTickBounds = _toConsumableArray(range); // compute tick marks for axes (update for log scale)
195
+ const range = scalarsToColors.getMappingRange();
196
+ model.lastTickBounds = [...range];
192
197
 
198
+ // compute tick marks for axes (update for log scale)
193
199
  model.renderable.getGenerateTicks()(publicAPI);
194
-
195
200
  if (model.renderable.getAutomated()) {
196
201
  model.renderable.getAutoLayout()(publicAPI);
197
202
  } else {
198
203
  // copy values from renderable
199
- model.axisTextStyle = _objectSpread({}, model.renderable.getAxisTextStyle());
200
- model.tickTextStyle = _objectSpread({}, model.renderable.getTickTextStyle());
201
- model.barPosition = _toConsumableArray(model.renderable.getBarPosition());
202
- model.barSize = _toConsumableArray(model.renderable.getBarSize());
203
- model.boxPosition = _toConsumableArray(model.renderable.getBoxPosition());
204
- model.boxSize = _toConsumableArray(model.renderable.getBoxSize());
204
+ model.axisTextStyle = {
205
+ ...model.renderable.getAxisTextStyle()
206
+ };
207
+ model.tickTextStyle = {
208
+ ...model.renderable.getTickTextStyle()
209
+ };
210
+ model.barPosition = [...model.renderable.getBarPosition()];
211
+ model.barSize = [...model.renderable.getBarSize()];
212
+ model.boxPosition = [...model.renderable.getBoxPosition()];
213
+ model.boxSize = [...model.renderable.getBoxSize()];
205
214
  model.axisTitlePixelOffset = model.renderable.getAxisTitlePixelOffset();
206
- model.tickLabelPixelOffset = model.renderable.getTickLabelPixelOffset(); // rebuild the texture only when force or changed bounds, face
207
- // visibility changes do to change the atlas
215
+ model.tickLabelPixelOffset = model.renderable.getTickLabelPixelOffset();
208
216
 
209
- var textSizes = publicAPI.updateTextureAtlas(); // recompute bar segments based on positioning
217
+ // rebuild the texture only when force or changed bounds, face
218
+ // visibility changes do to change the atlas
219
+ const textSizes = publicAPI.updateTextureAtlas();
210
220
 
221
+ // recompute bar segments based on positioning
211
222
  publicAPI.recomputeBarSegments(textSizes);
212
223
  }
213
-
214
224
  publicAPI.updatePolyDataForLabels();
215
225
  publicAPI.updatePolyDataForBarSegments();
216
226
  model.lastRebuildTime.modified();
217
227
  model.forceUpdate = false;
218
228
  }
219
- }; // create the texture map atlas that contains the rendering of
229
+ };
230
+
231
+ // create the texture map atlas that contains the rendering of
220
232
  // all the text strings. Only needs to be called when the text strings
221
233
  // have changed (labels and ticks)
222
-
223
-
224
- publicAPI.updateTextureAtlas = function () {
234
+ publicAPI.updateTextureAtlas = () => {
225
235
  // set the text properties
226
236
  model.tmContext.textBaseline = 'bottom';
227
- model.tmContext.textAlign = 'left'; // return some factors about the text atlas
228
-
229
- var results = {}; // first the axislabel
237
+ model.tmContext.textAlign = 'left';
230
238
 
231
- var newTmAtlas = new Map();
232
- var maxWidth = 0;
233
- var totalHeight = 1; // start one pixel in so we have a border
239
+ // return some factors about the text atlas
240
+ const results = {};
234
241
 
242
+ // first the axislabel
243
+ const newTmAtlas = new Map();
244
+ let maxWidth = 0;
245
+ let totalHeight = 1; // start one pixel in so we have a border
235
246
  applyTextStyle(model.tmContext, model.axisTextStyle);
236
- var metrics = model.tmContext.measureText(model.renderable.getAxisLabel());
237
- var entry = {
247
+ let metrics = model.tmContext.measureText(model.renderable.getAxisLabel());
248
+ let entry = {
238
249
  height: metrics.actualBoundingBoxAscent + 2,
239
250
  startingHeight: totalHeight,
240
251
  width: metrics.width + 2,
@@ -244,14 +255,14 @@ function vtkScalarBarActorHelper(publicAPI, model) {
244
255
  totalHeight += entry.height;
245
256
  maxWidth = entry.width;
246
257
  results.titleWidth = entry.width;
247
- results.titleHeight = entry.height; // and the ticks, NaN Below and Above
258
+ results.titleHeight = entry.height;
248
259
 
260
+ // and the ticks, NaN Below and Above
249
261
  results.tickWidth = 0;
250
262
  results.tickHeight = 0;
251
263
  applyTextStyle(model.tmContext, model.tickTextStyle);
252
- var strings = [].concat(_toConsumableArray(publicAPI.getTickStrings()), ['NaN', 'Below', 'Above']);
253
-
254
- for (var t = 0; t < strings.length; t++) {
264
+ const strings = [...publicAPI.getTickStrings(), 'NaN', 'Below', 'Above'];
265
+ for (let t = 0; t < strings.length; t++) {
255
266
  if (!newTmAtlas.has(strings[t])) {
256
267
  metrics = model.tmContext.measureText(strings[t]);
257
268
  entry = {
@@ -262,85 +273,82 @@ function vtkScalarBarActorHelper(publicAPI, model) {
262
273
  };
263
274
  newTmAtlas.set(strings[t], entry);
264
275
  totalHeight += entry.height;
265
-
266
276
  if (maxWidth < entry.width) {
267
277
  maxWidth = entry.width;
268
278
  }
269
-
270
279
  if (results.tickWidth < entry.width) {
271
280
  results.tickWidth = entry.width;
272
281
  }
273
-
274
282
  if (results.tickHeight < entry.height) {
275
283
  results.tickHeight = entry.height;
276
284
  }
277
285
  }
278
- } // always use power of two to avoid interpolation
279
- // in cases where PO2 is required
280
-
286
+ }
281
287
 
288
+ // always use power of two to avoid interpolation
289
+ // in cases where PO2 is required
282
290
  maxWidth = nearestPowerOfTwo(maxWidth);
283
- totalHeight = nearestPowerOfTwo(totalHeight); // set the tcoord values
291
+ totalHeight = nearestPowerOfTwo(totalHeight);
284
292
 
285
- newTmAtlas.forEach(function (value) {
293
+ // set the tcoord values
294
+ newTmAtlas.forEach(value => {
286
295
  value.tcoords = [0.0, (totalHeight - value.startingHeight - value.height) / totalHeight, value.width / maxWidth, (totalHeight - value.startingHeight - value.height) / totalHeight, value.width / maxWidth, (totalHeight - value.startingHeight) / totalHeight, 0.0, (totalHeight - value.startingHeight) / totalHeight];
287
- }); // make sure we have power of two dimensions
296
+ });
288
297
 
298
+ // make sure we have power of two dimensions
289
299
  model.tmCanvas.width = maxWidth;
290
300
  model.tmCanvas.height = totalHeight;
291
301
  model.tmContext.textBaseline = 'bottom';
292
302
  model.tmContext.textAlign = 'left';
293
- model.tmContext.clearRect(0, 0, maxWidth, totalHeight); // draw the text onto the texture
303
+ model.tmContext.clearRect(0, 0, maxWidth, totalHeight);
294
304
 
295
- newTmAtlas.forEach(function (value, key) {
305
+ // draw the text onto the texture
306
+ newTmAtlas.forEach((value, key) => {
296
307
  applyTextStyle(model.tmContext, value.textStyle);
297
308
  model.tmContext.fillText(key, 1, value.startingHeight + value.height - 1);
298
309
  });
299
- model.tmTexture.setCanvas(model.tmCanvas); // mark as modified since the canvas typically doesn't change
300
-
310
+ model.tmTexture.setCanvas(model.tmCanvas);
311
+ // mark as modified since the canvas typically doesn't change
301
312
  model.tmTexture.modified();
302
313
  model._tmAtlas = newTmAtlas;
303
314
  return results;
304
315
  };
305
-
306
- publicAPI.computeBarSize = function (textSizes) {
316
+ publicAPI.computeBarSize = textSizes => {
307
317
  // compute orientation
308
318
  model.vertical = model.boxSize[1] > model.boxSize[0];
309
- var tickHeight = 2.0 * textSizes.tickHeight / model.lastSize[1];
310
- var segSize = [1, 1]; // horizontal and vertical have different astetics so adjust based on
311
- // orientation
319
+ const tickHeight = 2.0 * textSizes.tickHeight / model.lastSize[1];
320
+ const segSize = [1, 1];
312
321
 
322
+ // horizontal and vertical have different astetics so adjust based on
323
+ // orientation
313
324
  if (model.vertical) {
314
- var tickWidth = 2.0 * (textSizes.tickWidth + model.tickLabelPixelOffset) / model.lastSize[0];
315
-
325
+ const tickWidth = 2.0 * (textSizes.tickWidth + model.tickLabelPixelOffset) / model.lastSize[0];
316
326
  if (model.topTitle) {
317
- var titleHeight = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[1];
327
+ const titleHeight = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[1];
318
328
  model.barSize[0] = model.boxSize[0] - tickWidth;
319
329
  model.barSize[1] = model.boxSize[1] - titleHeight;
320
330
  } else {
321
331
  // rotated title so width is based off height
322
- var titleWidth = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[0];
332
+ const titleWidth = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[0];
323
333
  model.barSize[0] = model.boxSize[0] - titleWidth - tickWidth;
324
334
  model.barSize[1] = model.boxSize[1];
325
335
  }
326
-
327
336
  model.barPosition[0] = model.boxPosition[0] + tickWidth;
328
337
  model.barPosition[1] = model.boxPosition[1];
329
338
  segSize[1] = tickHeight;
330
339
  } else {
331
- var _tickWidth = (2.0 * textSizes.tickWidth - 8) / model.lastSize[0];
332
-
333
- var _titleHeight = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[1];
334
-
340
+ const tickWidth = (2.0 * textSizes.tickWidth - 8) / model.lastSize[0];
341
+ const titleHeight = 2.0 * (textSizes.titleHeight + model.axisTitlePixelOffset) / model.lastSize[1];
335
342
  model.barSize[0] = model.boxSize[0];
336
343
  model.barPosition[0] = model.boxPosition[0];
337
- model.barSize[1] = model.boxSize[1] - _titleHeight;
344
+ model.barSize[1] = model.boxSize[1] - titleHeight;
338
345
  model.barPosition[1] = model.boxPosition[1];
339
- segSize[0] = _tickWidth;
346
+ segSize[0] = tickWidth;
340
347
  }
341
-
342
348
  return segSize;
343
- }; // based on all the settins compute a barSegments array
349
+ };
350
+
351
+ // based on all the settins compute a barSegments array
344
352
  // containing the segments of the scalar bar
345
353
  // each segment contains
346
354
  // corners[4][2]
@@ -349,89 +357,81 @@ function vtkScalarBarActorHelper(publicAPI, model) {
349
357
  //
350
358
  // Note that the bar consumes the space in the box that remains after
351
359
  // leaving room for the text labels
352
-
353
-
354
- publicAPI.recomputeBarSegments = function (textSizes) {
355
- var _model$renderable$get, _model$renderable$get2, _model$renderable$get3, _model$renderable$get4;
356
-
360
+ publicAPI.recomputeBarSegments = textSizes => {
357
361
  // first compute the barSize/Position
358
- var segSize = publicAPI.computeBarSize(textSizes);
362
+ const segSize = publicAPI.computeBarSize(textSizes);
359
363
  model.barSegments = [];
360
- var startPos = [0.0, 0.0]; // horizontal and vertical have different astetics so adjust based on
361
- // orientation
362
-
363
- var barAxis = model.vertical ? 1 : 0;
364
- var segSpace = model.vertical ? 0.01 : 0.02;
364
+ const startPos = [0.0, 0.0];
365
365
 
366
+ // horizontal and vertical have different astetics so adjust based on
367
+ // orientation
368
+ const barAxis = model.vertical ? 1 : 0;
369
+ const segSpace = model.vertical ? 0.01 : 0.02;
366
370
  function pushSeg(title, scalars) {
367
371
  model.barSegments.push({
368
- corners: [[].concat(startPos), [startPos[0] + segSize[0], startPos[1]], [startPos[0] + segSize[0], startPos[1] + segSize[1]], [startPos[0], startPos[1] + segSize[1]]],
369
- scalars: scalars,
370
- title: title
372
+ corners: [[...startPos], [startPos[0] + segSize[0], startPos[1]], [startPos[0] + segSize[0], startPos[1] + segSize[1]], [startPos[0], startPos[1] + segSize[1]]],
373
+ scalars,
374
+ title
371
375
  });
372
376
  startPos[barAxis] += segSize[barAxis] + segSpace;
373
377
  }
374
-
375
378
  if (model.renderable.getDrawNanAnnotation() && model.renderable.getScalarsToColors().getNanColor()) {
376
379
  pushSeg('NaN', [NaN, NaN, NaN, NaN]);
377
380
  }
378
-
379
- if (model.renderable.getDrawBelowRangeSwatch() && (_model$renderable$get = (_model$renderable$get2 = model.renderable.getScalarsToColors()).getUseBelowRangeColor) !== null && _model$renderable$get !== void 0 && _model$renderable$get.call(_model$renderable$get2)) {
381
+ if (model.renderable.getDrawBelowRangeSwatch() && model.renderable.getScalarsToColors().getUseBelowRangeColor?.()) {
380
382
  pushSeg('Below', [-0.1, -0.1, -0.1, -0.1]);
381
383
  }
384
+ const haveAbove = model.renderable.getScalarsToColors().getUseAboveRangeColor?.();
382
385
 
383
- var haveAbove = (_model$renderable$get3 = (_model$renderable$get4 = model.renderable.getScalarsToColors()).getUseAboveRangeColor) === null || _model$renderable$get3 === void 0 ? void 0 : _model$renderable$get3.call(_model$renderable$get4); // extra space around the ticks section
384
-
386
+ // extra space around the ticks section
385
387
  startPos[barAxis] += segSpace;
386
- var oldSegSize = segSize[barAxis];
388
+ const oldSegSize = segSize[barAxis];
387
389
  segSize[barAxis] = haveAbove ? 1.0 - 2.0 * segSpace - segSize[barAxis] - startPos[barAxis] : 1.0 - segSpace - startPos[barAxis];
388
390
  pushSeg('ticks', model.vertical ? [0, 0, 0.995, 0.995] : [0, 0.995, 0.995, 0]);
389
-
390
391
  if (model.renderable.getDrawAboveRangeSwatch() && haveAbove) {
391
392
  segSize[barAxis] = oldSegSize;
392
393
  startPos[barAxis] += segSpace;
393
394
  pushSeg('Above', [1.1, 1.1, 1.1, 1.1]);
394
395
  }
395
- }; // called by updatePolyDataForLabels
396
- // modifies class constants tmp2v3
396
+ };
397
397
 
398
+ // called by updatePolyDataForLabels
399
+ // modifies class constants tmp2v3
400
+ const tmp2v3 = new Float64Array(3);
398
401
 
399
- var tmp2v3 = new Float64Array(3); // anchor point = pos
402
+ // anchor point = pos
400
403
  // H alignment = left, middle, right
401
404
  // V alignment = bottom, middle, top
402
405
  // Text Orientation = horizontal, vertical
403
406
  // orientation
404
-
405
- publicAPI.createPolyDataForOneLabel = function (text, pos, alignment, orientation, offset, results) {
406
- var value = model._tmAtlas.get(text);
407
-
407
+ publicAPI.createPolyDataForOneLabel = (text, pos, alignment, orientation, offset, results) => {
408
+ const value = model._tmAtlas.get(text);
408
409
  if (!value) {
409
410
  return;
410
- } // have to find the four corners of the texture polygon for this label
411
-
412
-
413
- var ptIdx = results.ptIdx;
414
- var cellIdx = results.cellIdx; // get achor point in pixels
411
+ }
412
+ // have to find the four corners of the texture polygon for this label
413
+ let ptIdx = results.ptIdx;
414
+ let cellIdx = results.cellIdx;
415
415
 
416
+ // get achor point in pixels
416
417
  tmp2v3[0] = (0.5 * pos[0] + 0.5) * model.lastSize[0];
417
418
  tmp2v3[1] = (0.5 * pos[1] + 0.5) * model.lastSize[1];
418
419
  tmp2v3[2] = pos[2];
419
420
  tmp2v3[0] += offset[0];
420
- tmp2v3[1] += offset[1]; // get text size in display pixels
421
-
422
- var textSize = [];
423
- var textAxes = orientation === 'vertical' ? [1, 0] : [0, 1];
421
+ tmp2v3[1] += offset[1];
424
422
 
423
+ // get text size in display pixels
424
+ const textSize = [];
425
+ const textAxes = orientation === 'vertical' ? [1, 0] : [0, 1];
425
426
  if (orientation === 'vertical') {
426
427
  textSize[0] = value.width;
427
- textSize[1] = -value.height; // update anchor point based on alignment
428
-
428
+ textSize[1] = -value.height;
429
+ // update anchor point based on alignment
429
430
  if (alignment[0] === 'middle') {
430
431
  tmp2v3[1] -= value.width / 2.0;
431
432
  } else if (alignment[0] === 'right') {
432
433
  tmp2v3[1] -= value.width;
433
434
  }
434
-
435
435
  if (alignment[1] === 'middle') {
436
436
  tmp2v3[0] += value.height / 2.0;
437
437
  } else if (alignment[1] === 'top') {
@@ -439,21 +439,19 @@ function vtkScalarBarActorHelper(publicAPI, model) {
439
439
  }
440
440
  } else {
441
441
  textSize[0] = value.width;
442
- textSize[1] = value.height; // update anchor point based on alignment
443
-
442
+ textSize[1] = value.height;
443
+ // update anchor point based on alignment
444
444
  if (alignment[0] === 'middle') {
445
445
  tmp2v3[0] -= value.width / 2.0;
446
446
  } else if (alignment[0] === 'right') {
447
447
  tmp2v3[0] -= value.width;
448
448
  }
449
-
450
449
  if (alignment[1] === 'middle') {
451
450
  tmp2v3[1] -= value.height / 2.0;
452
451
  } else if (alignment[1] === 'top') {
453
452
  tmp2v3[1] -= value.height;
454
453
  }
455
454
  }
456
-
457
455
  results.points[ptIdx * 3] = tmp2v3[0];
458
456
  results.points[ptIdx * 3 + 1] = tmp2v3[1];
459
457
  results.points[ptIdx * 3 + 2] = tmp2v3[2];
@@ -480,8 +478,9 @@ function vtkScalarBarActorHelper(publicAPI, model) {
480
478
  results.points[ptIdx * 3 + 2] = tmp2v3[2];
481
479
  results.tcoords[ptIdx * 2] = value.tcoords[6];
482
480
  results.tcoords[ptIdx * 2 + 1] = value.tcoords[7];
483
- ptIdx++; // add the two triangles to represent the quad
481
+ ptIdx++;
484
482
 
483
+ // add the two triangles to represent the quad
485
484
  results.polys[cellIdx * 4] = 3;
486
485
  results.polys[cellIdx * 4 + 1] = ptIdx - 4;
487
486
  results.polys[cellIdx * 4 + 2] = ptIdx - 3;
@@ -493,53 +492,52 @@ function vtkScalarBarActorHelper(publicAPI, model) {
493
492
  results.polys[cellIdx * 4 + 3] = ptIdx - 1;
494
493
  results.ptIdx += 4;
495
494
  results.cellIdx += 2;
496
- }; // update the polydata associated with drawing the text labels
495
+ };
496
+
497
+ // update the polydata associated with drawing the text labels
497
498
  // specifically the quads used for each label and their associated tcoords
498
499
  // etc. This changes every time the camera viewpoint changes
499
-
500
-
501
- var tmpv3 = new Float64Array(3);
502
-
503
- publicAPI.updatePolyDataForLabels = function () {
500
+ const tmpv3 = new Float64Array(3);
501
+ publicAPI.updatePolyDataForLabels = () => {
504
502
  // update the polydata
505
- var numLabels = publicAPI.getTickStrings().length + model.barSegments.length;
506
- var numPts = numLabels * 4;
507
- var numTris = numLabels * 2;
508
- var points = new Float64Array(numPts * 3);
509
- var polys = new Uint16Array(numTris * 4);
510
- var tcoords = new Float32Array(numPts * 2);
511
- var results = {
503
+ const numLabels = publicAPI.getTickStrings().length + model.barSegments.length;
504
+ const numPts = numLabels * 4;
505
+ const numTris = numLabels * 2;
506
+ const points = new Float64Array(numPts * 3);
507
+ const polys = new Uint16Array(numTris * 4);
508
+ const tcoords = new Float32Array(numPts * 2);
509
+ const results = {
512
510
  ptIdx: 0,
513
511
  cellIdx: 0,
514
- polys: polys,
515
- points: points,
516
- tcoords: tcoords
517
- }; // compute the direction vector
512
+ polys,
513
+ points,
514
+ tcoords
515
+ };
518
516
 
519
- var offsetAxis = model.vertical ? 0 : 1;
520
- var spacedAxis = model.vertical ? 1 : 0;
517
+ // compute the direction vector
518
+ const offsetAxis = model.vertical ? 0 : 1;
519
+ const spacedAxis = model.vertical ? 1 : 0;
521
520
  tmpv3[2] = -0.99; // near plane
522
- // draw the title
523
-
524
- var alignment = model.vertical ? ['right', 'middle'] : ['middle', 'bottom'];
525
- var dir = [0, 1];
526
- var tickOffsets = [0, 0];
527
521
 
522
+ // draw the title
523
+ const alignment = model.vertical ? ['right', 'middle'] : ['middle', 'bottom'];
524
+ let dir = [0, 1];
525
+ const tickOffsets = [0, 0];
528
526
  if (model.vertical) {
529
527
  tickOffsets[0] = -model.tickLabelPixelOffset;
530
-
531
528
  if (model.topTitle) {
532
529
  tmpv3[0] = model.boxPosition[0] + 0.5 * model.boxSize[0];
533
- tmpv3[1] = model.barPosition[1] + model.barSize[1]; // write the axis label
530
+ tmpv3[1] = model.barPosition[1] + model.barSize[1];
534
531
 
532
+ // write the axis label
535
533
  publicAPI.createPolyDataForOneLabel(model.renderable.getAxisLabel(), tmpv3, ['middle', 'bottom'], 'horizontal', [0, model.axisTitlePixelOffset], results);
536
534
  } else {
537
535
  tmpv3[0] = model.barPosition[0] + model.barSize[0];
538
- tmpv3[1] = model.barPosition[1] + 0.5 * model.barSize[1]; // write the axis label
536
+ tmpv3[1] = model.barPosition[1] + 0.5 * model.barSize[1];
539
537
 
538
+ // write the axis label
540
539
  publicAPI.createPolyDataForOneLabel(model.renderable.getAxisLabel(), tmpv3, ['middle', 'top'], 'vertical', [model.axisTitlePixelOffset, 0], results);
541
540
  }
542
-
543
541
  dir = [-1, 0];
544
542
  } else {
545
543
  tickOffsets[1] = model.tickLabelPixelOffset;
@@ -547,15 +545,13 @@ function vtkScalarBarActorHelper(publicAPI, model) {
547
545
  tmpv3[1] = model.barPosition[1] + model.barSize[1];
548
546
  publicAPI.createPolyDataForOneLabel(model.renderable.getAxisLabel(), tmpv3, ['middle', 'bottom'], 'horizontal', [0, model.axisTitlePixelOffset], results);
549
547
  }
550
-
551
548
  tmpv3[offsetAxis] = model.barPosition[offsetAxis] + (0.5 * dir[offsetAxis] + 0.5) * model.barSize[offsetAxis];
552
- tmpv3[spacedAxis] = model.barPosition[spacedAxis] + model.barSize[spacedAxis] * 0.5; // draw bar segment labels
553
-
554
- var tickSeg = null;
555
-
556
- for (var i = 0; i < model.barSegments.length; i++) {
557
- var seg = model.barSegments[i];
549
+ tmpv3[spacedAxis] = model.barPosition[spacedAxis] + model.barSize[spacedAxis] * 0.5;
558
550
 
551
+ // draw bar segment labels
552
+ let tickSeg = null;
553
+ for (let i = 0; i < model.barSegments.length; i++) {
554
+ const seg = model.barSegments[i];
559
555
  if (seg.title === 'ticks') {
560
556
  // handle ticks below
561
557
  tickSeg = seg;
@@ -563,21 +559,19 @@ function vtkScalarBarActorHelper(publicAPI, model) {
563
559
  tmpv3[spacedAxis] = model.barPosition[spacedAxis] + 0.5 * model.barSize[spacedAxis] * (seg.corners[2][spacedAxis] + seg.corners[0][spacedAxis]);
564
560
  publicAPI.createPolyDataForOneLabel(seg.title, tmpv3, alignment, 'horizontal', tickOffsets, results);
565
561
  }
566
- } // write the tick labels
567
-
568
-
569
- var tickSegmentStart = model.barPosition[spacedAxis] + model.barSize[spacedAxis] * tickSeg.corners[0][spacedAxis];
570
- var tickSegmentSize = model.barSize[spacedAxis] * (tickSeg.corners[2][spacedAxis] - tickSeg.corners[0][spacedAxis]);
571
- var ticks = publicAPI.getTicks();
572
- var tickStrings = publicAPI.getTickStrings();
562
+ }
573
563
 
574
- for (var t = 0; t < ticks.length; t++) {
575
- var tickPos = (ticks[t] - model.lastTickBounds[0]) / (model.lastTickBounds[1] - model.lastTickBounds[0]);
564
+ // write the tick labels
565
+ const tickSegmentStart = model.barPosition[spacedAxis] + model.barSize[spacedAxis] * tickSeg.corners[0][spacedAxis];
566
+ const tickSegmentSize = model.barSize[spacedAxis] * (tickSeg.corners[2][spacedAxis] - tickSeg.corners[0][spacedAxis]);
567
+ const ticks = publicAPI.getTicks();
568
+ const tickStrings = publicAPI.getTickStrings();
569
+ for (let t = 0; t < ticks.length; t++) {
570
+ const tickPos = (ticks[t] - model.lastTickBounds[0]) / (model.lastTickBounds[1] - model.lastTickBounds[0]);
576
571
  tmpv3[spacedAxis] = tickSegmentStart + tickSegmentSize * tickPos;
577
572
  publicAPI.createPolyDataForOneLabel(tickStrings[t], tmpv3, alignment, 'horizontal', tickOffsets, results);
578
573
  }
579
-
580
- var tcoordDA = vtkDataArray.newInstance({
574
+ const tcoordDA = vtkDataArray.newInstance({
581
575
  numberOfComponents: 2,
582
576
  values: tcoords,
583
577
  name: 'TextureCoordinates'
@@ -589,58 +583,46 @@ function vtkScalarBarActorHelper(publicAPI, model) {
589
583
  model.tmPolyData.getPolys().modified();
590
584
  model.tmPolyData.modified();
591
585
  };
592
-
593
- publicAPI.updatePolyDataForBarSegments = function () {
594
- var _scalarsToColors$getU, _scalarsToColors$getU2;
595
-
596
- var scalarsToColors = model.renderable.getScalarsToColors();
597
- var numberOfExtraColors = 0;
598
-
586
+ publicAPI.updatePolyDataForBarSegments = () => {
587
+ const scalarsToColors = model.renderable.getScalarsToColors();
588
+ let numberOfExtraColors = 0;
599
589
  if (model.renderable.getDrawNanAnnotation() && scalarsToColors.getNanColor()) {
600
590
  numberOfExtraColors += 1;
601
591
  }
602
-
603
- if (model.renderable.getDrawBelowRangeSwatch() && (_scalarsToColors$getU = scalarsToColors.getUseBelowRangeColor) !== null && _scalarsToColors$getU !== void 0 && _scalarsToColors$getU.call(scalarsToColors)) {
592
+ if (model.renderable.getDrawBelowRangeSwatch() && scalarsToColors.getUseBelowRangeColor?.()) {
604
593
  numberOfExtraColors += 1;
605
594
  }
606
-
607
- if (model.renderable.getDrawAboveRangeSwatch() && (_scalarsToColors$getU2 = scalarsToColors.getUseAboveRangeColor) !== null && _scalarsToColors$getU2 !== void 0 && _scalarsToColors$getU2.call(scalarsToColors)) {
595
+ if (model.renderable.getDrawAboveRangeSwatch() && scalarsToColors.getUseAboveRangeColor?.()) {
608
596
  numberOfExtraColors += 1;
609
597
  }
598
+ const numPts = 4 * (1 + numberOfExtraColors);
599
+ const numQuads = numPts;
610
600
 
611
- var numPts = 4 * (1 + numberOfExtraColors);
612
- var numQuads = numPts; // handle vector component mode
613
-
614
- var numComps = 1;
615
-
601
+ // handle vector component mode
602
+ let numComps = 1;
616
603
  if (scalarsToColors.getVectorMode() === VectorMode.COMPONENT) {
617
604
  numComps = scalarsToColors.getVectorComponent() + 1;
618
- } // create the colored bars
619
-
620
-
621
- var points = new Float64Array(numPts * 3);
622
- var cells = new Uint16Array(numQuads * 5);
623
- var scalars = new Float32Array(numPts * numComps);
624
- var ptIdx = 0;
625
- var cellIdx = 0;
626
-
627
- for (var i = 0; i < model.barSegments.length; i++) {
628
- var seg = model.barSegments[i];
605
+ }
629
606
 
630
- for (var e = 0; e < 4; e++) {
607
+ // create the colored bars
608
+ const points = new Float64Array(numPts * 3);
609
+ const cells = new Uint16Array(numQuads * 5);
610
+ const scalars = new Float32Array(numPts * numComps);
611
+ let ptIdx = 0;
612
+ let cellIdx = 0;
613
+ for (let i = 0; i < model.barSegments.length; i++) {
614
+ const seg = model.barSegments[i];
615
+ for (let e = 0; e < 4; e++) {
631
616
  tmpv3[0] = model.barPosition[0] + seg.corners[e][0] * model.barSize[0];
632
617
  tmpv3[1] = model.barPosition[1] + seg.corners[e][1] * model.barSize[1];
633
618
  points[ptIdx * 3] = (0.5 * tmpv3[0] + 0.5) * model.lastSize[0];
634
619
  points[ptIdx * 3 + 1] = (0.5 * tmpv3[1] + 0.5) * model.lastSize[1];
635
620
  points[ptIdx * 3 + 2] = tmpv3[2];
636
-
637
- for (var nc = 0; nc < numComps; nc++) {
621
+ for (let nc = 0; nc < numComps; nc++) {
638
622
  scalars[ptIdx * numComps + nc] = model.lastTickBounds[0] + seg.scalars[e] * (model.lastTickBounds[1] - model.lastTickBounds[0]);
639
623
  }
640
-
641
624
  ptIdx++;
642
625
  }
643
-
644
626
  cells[cellIdx * 5] = 4;
645
627
  cells[cellIdx * 5 + 1] = ptIdx - 4;
646
628
  cells[cellIdx * 5 + 2] = ptIdx - 3;
@@ -648,8 +630,7 @@ function vtkScalarBarActorHelper(publicAPI, model) {
648
630
  cells[cellIdx * 5 + 4] = ptIdx - 1;
649
631
  cellIdx++;
650
632
  }
651
-
652
- var scalarsDA = vtkDataArray.newInstance({
633
+ const scalarsDA = vtkDataArray.newInstance({
653
634
  numberOfComponents: numComps,
654
635
  values: scalars,
655
636
  name: 'Scalars'
@@ -662,13 +643,13 @@ function vtkScalarBarActorHelper(publicAPI, model) {
662
643
  model.polyData.modified();
663
644
  };
664
645
  }
665
-
666
- var newScalarBarActorHelper = macro.newInstance(function (publicAPI, model) {
667
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
646
+ const newScalarBarActorHelper = macro.newInstance(function (publicAPI, model) {
647
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
668
648
  renderable: null
669
649
  };
670
- Object.assign(model, {}, initialValues); // Inheritance
650
+ Object.assign(model, {}, initialValues);
671
651
 
652
+ // Inheritance
672
653
  macro.obj(publicAPI, model);
673
654
  macro.setGet(publicAPI, model, ['axisTitlePixelOffset', 'tickLabelPixelOffset', 'renderable', 'topTitle', 'ticks', 'tickStrings']);
674
655
  macro.get(publicAPI, model, ['lastSize', 'lastAspectRatio', 'lastTickBounds', 'axisTextStyle', 'tickTextStyle', 'barActor', 'tmActor']);
@@ -689,8 +670,9 @@ var newScalarBarActorHelper = macro.newInstance(function (publicAPI, model) {
689
670
  model.polyData = vtkPolyData.newInstance();
690
671
  model.barMapper.setInputData(model.polyData);
691
672
  model.barActor = vtkActor.newInstance();
692
- model.barActor.setMapper(model.barMapper); // for texture atlas
673
+ model.barActor.setMapper(model.barMapper);
693
674
 
675
+ // for texture atlas
694
676
  model.tmPolyData = vtkPolyData.newInstance();
695
677
  model.tmMapper = vtkMapper.newInstance();
696
678
  model.tmMapper.setInputData(model.tmPolyData);
@@ -706,45 +688,50 @@ var newScalarBarActorHelper = macro.newInstance(function (publicAPI, model) {
706
688
  model.barPosition = [0, 0];
707
689
  model.barSize = [0, 0];
708
690
  model.boxPosition = [0.88, -0.92];
709
- model.boxSize = [0.1, 1.1]; // internal variables
691
+ model.boxSize = [0.1, 1.1];
710
692
 
693
+ // internal variables
711
694
  model.lastTickBounds = [];
712
695
  vtkScalarBarActorHelper(publicAPI, model);
713
- }, 'vtkScalarBarActorHelper'); //
696
+ }, 'vtkScalarBarActorHelper');
697
+
698
+ //
714
699
  // Now we define the public class that the application sets view independent
715
700
  // properties on. This class is fairly small as it mainly just holds
716
701
  // properties setter and getters leaving all calculations to the helper
717
702
  // class.
718
703
  //
719
-
720
704
  function vtkScalarBarActor(publicAPI, model) {
721
705
  // Set our className
722
706
  model.classHierarchy.push('vtkScalarBarActor');
723
-
724
- publicAPI.setTickTextStyle = function (tickStyle) {
725
- model.tickTextStyle = _objectSpread(_objectSpread({}, model.tickTextStyle), tickStyle);
707
+ publicAPI.setTickTextStyle = tickStyle => {
708
+ model.tickTextStyle = {
709
+ ...model.tickTextStyle,
710
+ ...tickStyle
711
+ };
726
712
  publicAPI.modified();
727
713
  };
728
-
729
- publicAPI.setAxisTextStyle = function (axisStyle) {
730
- model.axisTextStyle = _objectSpread(_objectSpread({}, model.axisTextStyle), axisStyle);
714
+ publicAPI.setAxisTextStyle = axisStyle => {
715
+ model.axisTextStyle = {
716
+ ...model.axisTextStyle,
717
+ ...axisStyle
718
+ };
731
719
  publicAPI.modified();
732
720
  };
733
-
734
- publicAPI.resetAutoLayoutToDefault = function () {
721
+ publicAPI.resetAutoLayoutToDefault = () => {
735
722
  publicAPI.setAutoLayout(defaultAutoLayout(publicAPI, model));
736
723
  };
737
-
738
- publicAPI.resetGenerateTicksToDefault = function () {
724
+ publicAPI.resetGenerateTicksToDefault = () => {
739
725
  publicAPI.setGenerateTicks(defaultGenerateTicks());
740
726
  };
741
- } // ----------------------------------------------------------------------------
727
+ }
728
+
729
+ // ----------------------------------------------------------------------------
742
730
  // Object factory
743
731
  // ----------------------------------------------------------------------------
744
732
 
745
-
746
733
  function defaultValues(initialValues) {
747
- return _objectSpread({
734
+ return {
748
735
  automated: true,
749
736
  autoLayout: null,
750
737
  axisLabel: 'Scalar Value',
@@ -770,34 +757,42 @@ function defaultValues(initialValues) {
770
757
  generateTicks: null,
771
758
  drawNanAnnotation: true,
772
759
  drawBelowRangeSwatch: true,
773
- drawAboveRangeSwatch: true
774
- }, initialValues);
775
- } // ----------------------------------------------------------------------------
760
+ drawAboveRangeSwatch: true,
761
+ ...initialValues
762
+ };
763
+ }
776
764
 
765
+ // ----------------------------------------------------------------------------
777
766
 
778
767
  function extend(publicAPI, model) {
779
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
768
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
780
769
  Object.assign(model, defaultValues(initialValues));
781
770
  if (!model.autoLayout) model.autoLayout = defaultAutoLayout(publicAPI, model);
782
- if (!model.generateTicks) model.generateTicks = defaultGenerateTicks(); // Inheritance
771
+ if (!model.generateTicks) model.generateTicks = defaultGenerateTicks();
783
772
 
773
+ // Inheritance
784
774
  vtkActor.extend(publicAPI, model, initialValues);
785
775
  publicAPI.getProperty().setDiffuse(0.0);
786
776
  publicAPI.getProperty().setAmbient(1.0);
787
777
  macro.setGet(publicAPI, model, ['automated', 'autoLayout', 'axisTitlePixelOffset', 'axisLabel', 'scalarsToColors', 'tickLabelPixelOffset', 'generateTicks', 'drawNanAnnotation', 'drawBelowRangeSwatch', 'drawAboveRangeSwatch']);
788
778
  macro.get(publicAPI, model, ['axisTextStyle', 'tickTextStyle']);
789
779
  macro.getArray(publicAPI, model, ['barPosition', 'barSize', 'boxPosition', 'boxSize']);
790
- macro.setArray(publicAPI, model, ['barPosition', 'barSize', 'boxPosition', 'boxSize'], 2); // Object methods
780
+ macro.setArray(publicAPI, model, ['barPosition', 'barSize', 'boxPosition', 'boxSize'], 2);
791
781
 
782
+ // Object methods
792
783
  vtkScalarBarActor(publicAPI, model);
793
- } // ----------------------------------------------------------------------------
784
+ }
794
785
 
795
- var newInstance = macro.newInstance(extend, 'vtkScalarBarActor'); // ----------------------------------------------------------------------------
786
+ // ----------------------------------------------------------------------------
787
+
788
+ const newInstance = macro.newInstance(extend, 'vtkScalarBarActor');
789
+
790
+ // ----------------------------------------------------------------------------
796
791
 
797
792
  var vtkScalarBarActor$1 = {
798
- newInstance: newInstance,
799
- extend: extend,
800
- newScalarBarActorHelper: newScalarBarActorHelper
793
+ newInstance,
794
+ extend,
795
+ newScalarBarActorHelper
801
796
  };
802
797
 
803
798
  export { vtkScalarBarActor$1 as default, extend, newInstance };