@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,6 +1,4 @@
1
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
4
2
  import vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';
5
3
  import vtkImageCropFilter from '../../Filters/General/ImageCropFilter.js';
6
4
  import vtkImageMapper from '../../Rendering/Core/ImageMapper.js';
@@ -9,35 +7,37 @@ import vtkVolume from '../../Rendering/Core/Volume.js';
9
7
  import vtkVolumeMapper from '../../Rendering/Core/VolumeMapper.js';
10
8
  import vtkAbstractRepresentationProxy from '../Core/AbstractRepresentationProxy.js';
11
9
 
10
+ // ----------------------------------------------------------------------------
11
+
12
12
  function sum(a, b) {
13
13
  return a + b;
14
- } // ----------------------------------------------------------------------------
14
+ }
15
15
 
16
+ // ----------------------------------------------------------------------------
16
17
 
17
18
  function mean() {
18
19
  for (var _len = arguments.length, array = new Array(_len), _key = 0; _key < _len; _key++) {
19
20
  array[_key] = arguments[_key];
20
21
  }
21
-
22
22
  return array.reduce(sum, 0) / array.length;
23
- } // ----------------------------------------------------------------------------
23
+ }
24
24
 
25
+ // ----------------------------------------------------------------------------
25
26
 
26
27
  function updateDomains(dataset, dataArray, model, updateProp) {
27
- var dataRange = dataArray.getRange();
28
- var spacing = dataset.getSpacing();
29
- var bounds = dataset.getBounds();
30
-
31
- var _model$mapperX$getClo = model.mapperX.getClosestIJKAxis(),
32
- xIJKAxis = _model$mapperX$getClo.ijkMode;
33
-
34
- var _model$mapperY$getClo = model.mapperY.getClosestIJKAxis(),
35
- yIJKAxis = _model$mapperY$getClo.ijkMode;
36
-
37
- var _model$mapperZ$getClo = model.mapperZ.getClosestIJKAxis(),
38
- zIJKAxis = _model$mapperZ$getClo.ijkMode;
39
-
40
- var propToUpdate = {
28
+ const dataRange = dataArray.getRange();
29
+ const spacing = dataset.getSpacing();
30
+ const bounds = dataset.getBounds();
31
+ const {
32
+ ijkMode: xIJKAxis
33
+ } = model.mapperX.getClosestIJKAxis();
34
+ const {
35
+ ijkMode: yIJKAxis
36
+ } = model.mapperY.getClosestIJKAxis();
37
+ const {
38
+ ijkMode: zIJKAxis
39
+ } = model.mapperZ.getClosestIJKAxis();
40
+ const propToUpdate = {
41
41
  xSlice: {
42
42
  domain: {
43
43
  min: bounds[0],
@@ -86,59 +86,63 @@ function updateDomains(dataset, dataArray, model, updateProp) {
86
86
  windowWidth: propToUpdate.windowWidth.domain.max,
87
87
  windowLevel: Math.floor(mean(propToUpdate.windowLevel.domain.min, propToUpdate.windowLevel.domain.max))
88
88
  };
89
- } // ----------------------------------------------------------------------------
89
+ }
90
90
 
91
+ // ----------------------------------------------------------------------------
91
92
 
92
93
  function updateConfiguration(dataset, dataArray, _ref) {
93
- _ref.mapper;
94
- var property = _ref.property;
94
+ let {
95
+ mapper,
96
+ property
97
+ } = _ref;
95
98
  // Configuration
96
99
  // actor.getProperty().setInterpolationTypeToFastLinear();
97
100
  property.setInterpolationTypeToLinear();
98
- var numberOfComponents = dataArray.getNumberOfComponents();
99
- var scalarOpacityUnitDistance = vtkBoundingBox.getDiagonalLength(dataset.getBounds()) / Math.max.apply(Math, _toConsumableArray(dataset.getDimensions()));
100
-
101
- for (var component = 0; component < numberOfComponents; component++) {
101
+ const numberOfComponents = dataArray.getNumberOfComponents();
102
+ const scalarOpacityUnitDistance = vtkBoundingBox.getDiagonalLength(dataset.getBounds()) / Math.max(...dataset.getDimensions());
103
+ for (let component = 0; component < numberOfComponents; component++) {
102
104
  // For better looking volume rendering
103
105
  // - distance in world coordinates a scalar opacity of 1.0
104
106
  property.setScalarOpacityUnitDistance(component, scalarOpacityUnitDistance);
105
- var dataRange = dataArray.getRange(component); // - control how we emphasize surface boundaries
107
+ const dataRange = dataArray.getRange(component);
108
+ // - control how we emphasize surface boundaries
106
109
  // => max should be around the average gradient magnitude for the
107
110
  // volume or maybe average plus one std dev of the gradient magnitude
108
111
  // (adjusted for spacing, this is a world coordinate gradient, not a
109
112
  // pixel gradient)
110
113
  // => max hack: (dataRange[1] - dataRange[0]) * 0.05
111
-
112
114
  property.setGradientOpacityMinimumValue(component, 0);
113
- property.setGradientOpacityMaximumValue(component, (dataRange[1] - dataRange[0]) * 0.05); // - Use shading based on gradient
114
-
115
+ property.setGradientOpacityMaximumValue(component, (dataRange[1] - dataRange[0]) * 0.05);
116
+ // - Use shading based on gradient
115
117
  property.setShade(true);
116
- property.setUseGradientOpacity(component, true); // - generic good default
117
-
118
+ property.setUseGradientOpacity(component, true);
119
+ // - generic good default
118
120
  property.setGradientOpacityMinimumOpacity(component, 0.0);
119
121
  property.setGradientOpacityMaximumOpacity(component, 1.0);
120
122
  }
121
-
122
123
  property.setAmbient(0.2);
123
124
  property.setDiffuse(0.7);
124
125
  property.setSpecular(0.3);
125
126
  property.setSpecularPower(8.0);
126
- } // ----------------------------------------------------------------------------
127
+ }
128
+
129
+ // ----------------------------------------------------------------------------
127
130
  // vtkVolumeRepresentationProxy methods
128
131
  // ----------------------------------------------------------------------------
129
132
 
130
-
131
133
  function vtkVolumeRepresentationProxy(publicAPI, model) {
132
134
  // Set our className
133
- model.classHierarchy.push('vtkVolumeRepresentationProxy'); // Volume
135
+ model.classHierarchy.push('vtkVolumeRepresentationProxy');
134
136
 
137
+ // Volume
135
138
  model.mapper = vtkVolumeMapper.newInstance();
136
139
  model.volume = vtkVolume.newInstance();
137
140
  model.property = model.volume.getProperty();
138
141
  model.cropFilter = vtkImageCropFilter.newInstance();
139
142
  model.mapper.setInputConnection(model.cropFilter.getOutputPort());
140
- model.sourceDependencies.push(model.cropFilter); // Slices
143
+ model.sourceDependencies.push(model.cropFilter);
141
144
 
145
+ // Slices
142
146
  model.mapperX = vtkImageMapper.newInstance({
143
147
  slicingMode: vtkImageMapper.SlicingMode.X
144
148
  });
@@ -162,81 +166,68 @@ function vtkVolumeRepresentationProxy(publicAPI, model) {
162
166
  });
163
167
  model.mapperX.setInputConnection(model.cropFilter.getOutputPort());
164
168
  model.mapperY.setInputConnection(model.cropFilter.getOutputPort());
165
- model.mapperZ.setInputConnection(model.cropFilter.getOutputPort()); // model.sourceDependencies.push(model.mapperX);
169
+ model.mapperZ.setInputConnection(model.cropFilter.getOutputPort());
170
+ // model.sourceDependencies.push(model.mapperX);
166
171
  // model.sourceDependencies.push(model.mapperY);
167
172
  // model.sourceDependencies.push(model.mapperZ);
168
- // connect rendering pipeline
169
173
 
174
+ // connect rendering pipeline
170
175
  model.volume.setMapper(model.mapper);
171
- model.volumes.push(model.volume); // Connect slice pipeline
176
+ model.volumes.push(model.volume);
172
177
 
178
+ // Connect slice pipeline
173
179
  model.actorX.setMapper(model.mapperX);
174
180
  model.actors.push(model.actorX);
175
181
  model.actorY.setMapper(model.mapperY);
176
182
  model.actors.push(model.actorY);
177
183
  model.actorZ.setMapper(model.mapperZ);
178
184
  model.actors.push(model.actorZ);
179
-
180
185
  function setInputData(inputDataset) {
181
- var _publicAPI$getColorBy = publicAPI.getColorBy(),
182
- _publicAPI$getColorBy2 = _slicedToArray(_publicAPI$getColorBy, 2),
183
- name = _publicAPI$getColorBy2[0],
184
- location = _publicAPI$getColorBy2[1];
185
-
186
+ const [name, location] = publicAPI.getColorBy();
186
187
  publicAPI.rescaleTransferFunctionToDataRange(name, location);
187
- var lutProxy = publicAPI.getLookupTableProxy(name);
188
- var pwfProxy = publicAPI.getPiecewiseFunctionProxy(name);
188
+ const lutProxy = publicAPI.getLookupTableProxy(name);
189
+ const pwfProxy = publicAPI.getPiecewiseFunctionProxy(name);
189
190
  model.property.setRGBTransferFunction(0, lutProxy.getLookupTable());
190
191
  model.property.setScalarOpacity(0, pwfProxy.getPiecewiseFunction());
191
192
  updateConfiguration(inputDataset, publicAPI.getDataArray(), model);
192
-
193
193
  if (model.sampleDistance < 0 || model.sampleDistance > 1) {
194
194
  publicAPI.setSampleDistance();
195
195
  }
196
-
197
196
  if (model.edgeGradient < 0 || model.edgeGradient > 1) {
198
197
  publicAPI.setEdgeGradient();
199
- } // Update domains
200
-
201
-
202
- var state = updateDomains(inputDataset, publicAPI.getDataArray(), model, publicAPI.updateProxyProperty);
203
- publicAPI.set(state); // Check for 2D volumes
198
+ }
204
199
 
205
- var numberOfDimensions = inputDataset.getDimensions().reduce(function (number, dimension) {
206
- return number + (dimension > 1 ? 1 : 0);
207
- }, 0);
200
+ // Update domains
201
+ const state = updateDomains(inputDataset, publicAPI.getDataArray(), model, publicAPI.updateProxyProperty);
202
+ publicAPI.set(state);
208
203
 
204
+ // Check for 2D volumes
205
+ const numberOfDimensions = inputDataset.getDimensions().reduce((number, dimension) => number + (dimension > 1 ? 1 : 0), 0);
209
206
  if (numberOfDimensions === 2) {
210
207
  publicAPI.setIs2DVolume(true);
211
208
  }
212
209
  }
213
-
214
210
  model.sourceDependencies.push({
215
- setInputData: setInputData
216
- }); // API ----------------------------------------------------------------------
211
+ setInputData
212
+ });
213
+
214
+ // API ----------------------------------------------------------------------
217
215
 
218
216
  /**
219
217
  * Choose whether the input volume should be treated as a 2D volume
220
218
  * (no volume rendering).
221
219
  */
222
-
223
- publicAPI.setIs2DVolume = function (is2D) {
220
+ publicAPI.setIs2DVolume = is2D => {
224
221
  model.is2DVolume = is2D;
225
-
226
222
  if (is2D) {
227
223
  if (publicAPI.getVisibility()) {
228
224
  publicAPI.setSliceVisibility(true);
229
225
  }
230
-
231
226
  model.volume.setVisibility(false);
232
227
  }
233
228
  };
234
-
235
- publicAPI.isVisible = function () {
236
- return model.volume.getVisibility();
237
- };
238
-
239
- publicAPI.setVisibility = function (isVisible) {
229
+ publicAPI.isVisible = () => model.volume.getVisibility();
230
+ publicAPI.setVisibility = isVisible => {
240
231
  if (isVisible) {
241
232
  if (model.is2DVolume) {
242
233
  publicAPI.setSliceVisibility(true);
@@ -249,108 +240,88 @@ function vtkVolumeRepresentationProxy(publicAPI, model) {
249
240
  publicAPI.setSliceVisibility(false);
250
241
  }
251
242
  };
252
-
253
- publicAPI.getVisibility = function () {
254
- return model.volume.getVisibility() || publicAPI.getSliceVisibility();
255
- };
256
-
243
+ publicAPI.getVisibility = () => model.volume.getVisibility() || publicAPI.getSliceVisibility();
257
244
  publicAPI.isVisible = publicAPI.getVisibility;
258
-
259
- publicAPI.setSliceVisibility = function (isVisible) {
245
+ publicAPI.setSliceVisibility = isVisible => {
260
246
  if (isVisible && model.is2DVolume) {
261
- var normalAxis = publicAPI.getInputDataSet().getDimensions().indexOf(1);
262
-
247
+ const normalAxis = publicAPI.getInputDataSet().getDimensions().indexOf(1);
263
248
  if (model.actors[normalAxis]) {
264
249
  model.actors[normalAxis].setVisibility(true);
265
250
  }
266
251
  } else {
267
- model.actors.forEach(function (actor) {
268
- return actor.setVisibility(isVisible);
269
- });
252
+ model.actors.forEach(actor => actor.setVisibility(isVisible));
270
253
  }
271
254
  };
272
-
273
- publicAPI.getSliceVisibility = function () {
274
- return model.actorX.getVisibility() || model.actorY.getVisibility() || model.actorZ.getVisibility();
275
- };
276
-
255
+ publicAPI.getSliceVisibility = () => model.actorX.getVisibility() || model.actorY.getVisibility() || model.actorZ.getVisibility();
277
256
  publicAPI.setSampleDistance = function () {
278
- var distance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.4;
279
-
257
+ let distance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.4;
280
258
  if (model.sampleDistance !== distance) {
281
259
  model.sampleDistance = distance;
282
- var sourceDS = publicAPI.getInputDataSet();
283
- var sampleDistance = 0.7 * Math.sqrt(sourceDS.getSpacing().map(function (v) {
284
- return v * v;
285
- }).reduce(function (a, b) {
286
- return a + b;
287
- }, 0));
288
- model.mapper.setSampleDistance(sampleDistance * Math.pow(2, distance * 3.0 - 1.5));
260
+ const sourceDS = publicAPI.getInputDataSet();
261
+ const sampleDistance = 0.7 * Math.sqrt(sourceDS.getSpacing().map(v => v * v).reduce((a, b) => a + b, 0));
262
+ model.mapper.setSampleDistance(sampleDistance * 2 ** (distance * 3.0 - 1.5));
289
263
  publicAPI.modified();
290
264
  }
291
265
  };
292
-
293
266
  publicAPI.setEdgeGradient = function () {
294
- var edgeGradient = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.2;
295
-
267
+ let edgeGradient = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.2;
296
268
  if (model.edgeGradient !== edgeGradient) {
297
269
  model.edgeGradient = edgeGradient;
298
- var dataArray = publicAPI.getDataArray();
299
- var numberOfComponents = dataArray.getNumberOfComponents();
300
-
270
+ const dataArray = publicAPI.getDataArray();
271
+ const numberOfComponents = dataArray.getNumberOfComponents();
301
272
  if (edgeGradient === 0) {
302
- for (var component = 0; component < numberOfComponents; component++) {
273
+ for (let component = 0; component < numberOfComponents; component++) {
303
274
  model.volume.getProperty().setUseGradientOpacity(component, false);
304
275
  }
305
276
  } else {
306
- for (var _component = 0; _component < numberOfComponents; _component++) {
307
- var dataRange = dataArray.getRange(_component);
308
- model.volume.getProperty().setUseGradientOpacity(_component, true);
309
- var minV = Math.max(0.0, edgeGradient - 0.3) / 0.7;
310
-
277
+ for (let component = 0; component < numberOfComponents; component++) {
278
+ const dataRange = dataArray.getRange(component);
279
+ model.volume.getProperty().setUseGradientOpacity(component, true);
280
+ const minV = Math.max(0.0, edgeGradient - 0.3) / 0.7;
311
281
  if (minV > 0.0) {
312
- model.volume.getProperty().setGradientOpacityMinimumValue(_component, Math.exp(Math.log((dataRange[1] - dataRange[0]) * 0.2) * minV * minV));
282
+ model.volume.getProperty().setGradientOpacityMinimumValue(component, Math.exp(Math.log((dataRange[1] - dataRange[0]) * 0.2) * minV * minV));
313
283
  } else {
314
- model.volume.getProperty().setGradientOpacityMinimumValue(_component, 0.0);
284
+ model.volume.getProperty().setGradientOpacityMinimumValue(component, 0.0);
315
285
  }
316
-
317
- model.volume.getProperty().setGradientOpacityMaximumValue(_component, Math.exp(Math.log((dataRange[1] - dataRange[0]) * 1.0) * edgeGradient * edgeGradient));
286
+ model.volume.getProperty().setGradientOpacityMaximumValue(component, Math.exp(Math.log((dataRange[1] - dataRange[0]) * 1.0) * edgeGradient * edgeGradient));
318
287
  }
319
288
  }
320
-
321
289
  publicAPI.modified();
322
290
  }
323
291
  };
324
-
325
- var parentSetColorBy = publicAPI.setColorBy;
326
-
292
+ const parentSetColorBy = publicAPI.setColorBy;
327
293
  publicAPI.setColorBy = function (arrayName, arrayLocation) {
328
- var componentIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
294
+ let componentIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
329
295
  parentSetColorBy(arrayName, arrayLocation, componentIndex);
330
- var lutProxy = publicAPI.getLookupTableProxy(arrayName);
331
- var pwfProxy = publicAPI.getPiecewiseFunctionProxy(arrayName);
296
+ const lutProxy = publicAPI.getLookupTableProxy(arrayName);
297
+ const pwfProxy = publicAPI.getPiecewiseFunctionProxy(arrayName);
332
298
  model.property.setRGBTransferFunction(0, lutProxy.getLookupTable());
333
299
  model.property.setScalarOpacity(0, pwfProxy.getPiecewiseFunction());
334
300
  };
335
- } // ----------------------------------------------------------------------------
301
+ }
302
+
303
+ // ----------------------------------------------------------------------------
336
304
  // Object factory
337
305
  // ----------------------------------------------------------------------------
338
306
 
339
-
340
- var DEFAULT_VALUES = {
307
+ const DEFAULT_VALUES = {
341
308
  sampleDistance: -1,
342
309
  edgeGradient: -1,
343
310
  disableSolidColor: true,
344
311
  is2DVolume: false
345
- }; // ----------------------------------------------------------------------------
312
+ };
313
+
314
+ // ----------------------------------------------------------------------------
346
315
 
347
316
  function extend(publicAPI, model) {
348
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
349
- Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods
317
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
318
+ Object.assign(model, DEFAULT_VALUES, initialValues);
350
319
 
320
+ // Object methods
351
321
  vtkAbstractRepresentationProxy.extend(publicAPI, model, initialValues);
352
- macro.get(publicAPI, model, ['sampleDistance', 'edgeGradient', 'cropFilter', 'is2DVolume']); // Object specific methods
322
+ macro.get(publicAPI, model, ['sampleDistance', 'edgeGradient', 'cropFilter', 'is2DVolume']);
353
323
 
324
+ // Object specific methods
354
325
  vtkVolumeRepresentationProxy(publicAPI, model);
355
326
  macro.proxyPropertyMapping(publicAPI, model, {
356
327
  xSlice: {
@@ -398,14 +369,18 @@ function extend(publicAPI, model) {
398
369
  property: 'croppingPlanes'
399
370
  }
400
371
  });
401
- } // ----------------------------------------------------------------------------
372
+ }
402
373
 
403
- var newInstance = macro.newInstance(extend, 'vtkVolumeRepresentationProxy'); // ----------------------------------------------------------------------------
374
+ // ----------------------------------------------------------------------------
375
+
376
+ const newInstance = macro.newInstance(extend, 'vtkVolumeRepresentationProxy');
377
+
378
+ // ----------------------------------------------------------------------------
404
379
 
405
380
  var vtkVolumeRepresentationProxy$1 = {
406
- newInstance: newInstance,
407
- extend: extend,
408
- updateConfiguration: updateConfiguration
381
+ newInstance,
382
+ extend,
383
+ updateConfiguration
409
384
  };
410
385
 
411
386
  export { vtkVolumeRepresentationProxy$1 as default, extend, newInstance };
@@ -7,13 +7,13 @@ import vtkSlicedGeometryRepresentationProxy from './Representations/SlicedGeomet
7
7
  import vtkVolumeRepresentationProxy from './Representations/VolumeRepresentationProxy.js';
8
8
 
9
9
  var Representations = {
10
- vtkGeometryRepresentationProxy: vtkGeometryRepresentationProxy,
11
- vtkGlyphRepresentationProxy: vtkGlyphRepresentationProxy,
12
- vtkMoleculeRepresentationProxy: vtkMoleculeRepresentationProxy,
13
- vtkSkyboxRepresentationProxy: vtkSkyboxRepresentationProxy,
14
- vtkSliceRepresentationProxy: vtkSliceRepresentationProxy,
15
- vtkSlicedGeometryRepresentationProxy: vtkSlicedGeometryRepresentationProxy,
16
- vtkVolumeRepresentationProxy: vtkVolumeRepresentationProxy
10
+ vtkGeometryRepresentationProxy,
11
+ vtkGlyphRepresentationProxy,
12
+ vtkMoleculeRepresentationProxy,
13
+ vtkSkyboxRepresentationProxy,
14
+ vtkSliceRepresentationProxy,
15
+ vtkSlicedGeometryRepresentationProxy,
16
+ vtkVolumeRepresentationProxy
17
17
  };
18
18
 
19
19
  export { Representations as default };
package/Proxy/index.js CHANGED
@@ -2,8 +2,8 @@ import Core from './Core.js';
2
2
  import Representations from './Representations.js';
3
3
 
4
4
  var VTKProxy = {
5
- Core: Core,
6
- Representations: Representations
5
+ Core,
6
+ Representations
7
7
  };
8
8
 
9
9
  export { VTKProxy as default };
@@ -9,50 +9,47 @@ import vtkPlane from '../../../Common/DataModel/Plane.js';
9
9
  * @param {Vector3} p2
10
10
  * @param {vtkImageMapper|vtkImageArrayMapper} mapper
11
11
  */
12
-
13
12
  function doPicking(p1, p2, mapper) {
14
- var imageData = mapper.getCurrentImage();
15
- var extent = imageData.getExtent(); // Slice origin
16
-
17
- var ijk = [extent[0], extent[2], extent[4]];
18
-
19
- var _mapper$getClosestIJK = mapper.getClosestIJKAxis(),
20
- ijkMode = _mapper$getClosestIJK.ijkMode;
21
-
22
- var nSlice = mapper.isA('vtkImageArrayMapper') ? mapper.getSubSlice() : mapper.getSlice();
23
-
13
+ const imageData = mapper.getCurrentImage();
14
+ const extent = imageData.getExtent();
15
+
16
+ // Slice origin
17
+ const ijk = [extent[0], extent[2], extent[4]];
18
+ const {
19
+ ijkMode
20
+ } = mapper.getClosestIJKAxis();
21
+ let nSlice = mapper.isA('vtkImageArrayMapper') ? mapper.getSubSlice() : mapper.getSlice();
24
22
  if (ijkMode !== mapper.getSlicingMode()) {
25
23
  // If not IJK slicing, get the IJK slice from the XYZ position/slice
26
24
  nSlice = mapper.getSliceAtPosition(nSlice);
27
25
  }
28
-
29
26
  ijk[ijkMode] += nSlice;
30
- var worldOrigin = [0, 0, 0];
31
- imageData.indexToWorld(ijk, worldOrigin); // Normal computation
27
+ const worldOrigin = [0, 0, 0];
28
+ imageData.indexToWorld(ijk, worldOrigin);
32
29
 
30
+ // Normal computation
33
31
  ijk[ijkMode] += 1;
34
- var worldNormal = [0, 0, 0];
32
+ const worldNormal = [0, 0, 0];
35
33
  imageData.indexToWorld(ijk, worldNormal);
36
34
  worldNormal[0] -= worldOrigin[0];
37
35
  worldNormal[1] -= worldOrigin[1];
38
36
  worldNormal[2] -= worldOrigin[2];
39
37
  vec3.normalize(worldNormal, worldNormal);
40
- var intersect = vtkPlane.intersectWithLine(p1, p2, worldOrigin, worldNormal);
41
-
38
+ const intersect = vtkPlane.intersectWithLine(p1, p2, worldOrigin, worldNormal);
42
39
  if (intersect.intersection) {
43
- var point = intersect.x;
44
- var absoluteIJK = [0, 0, 0];
45
- imageData.worldToIndex(point, absoluteIJK); // `t` is the parametric position along the line
40
+ const point = intersect.x;
41
+ const absoluteIJK = [0, 0, 0];
42
+ imageData.worldToIndex(point, absoluteIJK);
43
+ // `t` is the parametric position along the line
46
44
  // defined in Plane.intersectWithLine
47
-
48
45
  return {
49
46
  t: intersect.t,
50
- absoluteIJK: absoluteIJK
47
+ absoluteIJK
51
48
  };
52
49
  }
53
-
54
50
  return null;
55
51
  }
52
+
56
53
  /**
57
54
  * Implement point picking for image plane.
58
55
  * The plane is defined by the imageData and current slice number,
@@ -62,30 +59,28 @@ function doPicking(p1, p2, mapper) {
62
59
  * @param {Vector3} p2
63
60
  * @param {vtkImageMapper|vtkImageArrayMapper} mapper
64
61
  */
65
-
66
-
67
62
  function intersectWithLineForPointPicking(p1, p2, mapper) {
68
- var pickingData = doPicking(p1, p2, mapper);
69
-
63
+ const pickingData = doPicking(p1, p2, mapper);
70
64
  if (pickingData) {
71
- var imageData = mapper.getCurrentImage();
72
- var extent = imageData.getExtent(); // Get closer integer ijk
73
- // NB: point picking means closest slice, means rounding
65
+ const imageData = mapper.getCurrentImage();
66
+ const extent = imageData.getExtent();
74
67
 
75
- var ijk = [Math.round(pickingData.absoluteIJK[0]), Math.round(pickingData.absoluteIJK[1]), Math.round(pickingData.absoluteIJK[2])]; // Are we outside our actual extent
68
+ // Get closer integer ijk
69
+ // NB: point picking means closest slice, means rounding
70
+ const ijk = [Math.round(pickingData.absoluteIJK[0]), Math.round(pickingData.absoluteIJK[1]), Math.round(pickingData.absoluteIJK[2])];
76
71
 
72
+ // Are we outside our actual extent
77
73
  if (ijk[0] < extent[0] || ijk[0] > extent[1] || ijk[1] < extent[2] || ijk[1] > extent[3] || ijk[2] < extent[4] || ijk[2] > extent[5]) {
78
74
  return null;
79
75
  }
80
-
81
76
  return {
82
77
  t: pickingData.t,
83
- ijk: ijk
78
+ ijk
84
79
  };
85
80
  }
86
-
87
81
  return null;
88
82
  }
83
+
89
84
  /**
90
85
  * Implement cell picking for image plane.
91
86
  * The plane is defined by the imageData and current slice number,
@@ -95,32 +90,32 @@ function intersectWithLineForPointPicking(p1, p2, mapper) {
95
90
  * @param {Vector3} p2
96
91
  * @param {vtkImageMapper|vtkImageArrayMapper} mapper
97
92
  */
98
-
99
93
  function intersectWithLineForCellPicking(p1, p2, mapper) {
100
- var pickingData = doPicking(p1, p2, mapper);
101
-
94
+ const pickingData = doPicking(p1, p2, mapper);
102
95
  if (pickingData) {
103
- var imageData = mapper.getCurrentImage();
104
- var extent = imageData.getExtent();
105
- var absIJK = pickingData.absoluteIJK; // Get closer integer ijk
106
- // NB: cell picking means closest voxel, means flooring
96
+ const imageData = mapper.getCurrentImage();
97
+ const extent = imageData.getExtent();
98
+ const absIJK = pickingData.absoluteIJK;
107
99
 
108
- var ijk = [Math.floor(absIJK[0]), Math.floor(absIJK[1]), Math.floor(absIJK[2])]; // Are we outside our actual extent
100
+ // Get closer integer ijk
101
+ // NB: cell picking means closest voxel, means flooring
102
+ const ijk = [Math.floor(absIJK[0]), Math.floor(absIJK[1]), Math.floor(absIJK[2])];
109
103
 
110
- if (ijk[0] < extent[0] || ijk[0] > extent[1] - 1 || ijk[1] < extent[2] || ijk[1] > extent[3] - 1 || ijk[2] < extent[4] || // handle single-slice images
104
+ // Are we outside our actual extent
105
+ if (ijk[0] < extent[0] || ijk[0] > extent[1] - 1 || ijk[1] < extent[2] || ijk[1] > extent[3] - 1 || ijk[2] < extent[4] ||
106
+ // handle single-slice images
111
107
  ijk[2] > (extent[5] ? extent[5] - 1 : extent[5])) {
112
108
  return null;
113
- } // Parametric coordinates within cell
114
-
109
+ }
115
110
 
116
- var pCoords = [absIJK[0] - ijk[0], absIJK[1] - ijk[1], absIJK[2] - ijk[2]];
111
+ // Parametric coordinates within cell
112
+ const pCoords = [absIJK[0] - ijk[0], absIJK[1] - ijk[1], absIJK[2] - ijk[2]];
117
113
  return {
118
114
  t: pickingData.t,
119
- ijk: ijk,
120
- pCoords: pCoords
115
+ ijk,
116
+ pCoords
121
117
  };
122
118
  }
123
-
124
119
  return null;
125
120
  }
126
121