@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,60 +1,59 @@
1
1
  import { mat4, vec3 } from 'gl-matrix';
2
- import { newInstance as newInstance$1, get, setGet, getArray, setGetArray, moveToProtected, vtkDebugMacro as vtkDebugMacro$1, vtkErrorMacro as vtkErrorMacro$1, vtkWarningMacro as vtkWarningMacro$1 } from '../../macros.js';
2
+ import { n as newInstance$1, g as get, e as setGet, k as getArray, l as setGetArray, i as moveToProtected, c as macro } from '../../macros2.js';
3
3
  import vtkCamera from './Camera.js';
4
4
  import vtkLight from './Light.js';
5
5
  import { Q as areBoundsInitialized, u as uninitializeBounds, r as radiansFromDegrees, d as dot, F as createUninitializedBounds } from '../../Common/Core/Math/index.js';
6
6
  import vtkViewport from './Viewport.js';
7
7
  import vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';
8
8
 
9
- var vtkDebugMacro = vtkDebugMacro$1,
10
- vtkErrorMacro = vtkErrorMacro$1,
11
- vtkWarningMacro = vtkWarningMacro$1;
12
-
9
+ const {
10
+ vtkDebugMacro,
11
+ vtkErrorMacro,
12
+ vtkWarningMacro
13
+ } = macro;
13
14
  function notImplemented(method) {
14
- return function () {
15
- return vtkErrorMacro("vtkRenderer::".concat(method, " - NOT IMPLEMENTED"));
16
- };
17
- } // ----------------------------------------------------------------------------
15
+ return () => vtkErrorMacro(`vtkRenderer::${method} - NOT IMPLEMENTED`);
16
+ }
17
+
18
+ // ----------------------------------------------------------------------------
18
19
  // vtkRenderer methods
19
20
  // ----------------------------------------------------------------------------
20
21
 
21
-
22
22
  function vtkRenderer(publicAPI, model) {
23
23
  // Set our className
24
- model.classHierarchy.push('vtkRenderer'); // Events
24
+ model.classHierarchy.push('vtkRenderer');
25
25
 
26
- var COMPUTE_VISIBLE_PROP_BOUNDS_EVENT = {
26
+ // Events
27
+ const COMPUTE_VISIBLE_PROP_BOUNDS_EVENT = {
27
28
  type: 'ComputeVisiblePropBoundsEvent',
28
29
  renderer: publicAPI
29
30
  };
30
- var RESET_CAMERA_CLIPPING_RANGE_EVENT = {
31
+ const RESET_CAMERA_CLIPPING_RANGE_EVENT = {
31
32
  type: 'ResetCameraClippingRangeEvent',
32
33
  renderer: publicAPI
33
34
  };
34
- var RESET_CAMERA_EVENT = {
35
+ const RESET_CAMERA_EVENT = {
35
36
  type: 'ResetCameraEvent',
36
37
  renderer: publicAPI
37
38
  };
38
-
39
- publicAPI.updateCamera = function () {
39
+ publicAPI.updateCamera = () => {
40
40
  if (!model.activeCamera) {
41
- vtkDebugMacro('No cameras are on, creating one.'); // the get method will automagically create a camera
41
+ vtkDebugMacro('No cameras are on, creating one.');
42
+ // the get method will automagically create a camera
42
43
  // and reset it since one hasn't been specified yet.
43
-
44
44
  publicAPI.getActiveCameraAndResetIfCreated();
45
- } // update the viewing transformation
46
-
45
+ }
47
46
 
47
+ // update the viewing transformation
48
48
  model.activeCamera.render(publicAPI);
49
49
  return true;
50
50
  };
51
-
52
- publicAPI.updateLightsGeometryToFollowCamera = function () {
51
+ publicAPI.updateLightsGeometryToFollowCamera = () => {
53
52
  // only update the light's geometry if this Renderer is tracking
54
53
  // this lights. That allows one renderer to view the lights that
55
54
  // another renderer is setting up.
56
- var camera = publicAPI.getActiveCameraAndResetIfCreated();
57
- model.lights.forEach(function (light) {
55
+ const camera = publicAPI.getActiveCameraAndResetIfCreated();
56
+ model.lights.forEach(light => {
58
57
  if (light.lightTypeIsSceneLight()) ; else if (light.lightTypeIsHeadLight()) {
59
58
  // update position and orientation of light to match camera.
60
59
  light.setPositionFrom(camera.getPositionByReference());
@@ -67,354 +66,302 @@ function vtkRenderer(publicAPI, model) {
67
66
  }
68
67
  });
69
68
  };
70
-
71
- publicAPI.updateLightGeometry = function () {
69
+ publicAPI.updateLightGeometry = () => {
72
70
  if (model.lightFollowCamera) {
73
71
  // only update the light's geometry if this Renderer is tracking
74
72
  // this lights. That allows one renderer to view the lights that
75
73
  // another renderer is setting up.
76
74
  return publicAPI.updateLightsGeometryToFollowCamera();
77
75
  }
78
-
79
76
  return true;
80
77
  };
81
-
82
78
  publicAPI.allocateTime = notImplemented('allocateTime');
83
79
  publicAPI.updateGeometry = notImplemented('updateGeometry');
84
-
85
- publicAPI.getVTKWindow = function () {
86
- return model._renderWindow;
87
- };
88
-
89
- publicAPI.setLayer = function (layer) {
80
+ publicAPI.getVTKWindow = () => model._renderWindow;
81
+ publicAPI.setLayer = layer => {
90
82
  vtkDebugMacro(publicAPI.getClassName(), publicAPI, 'setting Layer to ', layer);
91
-
92
83
  if (model.layer !== layer) {
93
84
  model.layer = layer;
94
85
  publicAPI.modified();
95
86
  }
96
-
97
87
  publicAPI.setPreserveColorBuffer(!!layer);
98
88
  };
99
-
100
- publicAPI.setActiveCamera = function (camera) {
89
+ publicAPI.setActiveCamera = camera => {
101
90
  if (model.activeCamera === camera) {
102
91
  return false;
103
92
  }
104
-
105
93
  model.activeCamera = camera;
106
94
  publicAPI.modified();
107
95
  publicAPI.invokeEvent({
108
96
  type: 'ActiveCameraEvent',
109
- camera: camera
97
+ camera
110
98
  });
111
99
  return true;
112
100
  };
113
-
114
- publicAPI.makeCamera = function () {
115
- var camera = vtkCamera.newInstance();
101
+ publicAPI.makeCamera = () => {
102
+ const camera = vtkCamera.newInstance();
116
103
  publicAPI.invokeEvent({
117
104
  type: 'CreateCameraEvent',
118
- camera: camera
105
+ camera
119
106
  });
120
107
  return camera;
121
- }; // Replace the set/get macro method
122
-
108
+ };
123
109
 
124
- publicAPI.getActiveCamera = function () {
110
+ // Replace the set/get macro method
111
+ publicAPI.getActiveCamera = () => {
125
112
  if (!model.activeCamera) {
126
113
  model.activeCamera = publicAPI.makeCamera();
127
114
  }
128
-
129
115
  return model.activeCamera;
130
116
  };
131
-
132
- publicAPI.getActiveCameraAndResetIfCreated = function () {
117
+ publicAPI.getActiveCameraAndResetIfCreated = () => {
133
118
  if (!model.activeCamera) {
134
119
  publicAPI.getActiveCamera();
135
120
  publicAPI.resetCamera();
136
121
  }
137
-
138
122
  return model.activeCamera;
139
123
  };
140
-
141
- publicAPI.getActors = function () {
124
+ publicAPI.getActors = () => {
142
125
  model.actors = [];
143
- model.props.forEach(function (prop) {
126
+ model.props.forEach(prop => {
144
127
  model.actors = model.actors.concat(prop.getActors());
145
128
  });
146
129
  return model.actors;
147
130
  };
148
-
149
131
  publicAPI.addActor = publicAPI.addViewProp;
150
-
151
- publicAPI.removeActor = function (actor) {
152
- model.actors = model.actors.filter(function (a) {
153
- return a !== actor;
154
- });
132
+ publicAPI.removeActor = actor => {
133
+ model.actors = model.actors.filter(a => a !== actor);
155
134
  publicAPI.removeViewProp(actor);
156
135
  publicAPI.modified();
157
136
  };
158
-
159
- publicAPI.removeAllActors = function () {
160
- var actors = publicAPI.getActors();
161
- actors.forEach(function (actor) {
137
+ publicAPI.removeAllActors = () => {
138
+ const actors = publicAPI.getActors();
139
+ actors.forEach(actor => {
162
140
  publicAPI.removeViewProp(actor);
163
141
  });
164
142
  model.actors = [];
165
143
  publicAPI.modified();
166
144
  };
167
-
168
- publicAPI.getVolumes = function () {
145
+ publicAPI.getVolumes = () => {
169
146
  model.volumes = [];
170
- model.props.forEach(function (prop) {
147
+ model.props.forEach(prop => {
171
148
  model.volumes = model.volumes.concat(prop.getVolumes());
172
149
  });
173
150
  return model.volumes;
174
151
  };
175
-
176
152
  publicAPI.addVolume = publicAPI.addViewProp;
177
-
178
- publicAPI.removeVolume = function (volume) {
179
- model.volumes = model.volumes.filter(function (v) {
180
- return v !== volume;
181
- });
153
+ publicAPI.removeVolume = volume => {
154
+ model.volumes = model.volumes.filter(v => v !== volume);
182
155
  publicAPI.removeViewProp(volume);
183
156
  publicAPI.modified();
184
157
  };
185
-
186
- publicAPI.removeAllVolumes = function () {
187
- var volumes = publicAPI.getVolumes();
188
- volumes.forEach(function (volume) {
158
+ publicAPI.removeAllVolumes = () => {
159
+ const volumes = publicAPI.getVolumes();
160
+ volumes.forEach(volume => {
189
161
  publicAPI.removeViewProp(volume);
190
162
  });
191
163
  model.volumes = [];
192
164
  publicAPI.modified();
193
165
  };
194
-
195
- publicAPI.hasLight = function (light) {
196
- return model.lights.includes(light);
197
- };
198
-
199
- publicAPI.addLight = function (light) {
166
+ publicAPI.hasLight = light => model.lights.includes(light);
167
+ publicAPI.addLight = light => {
200
168
  if (light && !publicAPI.hasLight(light)) {
201
169
  model.lights.push(light);
202
170
  publicAPI.modified();
203
171
  }
204
172
  };
205
-
206
- publicAPI.removeLight = function (light) {
207
- model.lights = model.lights.filter(function (l) {
208
- return l !== light;
209
- });
173
+ publicAPI.removeLight = light => {
174
+ model.lights = model.lights.filter(l => l !== light);
210
175
  publicAPI.modified();
211
176
  };
212
-
213
- publicAPI.removeAllLights = function () {
177
+ publicAPI.removeAllLights = () => {
214
178
  model.lights = [];
215
179
  publicAPI.modified();
216
180
  };
217
-
218
- publicAPI.setLightCollection = function (lights) {
181
+ publicAPI.setLightCollection = lights => {
219
182
  model.lights = lights;
220
183
  publicAPI.modified();
221
184
  };
222
-
223
185
  publicAPI.makeLight = vtkLight.newInstance;
224
-
225
- publicAPI.createLight = function () {
186
+ publicAPI.createLight = () => {
226
187
  if (!model.automaticLightCreation) {
227
188
  return;
228
189
  }
229
-
230
190
  if (model._createdLight) {
231
191
  publicAPI.removeLight(model._createdLight);
232
-
233
192
  model._createdLight.delete();
234
-
235
193
  model._createdLight = null;
236
194
  }
237
-
238
195
  model._createdLight = publicAPI.makeLight();
239
196
  publicAPI.addLight(model._createdLight);
197
+ model._createdLight.setLightTypeToHeadLight();
240
198
 
241
- model._createdLight.setLightTypeToHeadLight(); // set these values just to have a good default should LightFollowCamera
199
+ // set these values just to have a good default should LightFollowCamera
242
200
  // be turned off.
243
-
244
-
245
201
  model._createdLight.setPosition(publicAPI.getActiveCamera().getPosition());
246
-
247
202
  model._createdLight.setFocalPoint(publicAPI.getActiveCamera().getFocalPoint());
248
- }; // requires the aspect ratio of the viewport as X/Y
249
-
203
+ };
250
204
 
251
- publicAPI.normalizedDisplayToWorld = function (x, y, z, aspect) {
252
- var vpd = publicAPI.normalizedDisplayToProjection(x, y, z);
205
+ // requires the aspect ratio of the viewport as X/Y
206
+ publicAPI.normalizedDisplayToWorld = (x, y, z, aspect) => {
207
+ let vpd = publicAPI.normalizedDisplayToProjection(x, y, z);
253
208
  vpd = publicAPI.projectionToView(vpd[0], vpd[1], vpd[2], aspect);
254
209
  return publicAPI.viewToWorld(vpd[0], vpd[1], vpd[2]);
255
- }; // requires the aspect ratio of the viewport as X/Y
256
-
210
+ };
257
211
 
258
- publicAPI.worldToNormalizedDisplay = function (x, y, z, aspect) {
259
- var vpd = publicAPI.worldToView(x, y, z);
212
+ // requires the aspect ratio of the viewport as X/Y
213
+ publicAPI.worldToNormalizedDisplay = (x, y, z, aspect) => {
214
+ let vpd = publicAPI.worldToView(x, y, z);
260
215
  vpd = publicAPI.viewToProjection(vpd[0], vpd[1], vpd[2], aspect);
261
216
  return publicAPI.projectionToNormalizedDisplay(vpd[0], vpd[1], vpd[2]);
262
- }; // requires the aspect ratio of the viewport as X/Y
263
-
217
+ };
264
218
 
265
- publicAPI.viewToWorld = function (x, y, z) {
219
+ // requires the aspect ratio of the viewport as X/Y
220
+ publicAPI.viewToWorld = (x, y, z) => {
266
221
  if (model.activeCamera === null) {
267
222
  vtkErrorMacro('ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0');
268
223
  return [0, 0, 0];
269
- } // get the view matrix from the active camera
270
-
224
+ }
271
225
 
272
- var matrix = model.activeCamera.getViewMatrix();
226
+ // get the view matrix from the active camera
227
+ const matrix = model.activeCamera.getViewMatrix();
273
228
  mat4.invert(matrix, matrix);
274
- mat4.transpose(matrix, matrix); // Transform point to world coordinates
229
+ mat4.transpose(matrix, matrix);
275
230
 
276
- var result = new Float64Array([x, y, z]);
231
+ // Transform point to world coordinates
232
+ const result = new Float64Array([x, y, z]);
277
233
  vec3.transformMat4(result, result, matrix);
278
234
  return result;
279
235
  };
280
-
281
- publicAPI.projectionToView = function (x, y, z, aspect) {
236
+ publicAPI.projectionToView = (x, y, z, aspect) => {
282
237
  if (model.activeCamera === null) {
283
238
  vtkErrorMacro('ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0');
284
239
  return [0, 0, 0];
285
- } // get the projection transformation from the active camera
286
-
240
+ }
287
241
 
288
- var matrix = model.activeCamera.getProjectionMatrix(aspect, -1.0, 1.0);
242
+ // get the projection transformation from the active camera
243
+ const matrix = model.activeCamera.getProjectionMatrix(aspect, -1.0, 1.0);
289
244
  mat4.invert(matrix, matrix);
290
- mat4.transpose(matrix, matrix); // Transform point to world coordinates
245
+ mat4.transpose(matrix, matrix);
291
246
 
292
- var result = new Float64Array([x, y, z]);
247
+ // Transform point to world coordinates
248
+ const result = new Float64Array([x, y, z]);
293
249
  vec3.transformMat4(result, result, matrix);
294
250
  return result;
295
- }; // Convert world point coordinates to view coordinates.
296
-
251
+ };
297
252
 
298
- publicAPI.worldToView = function (x, y, z) {
253
+ // Convert world point coordinates to view coordinates.
254
+ publicAPI.worldToView = (x, y, z) => {
299
255
  if (model.activeCamera === null) {
300
256
  vtkErrorMacro('WorldToView: no active camera, cannot compute view to world, returning 0,0,0');
301
257
  return [0, 0, 0];
302
- } // get the view transformation from the active camera
303
-
258
+ }
304
259
 
305
- var matrix = model.activeCamera.getViewMatrix();
260
+ // get the view transformation from the active camera
261
+ const matrix = model.activeCamera.getViewMatrix();
306
262
  mat4.transpose(matrix, matrix);
307
- var result = new Float64Array([x, y, z]);
263
+ const result = new Float64Array([x, y, z]);
308
264
  vec3.transformMat4(result, result, matrix);
309
265
  return result;
310
- }; // Convert world point coordinates to view coordinates.
311
- // requires the aspect ratio of the viewport as X/Y
312
-
266
+ };
313
267
 
314
- publicAPI.viewToProjection = function (x, y, z, aspect) {
268
+ // Convert world point coordinates to view coordinates.
269
+ // requires the aspect ratio of the viewport as X/Y
270
+ publicAPI.viewToProjection = (x, y, z, aspect) => {
315
271
  if (model.activeCamera === null) {
316
272
  vtkErrorMacro('ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0');
317
273
  return [0, 0, 0];
318
- } // get the projeciton transformation from the active camera
319
-
274
+ }
320
275
 
321
- var matrix = model.activeCamera.getProjectionMatrix(aspect, -1.0, 1.0);
276
+ // get the projeciton transformation from the active camera
277
+ const matrix = model.activeCamera.getProjectionMatrix(aspect, -1.0, 1.0);
322
278
  mat4.transpose(matrix, matrix);
323
- var result = new Float64Array([x, y, z]);
279
+ const result = new Float64Array([x, y, z]);
324
280
  vec3.transformMat4(result, result, matrix);
325
281
  return result;
326
282
  };
327
-
328
- publicAPI.computeVisiblePropBounds = function () {
283
+ publicAPI.computeVisiblePropBounds = () => {
329
284
  model.allBounds[0] = vtkBoundingBox.INIT_BOUNDS[0];
330
285
  model.allBounds[1] = vtkBoundingBox.INIT_BOUNDS[1];
331
286
  model.allBounds[2] = vtkBoundingBox.INIT_BOUNDS[2];
332
287
  model.allBounds[3] = vtkBoundingBox.INIT_BOUNDS[3];
333
288
  model.allBounds[4] = vtkBoundingBox.INIT_BOUNDS[4];
334
289
  model.allBounds[5] = vtkBoundingBox.INIT_BOUNDS[5];
335
- var nothingVisible = true;
336
- publicAPI.invokeEvent(COMPUTE_VISIBLE_PROP_BOUNDS_EVENT); // loop through all props
337
-
338
- for (var index = 0; index < model.props.length; ++index) {
339
- var prop = model.props[index];
290
+ let nothingVisible = true;
291
+ publicAPI.invokeEvent(COMPUTE_VISIBLE_PROP_BOUNDS_EVENT);
340
292
 
293
+ // loop through all props
294
+ for (let index = 0; index < model.props.length; ++index) {
295
+ const prop = model.props[index];
341
296
  if (prop.getVisibility() && prop.getUseBounds()) {
342
- var bounds = prop.getBounds();
343
-
297
+ const bounds = prop.getBounds();
344
298
  if (bounds && areBoundsInitialized(bounds)) {
345
299
  nothingVisible = false;
346
-
347
300
  if (bounds[0] < model.allBounds[0]) {
348
301
  model.allBounds[0] = bounds[0];
349
302
  }
350
-
351
303
  if (bounds[1] > model.allBounds[1]) {
352
304
  model.allBounds[1] = bounds[1];
353
305
  }
354
-
355
306
  if (bounds[2] < model.allBounds[2]) {
356
307
  model.allBounds[2] = bounds[2];
357
308
  }
358
-
359
309
  if (bounds[3] > model.allBounds[3]) {
360
310
  model.allBounds[3] = bounds[3];
361
311
  }
362
-
363
312
  if (bounds[4] < model.allBounds[4]) {
364
313
  model.allBounds[4] = bounds[4];
365
314
  }
366
-
367
315
  if (bounds[5] > model.allBounds[5]) {
368
316
  model.allBounds[5] = bounds[5];
369
317
  }
370
318
  }
371
319
  }
372
320
  }
373
-
374
321
  if (nothingVisible) {
375
322
  uninitializeBounds(model.allBounds);
376
323
  vtkDebugMacro("Can't compute bounds, no 3D props are visible");
377
324
  }
378
-
379
325
  return model.allBounds;
380
326
  };
381
-
382
327
  publicAPI.resetCamera = function () {
383
- var bounds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
384
- var boundsToUse = bounds || publicAPI.computeVisiblePropBounds();
385
- var center = [0, 0, 0];
386
-
328
+ let bounds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
329
+ const boundsToUse = bounds || publicAPI.computeVisiblePropBounds();
330
+ const center = [0, 0, 0];
387
331
  if (!areBoundsInitialized(boundsToUse)) {
388
332
  vtkDebugMacro('Cannot reset camera!');
389
333
  return false;
390
334
  }
391
-
392
- var vn = null;
393
-
335
+ let vn = null;
394
336
  if (publicAPI.getActiveCamera()) {
395
337
  vn = model.activeCamera.getViewPlaneNormal();
396
338
  } else {
397
339
  vtkErrorMacro('Trying to reset non-existent camera');
398
340
  return false;
399
- } // Reset the perspective zoom factors, otherwise subsequent zooms will cause
400
- // the view angle to become very small and cause bad depth sorting.
401
-
341
+ }
402
342
 
343
+ // Reset the perspective zoom factors, otherwise subsequent zooms will cause
344
+ // the view angle to become very small and cause bad depth sorting.
403
345
  model.activeCamera.setViewAngle(30.0);
404
346
  center[0] = (boundsToUse[0] + boundsToUse[1]) / 2.0;
405
347
  center[1] = (boundsToUse[2] + boundsToUse[3]) / 2.0;
406
348
  center[2] = (boundsToUse[4] + boundsToUse[5]) / 2.0;
407
- var w1 = boundsToUse[1] - boundsToUse[0];
408
- var w2 = boundsToUse[3] - boundsToUse[2];
409
- var w3 = boundsToUse[5] - boundsToUse[4];
349
+ let w1 = boundsToUse[1] - boundsToUse[0];
350
+ let w2 = boundsToUse[3] - boundsToUse[2];
351
+ let w3 = boundsToUse[5] - boundsToUse[4];
410
352
  w1 *= w1;
411
353
  w2 *= w2;
412
354
  w3 *= w3;
413
- var radius = w1 + w2 + w3; // If we have just a single point, pick a radius of 1.0
355
+ let radius = w1 + w2 + w3;
356
+
357
+ // If we have just a single point, pick a radius of 1.0
358
+ radius = radius === 0 ? 1.0 : radius;
414
359
 
415
- radius = radius === 0 ? 1.0 : radius; // compute the radius of the enclosing sphere
360
+ // compute the radius of the enclosing sphere
361
+ radius = Math.sqrt(radius) * 0.5;
362
+
363
+ // default so that the bounding sphere fits within the view fustrum
416
364
 
417
- radius = Math.sqrt(radius) * 0.5; // default so that the bounding sphere fits within the view fustrum
418
365
  // compute the distance from the intersection of the view frustum with the
419
366
  // bounding sphere. Basically in 2D draw a circle representing the bounding
420
367
  // sphere in 2D then draw a horizontal line going out from the center of
@@ -426,145 +373,128 @@ function vtkRenderer(publicAPI, model) {
426
373
  // this forms a right triangle with one side being the radius, another being
427
374
  // the target distance for the camera, then just find the target dist using
428
375
  // a sin.
376
+ const angle = radiansFromDegrees(model.activeCamera.getViewAngle());
377
+ const parallelScale = radius;
378
+ const distance = radius / Math.sin(angle * 0.5);
429
379
 
430
- var angle = radiansFromDegrees(model.activeCamera.getViewAngle());
431
- var parallelScale = radius;
432
- var distance = radius / Math.sin(angle * 0.5); // check view-up vector against view plane normal
433
-
434
- var vup = model.activeCamera.getViewUp();
435
-
380
+ // check view-up vector against view plane normal
381
+ const vup = model.activeCamera.getViewUp();
436
382
  if (Math.abs(dot(vup, vn)) > 0.999) {
437
383
  vtkWarningMacro('Resetting view-up since view plane normal is parallel');
438
384
  model.activeCamera.setViewUp(-vup[2], vup[0], vup[1]);
439
- } // update the camera
440
-
385
+ }
441
386
 
387
+ // update the camera
442
388
  model.activeCamera.setFocalPoint(center[0], center[1], center[2]);
443
389
  model.activeCamera.setPosition(center[0] + distance * vn[0], center[1] + distance * vn[1], center[2] + distance * vn[2]);
444
- publicAPI.resetCameraClippingRange(boundsToUse); // setup default parallel scale
390
+ publicAPI.resetCameraClippingRange(boundsToUse);
445
391
 
446
- model.activeCamera.setParallelScale(parallelScale); // update reasonable world to physical values
392
+ // setup default parallel scale
393
+ model.activeCamera.setParallelScale(parallelScale);
447
394
 
395
+ // update reasonable world to physical values
448
396
  model.activeCamera.setPhysicalScale(radius);
449
- model.activeCamera.setPhysicalTranslation(-center[0], -center[1], -center[2]); // Here to let parallel/distributed compositing intercept
450
- // and do the right thing.
397
+ model.activeCamera.setPhysicalTranslation(-center[0], -center[1], -center[2]);
451
398
 
399
+ // Here to let parallel/distributed compositing intercept
400
+ // and do the right thing.
452
401
  publicAPI.invokeEvent(RESET_CAMERA_EVENT);
453
402
  return true;
454
403
  };
455
-
456
404
  publicAPI.resetCameraClippingRange = function () {
457
- var bounds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
458
- var boundsToUse = bounds || publicAPI.computeVisiblePropBounds();
459
-
405
+ let bounds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
406
+ const boundsToUse = bounds || publicAPI.computeVisiblePropBounds();
460
407
  if (!areBoundsInitialized(boundsToUse)) {
461
408
  vtkDebugMacro('Cannot reset camera clipping range!');
462
409
  return false;
463
- } // Make sure we have an active camera
464
-
410
+ }
465
411
 
412
+ // Make sure we have an active camera
466
413
  publicAPI.getActiveCameraAndResetIfCreated();
467
-
468
414
  if (!model.activeCamera) {
469
415
  vtkErrorMacro('Trying to reset clipping range of non-existent camera');
470
416
  return false;
471
- } // Get the exact range for the bounds
417
+ }
472
418
 
419
+ // Get the exact range for the bounds
420
+ const range = model.activeCamera.computeClippingRange(boundsToUse);
473
421
 
474
- var range = model.activeCamera.computeClippingRange(boundsToUse); // do not let far - near be less than 0.1 of the window height
422
+ // do not let far - near be less than 0.1 of the window height
475
423
  // this is for cases such as 2D images which may have zero range
476
-
477
- var minGap = 0.0;
478
-
424
+ let minGap = 0.0;
479
425
  if (model.activeCamera.getParallelProjection()) {
480
426
  minGap = 0.2 * model.activeCamera.getParallelScale();
481
427
  } else {
482
- var angle = radiansFromDegrees(model.activeCamera.getViewAngle());
428
+ const angle = radiansFromDegrees(model.activeCamera.getViewAngle());
483
429
  minGap = 0.2 * Math.tan(angle / 2.0) * range[1];
484
430
  }
485
-
486
431
  if (range[1] - range[0] < minGap) {
487
432
  minGap = minGap - range[1] + range[0];
488
433
  range[1] += minGap / 2.0;
489
434
  range[0] -= minGap / 2.0;
490
- } // Do not let the range behind the camera throw off the calculation.
491
-
435
+ }
492
436
 
437
+ // Do not let the range behind the camera throw off the calculation.
493
438
  if (range[0] < 0.0) {
494
439
  range[0] = 0.0;
495
- } // Give ourselves a little breathing room
496
-
440
+ }
497
441
 
442
+ // Give ourselves a little breathing room
498
443
  range[0] = 0.99 * range[0] - (range[1] - range[0]) * model.clippingRangeExpansion;
499
- range[1] = 1.01 * range[1] + (range[1] - range[0]) * model.clippingRangeExpansion; // Make sure near is not bigger than far
444
+ range[1] = 1.01 * range[1] + (range[1] - range[0]) * model.clippingRangeExpansion;
445
+
446
+ // Make sure near is not bigger than far
447
+ range[0] = range[0] >= range[1] ? 0.01 * range[1] : range[0];
500
448
 
501
- range[0] = range[0] >= range[1] ? 0.01 * range[1] : range[0]; // Make sure near is at least some fraction of far - this prevents near
449
+ // Make sure near is at least some fraction of far - this prevents near
502
450
  // from being behind the camera or too close in front. How close is too
503
451
  // close depends on the resolution of the depth buffer
504
-
505
452
  if (!model.nearClippingPlaneTolerance) {
506
453
  model.nearClippingPlaneTolerance = 0.01;
507
- } // make sure the front clipping range is not too far from the far clippnig
454
+ }
455
+
456
+ // make sure the front clipping range is not too far from the far clippnig
508
457
  // range, this is to make sure that the zbuffer resolution is effectively
509
458
  // used
510
-
511
-
512
459
  if (range[0] < model.nearClippingPlaneTolerance * range[1]) {
513
460
  range[0] = model.nearClippingPlaneTolerance * range[1];
514
461
  }
462
+ model.activeCamera.setClippingRange(range[0], range[1]);
515
463
 
516
- model.activeCamera.setClippingRange(range[0], range[1]); // Here to let parallel/distributed compositing intercept
464
+ // Here to let parallel/distributed compositing intercept
517
465
  // and do the right thing.
518
-
519
466
  publicAPI.invokeEvent(RESET_CAMERA_CLIPPING_RANGE_EVENT);
520
467
  return false;
521
468
  };
522
-
523
- publicAPI.setRenderWindow = function (renderWindow) {
469
+ publicAPI.setRenderWindow = renderWindow => {
524
470
  if (renderWindow !== model._renderWindow) {
525
471
  model._vtkWindow = renderWindow;
526
472
  model._renderWindow = renderWindow;
527
473
  }
528
474
  };
529
-
530
- publicAPI.visibleActorCount = function () {
531
- return model.props.filter(function (prop) {
532
- return prop.getVisibility();
533
- }).length;
534
- };
535
-
475
+ publicAPI.visibleActorCount = () => model.props.filter(prop => prop.getVisibility()).length;
536
476
  publicAPI.visibleVolumeCount = publicAPI.visibleActorCount;
537
-
538
- publicAPI.getMTime = function () {
539
- var m1 = model.mtime;
540
- var m2 = model.activeCamera ? model.activeCamera.getMTime() : 0;
541
-
477
+ publicAPI.getMTime = () => {
478
+ let m1 = model.mtime;
479
+ const m2 = model.activeCamera ? model.activeCamera.getMTime() : 0;
542
480
  if (m2 > m1) {
543
481
  m1 = m2;
544
482
  }
545
-
546
- var m3 = model._createdLight ? model._createdLight.getMTime() : 0;
547
-
483
+ const m3 = model._createdLight ? model._createdLight.getMTime() : 0;
548
484
  if (m3 > m1) {
549
485
  m1 = m3;
550
486
  }
551
-
552
487
  return m1;
553
488
  };
489
+ publicAPI.getTransparent = () => !!model.preserveColorBuffer;
490
+ publicAPI.isActiveCameraCreated = () => !!model.activeCamera;
491
+ }
554
492
 
555
- publicAPI.getTransparent = function () {
556
- return !!model.preserveColorBuffer;
557
- };
558
-
559
- publicAPI.isActiveCameraCreated = function () {
560
- return !!model.activeCamera;
561
- };
562
- } // ----------------------------------------------------------------------------
493
+ // ----------------------------------------------------------------------------
563
494
  // Object factory
564
495
  // ----------------------------------------------------------------------------
565
496
 
566
-
567
- var DEFAULT_VALUES = {
497
+ const DEFAULT_VALUES = {
568
498
  pickedProp: null,
569
499
  activeCamera: null,
570
500
  allBounds: [],
@@ -604,36 +534,42 @@ var DEFAULT_VALUES = {
604
534
  environmentTextureSpecularStrength: 1,
605
535
  useEnvironmentTextureAsBackground: false,
606
536
  pass: 0
607
- }; // ----------------------------------------------------------------------------
537
+ };
538
+
539
+ // ----------------------------------------------------------------------------
608
540
 
609
541
  function extend(publicAPI, model) {
610
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
611
- Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance
542
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
543
+ Object.assign(model, DEFAULT_VALUES, initialValues);
612
544
 
613
- vtkViewport.extend(publicAPI, model, initialValues); // make sure background has 4 entries. Default to opaque black
545
+ // Inheritance
546
+ vtkViewport.extend(publicAPI, model, initialValues);
614
547
 
548
+ // make sure background has 4 entries. Default to opaque black
615
549
  if (!model.background) model.background = [0, 0, 0, 1];
550
+ while (model.background.length < 3) model.background.push(0);
551
+ if (model.background.length === 3) model.background.push(1);
616
552
 
617
- while (model.background.length < 3) {
618
- model.background.push(0);
619
- }
620
-
621
- if (model.background.length === 3) model.background.push(1); // Build VTK API
622
-
553
+ // Build VTK API
623
554
  get(publicAPI, model, ['_renderWindow', 'allocatedRenderTime', 'timeFactor', 'lastRenderTimeInSeconds', 'numberOfPropsRendered', 'lastRenderingUsedDepthPeeling', 'selector']);
624
555
  setGet(publicAPI, model, ['twoSidedLighting', 'lightFollowCamera', 'automaticLightCreation', 'erase', 'draw', 'nearClippingPlaneTolerance', 'clippingRangeExpansion', 'backingStore', 'interactive', 'layer', 'preserveColorBuffer', 'preserveDepthBuffer', 'useDepthPeeling', 'occlusionRatio', 'maximumNumberOfPeels', 'delegate', 'backgroundTexture', 'texturedBackground', 'environmentTexture', 'environmentTextureDiffuseStrength', 'environmentTextureSpecularStrength', 'useEnvironmentTextureAsBackground', 'useShadows', 'pass']);
625
556
  getArray(publicAPI, model, ['actors', 'volumes', 'lights']);
626
557
  setGetArray(publicAPI, model, ['background'], 4, 1.0);
627
- moveToProtected(publicAPI, model, ['renderWindow']); // Object methods
558
+ moveToProtected(publicAPI, model, ['renderWindow']);
628
559
 
560
+ // Object methods
629
561
  vtkRenderer(publicAPI, model);
630
- } // ----------------------------------------------------------------------------
562
+ }
631
563
 
632
- var newInstance = newInstance$1(extend, 'vtkRenderer'); // ----------------------------------------------------------------------------
564
+ // ----------------------------------------------------------------------------
565
+
566
+ const newInstance = newInstance$1(extend, 'vtkRenderer');
567
+
568
+ // ----------------------------------------------------------------------------
633
569
 
634
570
  var vtkRenderer$1 = {
635
- newInstance: newInstance,
636
- extend: extend
571
+ newInstance,
572
+ extend
637
573
  };
638
574
 
639
575
  export { vtkRenderer$1 as default, extend, newInstance };