@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
@@ -4,48 +4,40 @@ import { updateState } from './helpers.js';
4
4
  import { ViewTypes } from '../../Core/WidgetManager/Constants.js';
5
5
  import { vec3 } from 'gl-matrix';
6
6
 
7
+ // import macro from 'vtk.js/Sources/macros';
8
+
7
9
  function widgetBehavior(publicAPI, model) {
8
10
  // We inherit resliceCursorBehavior
9
11
  widgetBehavior$1(publicAPI, model);
10
- var stretchPlaneName = 'Y';
11
- var crossPlaneName = 'Z';
12
-
13
- publicAPI.getActiveInteraction = function () {
14
- if (model.widgetState.getStatesWithLabel("lineIn".concat(stretchPlaneName)).includes(model.activeState)) {
12
+ const stretchPlaneName = 'Y';
13
+ const crossPlaneName = 'Z';
14
+ publicAPI.getActiveInteraction = () => {
15
+ if (model.widgetState.getStatesWithLabel(`lineIn${stretchPlaneName}`).includes(model.activeState)) {
15
16
  return InteractionMethodsName.TranslateCenterAndUpdatePlanes;
16
17
  }
17
-
18
- if (model.widgetState.getStatesWithLabel("lineIn".concat(crossPlaneName)).includes(model.activeState) || model.widgetState.getStatesWithLabel("rotationIn".concat(crossPlaneName)).includes(model.activeState)) {
18
+ if (model.widgetState.getStatesWithLabel(`lineIn${crossPlaneName}`).includes(model.activeState) || model.widgetState.getStatesWithLabel(`rotationIn${crossPlaneName}`).includes(model.activeState)) {
19
19
  return InteractionMethodsName.RotateLine;
20
20
  }
21
-
22
21
  return null;
23
22
  };
24
-
25
- publicAPI[InteractionMethodsName.TranslateCenterAndUpdatePlanes] = function (calldata) {
26
- var _model$activeState$ge, _model$activeState, _model$activeState$ge2;
27
-
28
- var manipulator = (_model$activeState$ge = (_model$activeState = model.activeState) === null || _model$activeState === void 0 ? void 0 : (_model$activeState$ge2 = _model$activeState.getManipulator) === null || _model$activeState$ge2 === void 0 ? void 0 : _model$activeState$ge2.call(_model$activeState)) !== null && _model$activeState$ge !== void 0 ? _model$activeState$ge : model.manipulator;
29
-
30
- var _manipulator$handleEv = manipulator.handleEvent(calldata, model._apiSpecificRenderWindow),
31
- worldCoords = _manipulator$handleEv.worldCoords,
32
- worldDirection = _manipulator$handleEv.worldDirection;
33
-
23
+ publicAPI[InteractionMethodsName.TranslateCenterAndUpdatePlanes] = calldata => {
24
+ const manipulator = model.activeState?.getManipulator?.() ?? model.manipulator;
25
+ const {
26
+ worldCoords,
27
+ worldDirection
28
+ } = manipulator.handleEvent(calldata, model._apiSpecificRenderWindow);
34
29
  publicAPI.updateCenterAndPlanes(worldCoords, worldDirection);
35
30
  };
36
-
37
- publicAPI.updateCenterAndPlanes = function (worldCoords, worldDirection) {
31
+ publicAPI.updateCenterAndPlanes = (worldCoords, worldDirection) => {
38
32
  // Update center
39
- var newBoundedCenter = publicAPI.getBoundedCenter(worldCoords);
40
- model.widgetState.setCenter(newBoundedCenter); // Update planes if axes are given
33
+ const newBoundedCenter = publicAPI.getBoundedCenter(worldCoords);
34
+ model.widgetState.setCenter(newBoundedCenter);
41
35
 
36
+ // Update planes if axes are given
42
37
  if (worldDirection) {
43
- var getAxis = function getAxis(idx) {
44
- return vec3.normalize([], worldDirection.slice(3 * idx, 3 * idx + 3));
45
- };
46
-
47
- var planes = model.widgetState.getPlanes();
48
- Object.keys(planes).forEach(function (viewType) {
38
+ const getAxis = idx => vec3.normalize([], worldDirection.slice(3 * idx, 3 * idx + 3));
39
+ const planes = model.widgetState.getPlanes();
40
+ Object.keys(planes).forEach(viewType => {
49
41
  switch (Number.parseInt(viewType, 10)) {
50
42
  case ViewTypes.YZ_PLANE:
51
43
  planes[viewType] = {
@@ -53,14 +45,12 @@ function widgetBehavior(publicAPI, model) {
53
45
  viewUp: getAxis(2)
54
46
  };
55
47
  break;
56
-
57
48
  case ViewTypes.XZ_PLANE:
58
49
  planes[viewType] = {
59
50
  normal: getAxis(1),
60
51
  viewUp: getAxis(2)
61
52
  };
62
53
  break;
63
-
64
54
  case ViewTypes.XY_PLANE:
65
55
  planes[viewType] = {
66
56
  normal: getAxis(2),
@@ -70,20 +60,15 @@ function widgetBehavior(publicAPI, model) {
70
60
  }
71
61
  });
72
62
  }
73
-
74
63
  updateState(model.widgetState, model._factory.getScaleInPixels(), model._factory.getRotationHandlePosition());
75
64
  };
76
-
77
- publicAPI.translateCenterOnPlaneDirection = function (nbSteps) {
78
- var _model$_factory$getMa;
79
-
80
- var handleScroll = (_model$_factory$getMa = model._factory.getManipulator()) === null || _model$_factory$getMa === void 0 ? void 0 : _model$_factory$getMa.handleScroll;
81
-
65
+ publicAPI.translateCenterOnPlaneDirection = nbSteps => {
66
+ const handleScroll = model._factory.getManipulator()?.handleScroll;
82
67
  if (handleScroll) {
83
- var _handleScroll = handleScroll(nbSteps),
84
- worldCoords = _handleScroll.worldCoords,
85
- worldDirection = _handleScroll.worldDirection;
86
-
68
+ const {
69
+ worldCoords,
70
+ worldDirection
71
+ } = handleScroll(nbSteps);
87
72
  publicAPI.updateCenterAndPlanes(worldCoords, worldDirection);
88
73
  }
89
74
  };
@@ -1,4 +1,3 @@
1
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
1
  import vtkBoundingBox, { STATIC } from '../../../Common/DataModel/BoundingBox.js';
3
2
  import vtkCubeSource from '../../../Filters/Sources/CubeSource.js';
4
3
  import vtkCutter from '../../../Filters/Core/Cutter.js';
@@ -7,7 +6,8 @@ import { s as subtract, l as normalize, j as cross, w as multiplyScalar, m as mu
7
6
  import vtkMatrixBuilder from '../../../Common/Core/MatrixBuilder.js';
8
7
  import { viewTypeToPlaneName, planeNameToViewType, planeNames } from './Constants.js';
9
8
 
10
- var EPSILON = 10e-7;
9
+ const EPSILON = 10e-7;
10
+
11
11
  /**
12
12
  * Fit the plane defined by origin, p1, p2 onto the bounds.
13
13
  * Plane is untouched if does not intersect bounds.
@@ -17,72 +17,60 @@ var EPSILON = 10e-7;
17
17
  * @param {Array} p2
18
18
  * @return {Boolean} false if no bounds have been found, else true
19
19
  */
20
-
21
20
  function boundPlane(bounds, origin, p1, p2) {
22
- var v1 = [];
21
+ const v1 = [];
23
22
  subtract(p1, origin, v1);
24
23
  normalize(v1);
25
- var v2 = [];
24
+ const v2 = [];
26
25
  subtract(p2, origin, v2);
27
26
  normalize(v2);
28
- var n = [0, 0, 1];
27
+ const n = [0, 0, 1];
29
28
  cross(v1, v2, n);
30
- normalize(n); // Inflate bounds in order to avoid precision error when cutting cubesource
31
-
32
- var inflatedBounds = _toConsumableArray(bounds);
29
+ normalize(n);
33
30
 
34
- var eps = [].concat(n);
31
+ // Inflate bounds in order to avoid precision error when cutting cubesource
32
+ const inflatedBounds = [...bounds];
33
+ const eps = [...n];
35
34
  multiplyScalar(eps, EPSILON);
36
35
  vtkBoundingBox.addBounds(inflatedBounds, bounds[0] + eps[0], bounds[1] + eps[0], bounds[2] + eps[1], bounds[3] + eps[1], bounds[4] + eps[2], bounds[5] + eps[2]);
37
36
  vtkBoundingBox.addBounds(inflatedBounds, bounds[0] - eps[0], bounds[1] - eps[0], bounds[2] - eps[1], bounds[3] - eps[1], bounds[4] - eps[2], bounds[5] - eps[2]);
38
- var plane = vtkPlane.newInstance();
39
- plane.setOrigin.apply(plane, _toConsumableArray(origin));
40
- plane.setNormal.apply(plane, n);
41
- var cubeSource = vtkCubeSource.newInstance();
37
+ const plane = vtkPlane.newInstance();
38
+ plane.setOrigin(...origin);
39
+ plane.setNormal(...n);
40
+ const cubeSource = vtkCubeSource.newInstance();
42
41
  cubeSource.setBounds(inflatedBounds);
43
- var cutter = vtkCutter.newInstance();
42
+ const cutter = vtkCutter.newInstance();
44
43
  cutter.setCutFunction(plane);
45
44
  cutter.setInputConnection(cubeSource.getOutputPort());
46
- var cutBounds = cutter.getOutputData();
47
-
45
+ const cutBounds = cutter.getOutputData();
48
46
  if (cutBounds.getNumberOfPoints() === 0) {
49
47
  return false;
50
48
  }
51
-
52
- var localBounds = STATIC.computeLocalBounds(cutBounds.getPoints(), v1, v2, n);
53
-
54
- for (var i = 0; i < 3; i += 1) {
49
+ const localBounds = STATIC.computeLocalBounds(cutBounds.getPoints(), v1, v2, n);
50
+ for (let i = 0; i < 3; i += 1) {
55
51
  origin[i] = localBounds[0] * v1[i] + localBounds[2] * v2[i] + localBounds[4] * n[i];
56
52
  p1[i] = localBounds[1] * v1[i] + localBounds[2] * v2[i] + localBounds[4] * n[i];
57
53
  p2[i] = localBounds[0] * v1[i] + localBounds[3] * v2[i] + localBounds[4] * n[i];
58
54
  }
59
-
60
55
  return true;
61
- } // Project point (inPoint) to the bounds of the image according to a plane
56
+ }
57
+ // Project point (inPoint) to the bounds of the image according to a plane
62
58
  // defined by two vectors (v1, v2)
63
-
64
59
  function boundPoint(inPoint, v1, v2, bounds) {
65
- var absT1 = v1.map(function (val) {
66
- return Math.abs(val);
67
- });
68
- var absT2 = v2.map(function (val) {
69
- return Math.abs(val);
70
- });
71
- var o1 = 0.0;
72
- var o2 = 0.0;
73
-
74
- for (var i = 0; i < 3; i++) {
75
- var axisOffset = 0;
76
- var useT1 = absT1[i] > absT2[i];
77
- var t = useT1 ? v1 : v2;
78
- var absT = useT1 ? absT1 : absT2;
79
-
60
+ const absT1 = v1.map(val => Math.abs(val));
61
+ const absT2 = v2.map(val => Math.abs(val));
62
+ let o1 = 0.0;
63
+ let o2 = 0.0;
64
+ for (let i = 0; i < 3; i++) {
65
+ let axisOffset = 0;
66
+ const useT1 = absT1[i] > absT2[i];
67
+ const t = useT1 ? v1 : v2;
68
+ const absT = useT1 ? absT1 : absT2;
80
69
  if (inPoint[i] < bounds[i * 2]) {
81
70
  axisOffset = absT[i] > EPSILON ? (bounds[2 * i] - inPoint[i]) / t[i] : 0;
82
71
  } else if (inPoint[i] > bounds[2 * i + 1]) {
83
72
  axisOffset = absT[i] > EPSILON ? (bounds[2 * i + 1] - inPoint[i]) / t[i] : 0;
84
73
  }
85
-
86
74
  if (useT1) {
87
75
  if (Math.abs(axisOffset) > Math.abs(o1)) {
88
76
  o1 = axisOffset;
@@ -91,28 +79,26 @@ function boundPoint(inPoint, v1, v2, bounds) {
91
79
  o2 = axisOffset;
92
80
  }
93
81
  }
94
-
95
- var outPoint = [inPoint[0], inPoint[1], inPoint[2]];
96
-
82
+ const outPoint = [inPoint[0], inPoint[1], inPoint[2]];
97
83
  if (o1 !== 0.0) {
98
84
  multiplyAccumulate(outPoint, v1, o1, outPoint);
99
85
  }
100
-
101
86
  if (o2 !== 0.0) {
102
87
  multiplyAccumulate(outPoint, v2, o2, outPoint);
103
88
  }
104
-
105
89
  return outPoint;
106
- } // Compute the intersection between p1 and p2 on bounds
90
+ }
107
91
 
92
+ // Compute the intersection between p1 and p2 on bounds
108
93
  function boundPointOnPlane(p1, p2, bounds) {
109
- var dir12 = [0, 0, 0];
94
+ const dir12 = [0, 0, 0];
110
95
  subtract(p2, p1, dir12);
111
- var out = [0, 0, 0];
112
- var tolerance = [0, 0, 0];
96
+ const out = [0, 0, 0];
97
+ const tolerance = [0, 0, 0];
113
98
  vtkBoundingBox.intersectBox(bounds, p1, dir12, out, tolerance);
114
99
  return out;
115
100
  }
101
+
116
102
  /**
117
103
  * Rotates a vector around another.
118
104
  * @param {vec3} vectorToBeRotated Vector to rate
@@ -120,30 +106,26 @@ function boundPointOnPlane(p1, p2, bounds) {
120
106
  * @param {Number} angle Angle in radian
121
107
  * @returns The rotated vector
122
108
  */
123
-
124
109
  function rotateVector(vectorToBeRotated, axis, angle) {
125
- var rotatedVector = _toConsumableArray(vectorToBeRotated);
126
-
110
+ const rotatedVector = [...vectorToBeRotated];
127
111
  vtkMatrixBuilder.buildFromRadian().rotate(angle, axis).apply(rotatedVector);
128
112
  return rotatedVector;
129
113
  }
114
+
130
115
  /**
131
116
  * Return ['X', 'Y'] if there are only 2 planes defined in the widget state.
132
117
  * Return ['X', 'Y', 'Z'] if there are 3 planes defined in the widget state.
133
118
  * @param {object} widgetState the state of the widget
134
119
  * @returns An array of plane names
135
120
  */
136
-
137
121
  function getPlaneNames(widgetState) {
138
- return Object.keys(widgetState.getPlanes()).map(function (viewType) {
139
- return viewTypeToPlaneName[viewType];
140
- });
122
+ return Object.keys(widgetState.getPlanes()).map(viewType => viewTypeToPlaneName[viewType]);
141
123
  }
124
+
142
125
  /**
143
126
  * Return X if lineName == XinY|XinZ, Y if lineName == YinX|YinZ and Z otherwise
144
127
  * @param {string} lineName name of the line (YinX, ZinX, XinY, ZinY, XinZ, YinZ)
145
128
  */
146
-
147
129
  function getLinePlaneName(lineName) {
148
130
  return lineName[0];
149
131
  }
@@ -151,104 +133,96 @@ function getLinePlaneName(lineName) {
151
133
  * Return X if lineName == YinX|ZinX, Y if lineName == XinY|ZinY and Z otherwise
152
134
  * @param {string} lineName name of the line (YinX, ZinX, XinY, ZinY, XinZ, YinZ)
153
135
  */
154
-
155
136
  function getLineInPlaneName(lineName) {
156
137
  return lineName[3];
157
138
  }
139
+
158
140
  /**
159
141
  * Returns ['XinY', 'YinX'] if planes == ['X', 'Y']
160
142
  * ['XinY', 'XinZ', 'YinX', 'YinZ', 'ZinX', 'ZinY'] if planes == ['X', 'Y', 'Z']
161
143
  * @param {string} planes name of the planes (e.g. ['X', 'Y'])
162
144
  */
163
-
164
145
  function getPlanesLineNames() {
165
- var planes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : planeNames;
166
- var lines = [];
167
- planes.forEach(function (plane) {
168
- planes.forEach(function (inPlane) {
146
+ let planes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : planeNames;
147
+ const lines = [];
148
+ planes.forEach(plane => {
149
+ planes.forEach(inPlane => {
169
150
  if (plane !== inPlane) {
170
- lines.push("".concat(plane, "in").concat(inPlane));
151
+ lines.push(`${plane}in${inPlane}`);
171
152
  }
172
153
  });
173
154
  });
174
155
  return lines;
175
156
  }
176
157
  function getLineNames(widgetState) {
177
- var planes = Object.keys(widgetState.getPlanes()).map(function (viewType) {
178
- return viewTypeToPlaneName[viewType];
179
- });
158
+ const planes = Object.keys(widgetState.getPlanes()).map(viewType => viewTypeToPlaneName[viewType]);
180
159
  return getPlanesLineNames(planes);
181
160
  }
161
+
182
162
  /**
183
163
  * Return ZinX if lineName == YinX, YinX if lineName == ZinX, ZinY if lineName == XinY...
184
164
  * @param {string} lineName name of the line (YinX, ZinX, XinY, ZinY, XinZ, YinZ)
185
165
  */
186
-
187
166
  function getOtherLineName(widgetState, lineName) {
188
- var linePlaneName = getLinePlaneName(lineName);
189
- var lineInPlaneName = getLineInPlaneName(lineName);
190
- var otherLineName = getPlaneNames(widgetState).find(function (planeName) {
191
- return planeName !== linePlaneName && planeName !== lineInPlaneName;
192
- });
193
- return "".concat(otherLineName, "in").concat(lineInPlaneName);
194
- } // Compute the offset of the rotation handle origin
167
+ const linePlaneName = getLinePlaneName(lineName);
168
+ const lineInPlaneName = getLineInPlaneName(lineName);
169
+ const otherLineName = getPlaneNames(widgetState).find(planeName => planeName !== linePlaneName && planeName !== lineInPlaneName);
170
+ return `${otherLineName}in${lineInPlaneName}`;
171
+ }
195
172
 
173
+ // Compute the offset of the rotation handle origin
196
174
  function computeRotationHandleOriginOffset(axis, rotationHandlePosition, volumeDiagonalLength, scaleInPixels) {
197
175
  // FIXME: p1 and p2 could be placed on the exact boundaries of the volume.
198
- return multiplyScalar(_toConsumableArray(axis), rotationHandlePosition * (scaleInPixels ? 1 : volumeDiagonalLength) / 2);
199
- } // Update the reslice cursor state according to the three planes normals and the origin
200
-
176
+ return multiplyScalar([...axis], rotationHandlePosition * (scaleInPixels ? 1 : volumeDiagonalLength) / 2);
177
+ }
201
178
 
179
+ // Update the reslice cursor state according to the three planes normals and the origin
202
180
  function updateState(widgetState, scaleInPixels, rotationHandlePosition) {
203
- var planes = Object.keys(widgetState.getPlanes()).map(function (viewType) {
204
- return viewTypeToPlaneName[viewType];
205
- }); // Generates an object as such:
181
+ const planes = Object.keys(widgetState.getPlanes()).map(viewType => viewTypeToPlaneName[viewType]);
182
+ // Generates an object as such:
206
183
  // axes = {'XY': cross(X, Y), 'YX': cross(X, Y), 'YZ': cross(Y, Z)...}
207
-
208
- var axes = planes.reduce(function (res, plane) {
209
- planes.filter(function (otherPlane) {
210
- return plane !== otherPlane;
211
- }).forEach(function (otherPlane) {
212
- var cross$1 = cross(widgetState.getPlanes()[planeNameToViewType[plane]].normal, widgetState.getPlanes()[planeNameToViewType[otherPlane]].normal, []);
213
- res["".concat(plane).concat(otherPlane)] = cross$1;
214
- res["".concat(otherPlane).concat(plane)] = cross$1;
184
+ const axes = planes.reduce((res, plane) => {
185
+ planes.filter(otherPlane => plane !== otherPlane).forEach(otherPlane => {
186
+ const cross$1 = cross(widgetState.getPlanes()[planeNameToViewType[plane]].normal, widgetState.getPlanes()[planeNameToViewType[otherPlane]].normal, []);
187
+ res[`${plane}${otherPlane}`] = cross$1;
188
+ res[`${otherPlane}${plane}`] = cross$1;
215
189
  });
216
190
  return res;
217
191
  }, {});
218
- var bounds = widgetState.getImage().getBounds();
219
- var center = widgetState.getCenter(); // Length of the principal diagonal.
192
+ const bounds = widgetState.getImage().getBounds();
193
+ const center = widgetState.getCenter();
220
194
 
221
- var pdLength = vtkBoundingBox.getDiagonalLength(bounds);
195
+ // Length of the principal diagonal.
196
+ const pdLength = vtkBoundingBox.getDiagonalLength(bounds);
222
197
  widgetState.getCenterHandle().setOrigin(center);
223
- getPlanesLineNames(planes).forEach(function (lineName) {
224
- var _widgetState$$getMani, _widgetState$$getMani2, _widgetState$$getMani3, _widgetState$$getMani4, _lineHandle$getManipu, _lineHandle$getManipu2;
225
-
226
- var planeName = getLinePlaneName(lineName);
227
- var inPlaneName = getLineInPlaneName(lineName);
228
- var direction = axes["".concat(planeName).concat(inPlaneName)];
229
- widgetState["getRotationHandle".concat(lineName, "0")]().setOrigin(center);
230
- (_widgetState$$getMani = widgetState["getRotationHandle".concat(lineName, "0")]().getManipulator()) === null || _widgetState$$getMani === void 0 ? void 0 : _widgetState$$getMani.setHandleOrigin(center);
231
- (_widgetState$$getMani2 = widgetState["getRotationHandle".concat(lineName, "0")]().getManipulator()) === null || _widgetState$$getMani2 === void 0 ? void 0 : _widgetState$$getMani2.setHandleNormal(widgetState.getPlanes()[planeNameToViewType[planeName]].normal);
232
- widgetState["getRotationHandle".concat(lineName, "0")]().setOffset(computeRotationHandleOriginOffset(direction, rotationHandlePosition, pdLength, scaleInPixels));
233
- widgetState["getRotationHandle".concat(lineName, "1")]().setOrigin(center);
234
- (_widgetState$$getMani3 = widgetState["getRotationHandle".concat(lineName, "1")]().getManipulator()) === null || _widgetState$$getMani3 === void 0 ? void 0 : _widgetState$$getMani3.setHandleOrigin(center);
235
- (_widgetState$$getMani4 = widgetState["getRotationHandle".concat(lineName, "1")]().getManipulator()) === null || _widgetState$$getMani4 === void 0 ? void 0 : _widgetState$$getMani4.setHandleNormal(widgetState.getPlanes()[planeNameToViewType[planeName]].normal);
236
- widgetState["getRotationHandle".concat(lineName, "1")]().setOffset(computeRotationHandleOriginOffset(direction, -rotationHandlePosition, pdLength, scaleInPixels));
237
- var lineHandle = widgetState["getAxis".concat(lineName)]();
198
+ getPlanesLineNames(planes).forEach(lineName => {
199
+ const planeName = getLinePlaneName(lineName);
200
+ const inPlaneName = getLineInPlaneName(lineName);
201
+ const direction = axes[`${planeName}${inPlaneName}`];
202
+ widgetState[`getRotationHandle${lineName}0`]().setOrigin(center);
203
+ widgetState[`getRotationHandle${lineName}0`]().getManipulator()?.setHandleOrigin(center);
204
+ widgetState[`getRotationHandle${lineName}0`]().getManipulator()?.setHandleNormal(widgetState.getPlanes()[planeNameToViewType[planeName]].normal);
205
+ widgetState[`getRotationHandle${lineName}0`]().setOffset(computeRotationHandleOriginOffset(direction, rotationHandlePosition, pdLength, scaleInPixels));
206
+ widgetState[`getRotationHandle${lineName}1`]().setOrigin(center);
207
+ widgetState[`getRotationHandle${lineName}1`]().getManipulator()?.setHandleOrigin(center);
208
+ widgetState[`getRotationHandle${lineName}1`]().getManipulator()?.setHandleNormal(widgetState.getPlanes()[planeNameToViewType[planeName]].normal);
209
+ widgetState[`getRotationHandle${lineName}1`]().setOffset(computeRotationHandleOriginOffset(direction, -rotationHandlePosition, pdLength, scaleInPixels));
210
+ const lineHandle = widgetState[`getAxis${lineName}`]();
238
211
  lineHandle.setOrigin(center);
239
- (_lineHandle$getManipu = lineHandle.getManipulator()) === null || _lineHandle$getManipu === void 0 ? void 0 : _lineHandle$getManipu.setHandleOrigin(center);
240
- (_lineHandle$getManipu2 = lineHandle.getManipulator()) === null || _lineHandle$getManipu2 === void 0 ? void 0 : _lineHandle$getManipu2.setHandleNormal(widgetState.getPlanes()[planeNameToViewType[planeName]].normal);
241
- var scale = normalize(direction);
242
- var scale3 = lineHandle.getScale3();
212
+ lineHandle.getManipulator()?.setHandleOrigin(center);
213
+ lineHandle.getManipulator()?.setHandleNormal(widgetState.getPlanes()[planeNameToViewType[planeName]].normal);
214
+ const scale = normalize(direction);
215
+ const scale3 = lineHandle.getScale3();
243
216
  scale3[2] = 2 * scale;
244
217
  lineHandle.setScale3(scale3);
245
- var right = widgetState.getPlanes()[planeNameToViewType[inPlaneName]].normal;
246
- var up = cross(direction, right, []);
218
+ const right = widgetState.getPlanes()[planeNameToViewType[inPlaneName]].normal;
219
+ const up = cross(direction, right, []);
247
220
  lineHandle.setRight(right);
248
221
  lineHandle.setUp(up);
249
222
  lineHandle.setDirection(direction);
250
223
  });
251
224
  }
225
+
252
226
  /**
253
227
  * First rotate planeToTransform to match targetPlane normal.
254
228
  * Then rotate around targetNormal to enforce targetViewUp "up" vector (i.e. Origin->p2 ).
@@ -259,11 +233,10 @@ function updateState(widgetState, scaleInPixels, rotationHandlePosition) {
259
233
  * @param {vec3} targetNormal Normal to state to the plane
260
234
  * @param {vec3} viewType Vector that enforces view up
261
235
  */
262
-
263
236
  function transformPlane(planeToTransform, targetCenter, targetNormal, targetViewUp) {
264
237
  planeToTransform.setNormal(targetNormal);
265
- var viewUp = subtract(planeToTransform.getPoint2(), planeToTransform.getOrigin(), []);
266
- var angle = signedAngleBetweenVectors(viewUp, targetViewUp, targetNormal);
238
+ const viewUp = subtract(planeToTransform.getPoint2(), planeToTransform.getOrigin(), []);
239
+ const angle = signedAngleBetweenVectors(viewUp, targetViewUp, targetNormal);
267
240
  planeToTransform.rotate(angle, targetNormal);
268
241
  planeToTransform.setCenter(targetCenter);
269
242
  }
@@ -1,11 +1,7 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
1
  import vtkStateBuilder from '../../Core/StateBuilder.js';
3
2
  import { planeNameToViewType, ScrollingMethods, planeNames } from './Constants.js';
4
3
 
5
- 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; }
6
-
7
- 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; }
8
- var defaultPlanes = {
4
+ const defaultPlanes = {
9
5
  X: {
10
6
  normal: [1, 0, 0],
11
7
  viewUp: [0, 0, 1],
@@ -22,17 +18,17 @@ var defaultPlanes = {
22
18
  color3: [0, 0, 255]
23
19
  }
24
20
  };
25
- var viewsColor3 = {
21
+ const viewsColor3 = {
26
22
  X: [255, 0, 0],
27
23
  // red
28
24
  Y: [0, 255, 0],
29
25
  // green
30
26
  Z: [0, 0, 255] // blue
31
-
32
27
  };
28
+
33
29
  function generateState() {
34
- var planes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : planeNames;
35
- var state = vtkStateBuilder.createBuilder().addField({
30
+ let planes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : planeNames;
31
+ const state = vtkStateBuilder.createBuilder().addField({
36
32
  name: 'center',
37
33
  initialValue: [0, 0, 0]
38
34
  }).addField({
@@ -43,12 +39,13 @@ function generateState() {
43
39
  initialValue: null
44
40
  }).addField({
45
41
  name: 'planes',
46
- initialValue: planes.reduce(function (res, planeName) {
47
- return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, planeNameToViewType[planeName], {
42
+ initialValue: planes.reduce((res, planeName) => ({
43
+ ...res,
44
+ [planeNameToViewType[planeName]]: {
48
45
  normal: defaultPlanes[planeName].normal,
49
46
  viewUp: defaultPlanes[planeName].viewUp
50
- }));
51
- }, {})
47
+ }
48
+ }), {})
52
49
  }).addField({
53
50
  name: 'scrollingMethod',
54
51
  initialValue: ScrollingMethods.MIDDLE_MOUSE_BUTTON
@@ -67,37 +64,33 @@ function generateState() {
67
64
  color3: [255, 255, 255]
68
65
  }
69
66
  });
70
- planes.reduce(function (viewState, view) {
71
- return planes.filter(function (v) {
72
- return v !== view;
73
- }).reduce(function (axisState, axis) {
74
- // Line handle
67
+ planes.reduce((viewState, view) => planes.filter(v => v !== view).reduce((axisState, axis) => {
68
+ // Line handle
69
+ axisState.addStateFromMixin({
70
+ labels: ['handles', 'line', `lineIn${view}`, `${axis}in${view}`],
71
+ mixins: ['origin', 'color3', 'scale3',
72
+ // scale3[2] will be automatically overwritten
73
+ 'orientation', 'visible', 'manipulator'],
74
+ name: `axis${axis}in${view}`,
75
+ initialValues: {
76
+ scale3: [4, 4, 4],
77
+ color3: viewsColor3[axis]
78
+ }
79
+ });
80
+ // Rotation handle
81
+ for (let rotationHandle = 0; rotationHandle < 2; ++rotationHandle) {
75
82
  axisState.addStateFromMixin({
76
- labels: ['handles', 'line', "lineIn".concat(view), "".concat(axis, "in").concat(view)],
77
- mixins: ['origin', 'color3', 'scale3', // scale3[2] will be automatically overwritten
78
- 'orientation', 'visible', 'manipulator'],
79
- name: "axis".concat(axis, "in").concat(view),
83
+ labels: ['handles', 'sphere', 'rotation', `rotationIn${view}`, `${axis}in${view}`, `point${rotationHandle}`],
84
+ mixins: ['origin', 'color3', 'scale1', 'visible', 'manipulator'],
85
+ name: `rotationHandle${axis}in${view}${rotationHandle}`,
80
86
  initialValues: {
81
- scale3: [4, 4, 4],
87
+ scale1: 30,
82
88
  color3: viewsColor3[axis]
83
89
  }
84
- }); // Rotation handle
85
-
86
- for (var rotationHandle = 0; rotationHandle < 2; ++rotationHandle) {
87
- axisState.addStateFromMixin({
88
- labels: ['handles', 'sphere', 'rotation', "rotationIn".concat(view), "".concat(axis, "in").concat(view), "point".concat(rotationHandle)],
89
- mixins: ['origin', 'color3', 'scale1', 'visible', 'manipulator'],
90
- name: "rotationHandle".concat(axis, "in").concat(view).concat(rotationHandle),
91
- initialValues: {
92
- scale1: 30,
93
- color3: viewsColor3[axis]
94
- }
95
- });
96
- }
97
-
98
- return axisState;
99
- }, viewState);
100
- }, state);
90
+ });
91
+ }
92
+ return axisState;
93
+ }, viewState), state);
101
94
  return state.build();
102
95
  }
103
96