@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,9 +1,11 @@
1
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
1
  import { mat4, vec4, vec3, quat } from 'gl-matrix';
3
- import macro from '../../macros.js';
2
+ import { m as macro } from '../../macros2.js';
4
3
  import { r as radiansFromDegrees, k as add, j as cross } from '../../Common/Core/Math/index.js';
5
4
 
6
- var vtkDebugMacro = macro.vtkDebugMacro;
5
+ const {
6
+ vtkDebugMacro
7
+ } = macro;
8
+
7
9
  /* eslint-disable new-cap */
8
10
 
9
11
  /*
@@ -15,134 +17,130 @@ var vtkDebugMacro = macro.vtkDebugMacro;
15
17
  // const idx = (row * 4) + col;
16
18
  // return matrix[idx];
17
19
  // }
20
+
18
21
  // ----------------------------------------------------------------------------
19
22
  // vtkCamera methods
20
23
  // ----------------------------------------------------------------------------
21
24
 
22
25
  function vtkCamera(publicAPI, model) {
23
26
  // Set our className
24
- model.classHierarchy.push('vtkCamera'); // Set up private variables and methods
25
-
26
- var origin = new Float64Array(3);
27
- var dopbasis = new Float64Array([0.0, 0.0, -1.0]);
28
- var upbasis = new Float64Array([0.0, 1.0, 0.0]);
29
- var tmpMatrix = mat4.identity(new Float64Array(16));
30
- var tmpMatrix2 = mat4.identity(new Float64Array(16));
31
- var tmpvec1 = new Float64Array(3);
32
- var tmpvec2 = new Float64Array(3);
33
- var tmpvec3 = new Float64Array(3);
34
- var rotateMatrix = mat4.identity(new Float64Array(16));
35
- var trans = mat4.identity(new Float64Array(16));
36
- var newPosition = new Float64Array(3);
37
- var newFocalPoint = new Float64Array(3); // Internal Functions that don't need to be public
38
-
27
+ model.classHierarchy.push('vtkCamera');
28
+
29
+ // Set up private variables and methods
30
+ const origin = new Float64Array(3);
31
+ const dopbasis = new Float64Array([0.0, 0.0, -1.0]);
32
+ const upbasis = new Float64Array([0.0, 1.0, 0.0]);
33
+ const tmpMatrix = mat4.identity(new Float64Array(16));
34
+ const tmpMatrix2 = mat4.identity(new Float64Array(16));
35
+ const tmpvec1 = new Float64Array(3);
36
+ const tmpvec2 = new Float64Array(3);
37
+ const tmpvec3 = new Float64Array(3);
38
+ const rotateMatrix = mat4.identity(new Float64Array(16));
39
+ const trans = mat4.identity(new Float64Array(16));
40
+ const newPosition = new Float64Array(3);
41
+ const newFocalPoint = new Float64Array(3);
42
+
43
+ // Internal Functions that don't need to be public
39
44
  function computeViewPlaneNormal() {
40
45
  // VPN is -DOP
41
46
  model.viewPlaneNormal[0] = -model.directionOfProjection[0];
42
47
  model.viewPlaneNormal[1] = -model.directionOfProjection[1];
43
48
  model.viewPlaneNormal[2] = -model.directionOfProjection[2];
44
49
  }
45
-
46
- publicAPI.orthogonalizeViewUp = function () {
47
- var vt = publicAPI.getViewMatrix();
50
+ publicAPI.orthogonalizeViewUp = () => {
51
+ const vt = publicAPI.getViewMatrix();
48
52
  model.viewUp[0] = vt[4];
49
53
  model.viewUp[1] = vt[5];
50
54
  model.viewUp[2] = vt[6];
51
55
  publicAPI.modified();
52
56
  };
53
-
54
- publicAPI.setPosition = function (x, y, z) {
57
+ publicAPI.setPosition = (x, y, z) => {
55
58
  if (x === model.position[0] && y === model.position[1] && z === model.position[2]) {
56
59
  return;
57
60
  }
58
-
59
61
  model.position[0] = x;
60
62
  model.position[1] = y;
61
- model.position[2] = z; // recompute the focal distance
63
+ model.position[2] = z;
62
64
 
65
+ // recompute the focal distance
63
66
  publicAPI.computeDistance();
64
67
  publicAPI.modified();
65
68
  };
66
-
67
- publicAPI.setFocalPoint = function (x, y, z) {
69
+ publicAPI.setFocalPoint = (x, y, z) => {
68
70
  if (x === model.focalPoint[0] && y === model.focalPoint[1] && z === model.focalPoint[2]) {
69
71
  return;
70
72
  }
71
-
72
73
  model.focalPoint[0] = x;
73
74
  model.focalPoint[1] = y;
74
- model.focalPoint[2] = z; // recompute the focal distance
75
+ model.focalPoint[2] = z;
75
76
 
77
+ // recompute the focal distance
76
78
  publicAPI.computeDistance();
77
79
  publicAPI.modified();
78
80
  };
79
-
80
- publicAPI.setDistance = function (d) {
81
+ publicAPI.setDistance = d => {
81
82
  if (model.distance === d) {
82
83
  return;
83
84
  }
84
-
85
85
  model.distance = d;
86
-
87
86
  if (model.distance < 1e-20) {
88
87
  model.distance = 1e-20;
89
88
  vtkDebugMacro('Distance is set to minimum.');
90
- } // we want to keep the camera pointing in the same direction
91
-
89
+ }
92
90
 
93
- var vec = model.directionOfProjection; // recalculate FocalPoint
91
+ // we want to keep the camera pointing in the same direction
92
+ const vec = model.directionOfProjection;
94
93
 
94
+ // recalculate FocalPoint
95
95
  model.focalPoint[0] = model.position[0] + vec[0] * model.distance;
96
96
  model.focalPoint[1] = model.position[1] + vec[1] * model.distance;
97
97
  model.focalPoint[2] = model.position[2] + vec[2] * model.distance;
98
98
  publicAPI.modified();
99
- }; //----------------------------------------------------------------------------
100
- // This method must be called when the focal point or camera position changes
101
-
99
+ };
102
100
 
103
- publicAPI.computeDistance = function () {
104
- var dx = model.focalPoint[0] - model.position[0];
105
- var dy = model.focalPoint[1] - model.position[1];
106
- var dz = model.focalPoint[2] - model.position[2];
101
+ //----------------------------------------------------------------------------
102
+ // This method must be called when the focal point or camera position changes
103
+ publicAPI.computeDistance = () => {
104
+ const dx = model.focalPoint[0] - model.position[0];
105
+ const dy = model.focalPoint[1] - model.position[1];
106
+ const dz = model.focalPoint[2] - model.position[2];
107
107
  model.distance = Math.sqrt(dx * dx + dy * dy + dz * dz);
108
-
109
108
  if (model.distance < 1e-20) {
110
109
  model.distance = 1e-20;
111
110
  vtkDebugMacro('Distance is set to minimum.');
112
- var vec = model.directionOfProjection; // recalculate FocalPoint
111
+ const vec = model.directionOfProjection;
113
112
 
113
+ // recalculate FocalPoint
114
114
  model.focalPoint[0] = model.position[0] + vec[0] * model.distance;
115
115
  model.focalPoint[1] = model.position[1] + vec[1] * model.distance;
116
116
  model.focalPoint[2] = model.position[2] + vec[2] * model.distance;
117
117
  }
118
-
119
118
  model.directionOfProjection[0] = dx / model.distance;
120
119
  model.directionOfProjection[1] = dy / model.distance;
121
120
  model.directionOfProjection[2] = dz / model.distance;
122
121
  computeViewPlaneNormal();
123
- }; //----------------------------------------------------------------------------
122
+ };
123
+
124
+ //----------------------------------------------------------------------------
124
125
  // Move the position of the camera along the view plane normal. Moving
125
126
  // towards the focal point (e.g., > 1) is a dolly-in, moving away
126
127
  // from the focal point (e.g., < 1) is a dolly-out.
127
-
128
-
129
- publicAPI.dolly = function (amount) {
128
+ publicAPI.dolly = amount => {
130
129
  if (amount <= 0.0) {
131
130
  return;
132
- } // dolly moves the camera towards the focus
133
-
131
+ }
134
132
 
135
- var d = model.distance / amount;
133
+ // dolly moves the camera towards the focus
134
+ const d = model.distance / amount;
136
135
  publicAPI.setPosition(model.focalPoint[0] - d * model.directionOfProjection[0], model.focalPoint[1] - d * model.directionOfProjection[1], model.focalPoint[2] - d * model.directionOfProjection[2]);
137
136
  };
138
-
139
- publicAPI.roll = function (angle) {
140
- var eye = model.position;
141
- var at = model.focalPoint;
142
- var up = model.viewUp;
143
- var viewUpVec4 = new Float64Array([up[0], up[1], up[2], 0.0]);
137
+ publicAPI.roll = angle => {
138
+ const eye = model.position;
139
+ const at = model.focalPoint;
140
+ const up = model.viewUp;
141
+ const viewUpVec4 = new Float64Array([up[0], up[1], up[2], 0.0]);
144
142
  mat4.identity(rotateMatrix);
145
- var viewDir = new Float64Array([at[0] - eye[0], at[1] - eye[1], at[2] - eye[2]]);
143
+ const viewDir = new Float64Array([at[0] - eye[0], at[1] - eye[1], at[2] - eye[2]]);
146
144
  mat4.rotate(rotateMatrix, rotateMatrix, radiansFromDegrees(angle), viewDir);
147
145
  vec4.transformMat4(viewUpVec4, viewUpVec4, rotateMatrix);
148
146
  model.viewUp[0] = viewUpVec4[0];
@@ -150,156 +148,140 @@ function vtkCamera(publicAPI, model) {
150
148
  model.viewUp[2] = viewUpVec4[2];
151
149
  publicAPI.modified();
152
150
  };
151
+ publicAPI.azimuth = angle => {
152
+ const fp = model.focalPoint;
153
+ mat4.identity(trans);
153
154
 
154
- publicAPI.azimuth = function (angle) {
155
- var fp = model.focalPoint;
156
- mat4.identity(trans); // translate the focal point to the origin,
155
+ // translate the focal point to the origin,
157
156
  // rotate about view up,
158
157
  // translate back again
159
-
160
158
  mat4.translate(trans, trans, fp);
161
159
  mat4.rotate(trans, trans, radiansFromDegrees(angle), model.viewUp);
162
- mat4.translate(trans, trans, [-fp[0], -fp[1], -fp[2]]); // apply the transform to the position
160
+ mat4.translate(trans, trans, [-fp[0], -fp[1], -fp[2]]);
163
161
 
162
+ // apply the transform to the position
164
163
  vec3.transformMat4(newPosition, model.position, trans);
165
164
  publicAPI.setPosition(newPosition[0], newPosition[1], newPosition[2]);
166
165
  };
166
+ publicAPI.yaw = angle => {
167
+ const position = model.position;
168
+ mat4.identity(trans);
167
169
 
168
- publicAPI.yaw = function (angle) {
169
- var position = model.position;
170
- mat4.identity(trans); // translate the camera to the origin,
170
+ // translate the camera to the origin,
171
171
  // rotate about axis,
172
172
  // translate back again
173
-
174
173
  mat4.translate(trans, trans, position);
175
174
  mat4.rotate(trans, trans, radiansFromDegrees(angle), model.viewUp);
176
- mat4.translate(trans, trans, [-position[0], -position[1], -position[2]]); // apply the transform to the position
175
+ mat4.translate(trans, trans, [-position[0], -position[1], -position[2]]);
177
176
 
177
+ // apply the transform to the position
178
178
  vec3.transformMat4(newFocalPoint, model.focalPoint, trans);
179
179
  publicAPI.setFocalPoint(newFocalPoint[0], newFocalPoint[1], newFocalPoint[2]);
180
180
  };
181
+ publicAPI.elevation = angle => {
182
+ const fp = model.focalPoint;
181
183
 
182
- publicAPI.elevation = function (angle) {
183
- var fp = model.focalPoint; // get the eye / camera position from the viewMatrix
184
+ // get the eye / camera position from the viewMatrix
185
+ const vt = publicAPI.getViewMatrix();
186
+ const axis = [-vt[0], -vt[1], -vt[2]];
187
+ mat4.identity(trans);
184
188
 
185
- var vt = publicAPI.getViewMatrix();
186
- var axis = [-vt[0], -vt[1], -vt[2]];
187
- mat4.identity(trans); // translate the focal point to the origin,
189
+ // translate the focal point to the origin,
188
190
  // rotate about view up,
189
191
  // translate back again
190
-
191
192
  mat4.translate(trans, trans, fp);
192
193
  mat4.rotate(trans, trans, radiansFromDegrees(angle), axis);
193
- mat4.translate(trans, trans, [-fp[0], -fp[1], -fp[2]]); // apply the transform to the position
194
+ mat4.translate(trans, trans, [-fp[0], -fp[1], -fp[2]]);
194
195
 
196
+ // apply the transform to the position
195
197
  vec3.transformMat4(newPosition, model.position, trans);
196
198
  publicAPI.setPosition(newPosition[0], newPosition[1], newPosition[2]);
197
199
  };
200
+ publicAPI.pitch = angle => {
201
+ const position = model.position;
202
+ const vt = publicAPI.getViewMatrix();
203
+ const axis = [vt[0], vt[1], vt[2]];
204
+ mat4.identity(trans);
198
205
 
199
- publicAPI.pitch = function (angle) {
200
- var position = model.position;
201
- var vt = publicAPI.getViewMatrix();
202
- var axis = [vt[0], vt[1], vt[2]];
203
- mat4.identity(trans); // translate the camera to the origin,
206
+ // translate the camera to the origin,
204
207
  // rotate about axis,
205
208
  // translate back again
206
-
207
209
  mat4.translate(trans, trans, position);
208
210
  mat4.rotate(trans, trans, radiansFromDegrees(angle), axis);
209
- mat4.translate(trans, trans, [-position[0], -position[1], -position[2]]); // apply the transform to the focal point
211
+ mat4.translate(trans, trans, [-position[0], -position[1], -position[2]]);
210
212
 
213
+ // apply the transform to the focal point
211
214
  vec3.transformMat4(newFocalPoint, model.focalPoint, trans);
212
- publicAPI.setFocalPoint.apply(publicAPI, _toConsumableArray(newFocalPoint));
215
+ publicAPI.setFocalPoint(...newFocalPoint);
213
216
  };
214
-
215
- publicAPI.zoom = function (factor) {
217
+ publicAPI.zoom = factor => {
216
218
  if (factor <= 0) {
217
219
  return;
218
220
  }
219
-
220
221
  if (model.parallelProjection) {
221
222
  model.parallelScale /= factor;
222
223
  } else {
223
224
  model.viewAngle /= factor;
224
225
  }
225
-
226
226
  publicAPI.modified();
227
227
  };
228
-
229
- publicAPI.translate = function (x, y, z) {
230
- var offset = [x, y, z];
228
+ publicAPI.translate = (x, y, z) => {
229
+ const offset = [x, y, z];
231
230
  add(model.position, offset, model.position);
232
231
  add(model.focalPoint, offset, model.focalPoint);
233
232
  publicAPI.computeDistance();
234
233
  publicAPI.modified();
235
234
  };
236
-
237
- publicAPI.applyTransform = function (transformMat4) {
238
- var vuOld = [].concat(_toConsumableArray(model.viewUp), [1.0]);
239
- var posNew = [];
240
- var fpNew = [];
241
- var vuNew = [];
235
+ publicAPI.applyTransform = transformMat4 => {
236
+ const vuOld = [...model.viewUp, 1.0];
237
+ const posNew = [];
238
+ const fpNew = [];
239
+ const vuNew = [];
242
240
  vuOld[0] += model.position[0];
243
241
  vuOld[1] += model.position[1];
244
242
  vuOld[2] += model.position[2];
245
- vec4.transformMat4(posNew, [].concat(_toConsumableArray(model.position), [1.0]), transformMat4);
246
- vec4.transformMat4(fpNew, [].concat(_toConsumableArray(model.focalPoint), [1.0]), transformMat4);
243
+ vec4.transformMat4(posNew, [...model.position, 1.0], transformMat4);
244
+ vec4.transformMat4(fpNew, [...model.focalPoint, 1.0], transformMat4);
247
245
  vec4.transformMat4(vuNew, vuOld, transformMat4);
248
246
  vuNew[0] -= posNew[0];
249
247
  vuNew[1] -= posNew[1];
250
248
  vuNew[2] -= posNew[2];
251
- publicAPI.setPosition.apply(publicAPI, _toConsumableArray(posNew.slice(0, 3)));
252
- publicAPI.setFocalPoint.apply(publicAPI, _toConsumableArray(fpNew.slice(0, 3)));
253
- publicAPI.setViewUp.apply(publicAPI, _toConsumableArray(vuNew.slice(0, 3)));
254
- };
255
-
256
- publicAPI.getThickness = function () {
257
- return model.clippingRange[1] - model.clippingRange[0];
249
+ publicAPI.setPosition(...posNew.slice(0, 3));
250
+ publicAPI.setFocalPoint(...fpNew.slice(0, 3));
251
+ publicAPI.setViewUp(...vuNew.slice(0, 3));
258
252
  };
259
-
260
- publicAPI.setThickness = function (thickness) {
261
- var t = thickness;
262
-
253
+ publicAPI.getThickness = () => model.clippingRange[1] - model.clippingRange[0];
254
+ publicAPI.setThickness = thickness => {
255
+ let t = thickness;
263
256
  if (t < 1e-20) {
264
257
  t = 1e-20;
265
258
  vtkDebugMacro('Thickness is set to minimum.');
266
259
  }
267
-
268
260
  publicAPI.setClippingRange(model.clippingRange[0], model.clippingRange[0] + t);
269
261
  };
270
-
271
- publicAPI.setThicknessFromFocalPoint = function (thickness) {
272
- var t = thickness;
273
-
262
+ publicAPI.setThicknessFromFocalPoint = thickness => {
263
+ let t = thickness;
274
264
  if (t < 1e-20) {
275
265
  t = 1e-20;
276
266
  vtkDebugMacro('Thickness is set to minimum.');
277
267
  }
278
-
279
268
  publicAPI.setClippingRange(model.distance - t / 2, model.distance + t / 2);
280
- }; // Unimplemented functions
281
-
282
-
283
- publicAPI.setRoll = function (angle) {}; // dependency on GetOrientation() and a model.ViewTransform object, see https://github.com/Kitware/VTK/blob/master/Common/Transforms/vtkTransform.cxx and https://vtk.org/doc/nightly/html/classvtkTransform.html
284
-
285
-
286
- publicAPI.getRoll = function () {};
287
-
288
- publicAPI.setObliqueAngles = function (alpha, beta) {};
289
-
290
- publicAPI.getOrientation = function () {};
291
-
292
- publicAPI.getOrientationWXYZ = function () {};
293
-
294
- publicAPI.getFrustumPlanes = function (aspect) {// Return array of 24 params (4 params for each of 6 plane equations)
295
269
  };
296
270
 
297
- publicAPI.getCameraLightTransformMatrix = function (matrix) {
271
+ // Unimplemented functions
272
+ publicAPI.setRoll = angle => {}; // dependency on GetOrientation() and a model.ViewTransform object, see https://github.com/Kitware/VTK/blob/master/Common/Transforms/vtkTransform.cxx and https://vtk.org/doc/nightly/html/classvtkTransform.html
273
+ publicAPI.getRoll = () => {};
274
+ publicAPI.setObliqueAngles = (alpha, beta) => {};
275
+ publicAPI.getOrientation = () => {};
276
+ publicAPI.getOrientationWXYZ = () => {};
277
+ publicAPI.getFrustumPlanes = aspect => {
278
+ // Return array of 24 params (4 params for each of 6 plane equations)
279
+ };
280
+ publicAPI.getCameraLightTransformMatrix = matrix => {
298
281
  mat4.copy(matrix, model.cameraLightTransform);
299
282
  return matrix;
300
283
  };
301
-
302
- publicAPI.computeCameraLightTransform = function () {
284
+ publicAPI.computeCameraLightTransform = () => {
303
285
  // not sure if this is the correct transformation, based on the same funciton in VTK
304
286
  mat4.copy(tmpMatrix, publicAPI.getViewMatrix());
305
287
  mat4.invert(tmpMatrix, tmpMatrix);
@@ -308,31 +290,30 @@ function vtkCamera(publicAPI, model) {
308
290
  mat4.identity(model.cameraLightTransform);
309
291
  mat4.translate(model.cameraLightTransform, tmpMatrix, [0.0, 0.0, -1.0]);
310
292
  };
311
-
312
- publicAPI.deepCopy = function (sourceCamera) {};
313
-
314
- publicAPI.physicalOrientationToWorldDirection = function (ori) {
293
+ publicAPI.deepCopy = sourceCamera => {};
294
+ publicAPI.physicalOrientationToWorldDirection = ori => {
315
295
  // push the x axis through the orientation quat
316
- var oriq = quat.fromValues(ori[0], ori[1], ori[2], ori[3]);
317
- var coriq = quat.create();
318
- var qdir = quat.fromValues(0.0, 0.0, 1.0, 0.0);
319
- quat.conjugate(coriq, oriq); // rotate the z axis by the quat
296
+ const oriq = quat.fromValues(ori[0], ori[1], ori[2], ori[3]);
297
+ const coriq = quat.create();
298
+ const qdir = quat.fromValues(0.0, 0.0, 1.0, 0.0);
299
+ quat.conjugate(coriq, oriq);
320
300
 
301
+ // rotate the z axis by the quat
321
302
  quat.multiply(qdir, oriq, qdir);
322
- quat.multiply(qdir, qdir, coriq); // return the z axis in world coords
303
+ quat.multiply(qdir, qdir, coriq);
323
304
 
305
+ // return the z axis in world coords
324
306
  return [qdir[0], qdir[1], qdir[2]];
325
307
  };
326
-
327
- publicAPI.getPhysicalToWorldMatrix = function (result) {
308
+ publicAPI.getPhysicalToWorldMatrix = result => {
328
309
  publicAPI.getWorldToPhysicalMatrix(result);
329
310
  mat4.invert(result, result);
330
311
  };
312
+ publicAPI.getWorldToPhysicalMatrix = result => {
313
+ mat4.identity(result);
331
314
 
332
- publicAPI.getWorldToPhysicalMatrix = function (result) {
333
- mat4.identity(result); // now the physical to vtk world rotation tform
334
-
335
- var physVRight = [3];
315
+ // now the physical to vtk world rotation tform
316
+ const physVRight = [3];
336
317
  cross(model.physicalViewNorth, model.physicalViewUp, physVRight);
337
318
  result[0] = physVRight[0];
338
319
  result[1] = physVRight[1];
@@ -348,24 +329,26 @@ function vtkCamera(publicAPI, model) {
348
329
  mat4.scale(result, result, tmpvec1);
349
330
  mat4.translate(result, result, model.physicalTranslation);
350
331
  };
351
-
352
- publicAPI.computeViewParametersFromViewMatrix = function (vmat) {
332
+ publicAPI.computeViewParametersFromViewMatrix = vmat => {
353
333
  // invert to get view to world
354
- mat4.invert(tmpMatrix, vmat); // note with glmatrix operations happen in
334
+ mat4.invert(tmpMatrix, vmat);
335
+
336
+ // note with glmatrix operations happen in
355
337
  // the reverse order
356
338
  // mat.scale
357
339
  // mat.translate
358
340
  // will result in the translation then the scale
359
341
  // mat.mult(a,b)
360
342
  // results in perform the B transformation then A
343
+
361
344
  // then extract the params position, orientation
362
345
  // push 0,0,0 through to get a translation
363
-
364
346
  vec3.transformMat4(tmpvec1, origin, tmpMatrix);
365
347
  publicAPI.computeDistance();
366
- var oldDist = model.distance;
367
- publicAPI.setPosition(tmpvec1[0], tmpvec1[1], tmpvec1[2]); // push basis vectors to get orientation
348
+ const oldDist = model.distance;
349
+ publicAPI.setPosition(tmpvec1[0], tmpvec1[1], tmpvec1[2]);
368
350
 
351
+ // push basis vectors to get orientation
369
352
  vec3.transformMat4(tmpvec2, dopbasis, tmpMatrix);
370
353
  vec3.subtract(tmpvec2, tmpvec2, tmpvec1);
371
354
  vec3.normalize(tmpvec2, tmpvec2);
@@ -375,144 +358,131 @@ function vtkCamera(publicAPI, model) {
375
358
  vec3.normalize(tmpvec3, tmpvec3);
376
359
  publicAPI.setViewUp(tmpvec3[0], tmpvec3[1], tmpvec3[2]);
377
360
  publicAPI.setDistance(oldDist);
378
- }; // the provided matrix should include
361
+ };
362
+
363
+ // the provided matrix should include
379
364
  // translation and orientation only
380
365
  // mat is physical to view
381
-
382
-
383
- publicAPI.computeViewParametersFromPhysicalMatrix = function (mat) {
366
+ publicAPI.computeViewParametersFromPhysicalMatrix = mat => {
384
367
  // get the WorldToPhysicalMatrix
385
- publicAPI.getWorldToPhysicalMatrix(tmpMatrix); // first convert the physical -> view matrix to be
386
- // world -> view
368
+ publicAPI.getWorldToPhysicalMatrix(tmpMatrix);
387
369
 
370
+ // first convert the physical -> view matrix to be
371
+ // world -> view
388
372
  mat4.multiply(tmpMatrix, mat, tmpMatrix);
389
373
  publicAPI.computeViewParametersFromViewMatrix(tmpMatrix);
390
374
  };
391
-
392
- publicAPI.setViewMatrix = function (mat) {
375
+ publicAPI.setViewMatrix = mat => {
393
376
  model.viewMatrix = mat;
394
-
395
377
  if (model.viewMatrix) {
396
378
  mat4.copy(tmpMatrix, model.viewMatrix);
397
379
  publicAPI.computeViewParametersFromViewMatrix(tmpMatrix);
398
380
  mat4.transpose(model.viewMatrix, model.viewMatrix);
399
381
  }
400
382
  };
401
-
402
- publicAPI.getViewMatrix = function () {
383
+ publicAPI.getViewMatrix = () => {
403
384
  if (model.viewMatrix) {
404
385
  return model.viewMatrix;
405
386
  }
406
-
407
- mat4.lookAt(tmpMatrix, model.position, // eye
408
- model.focalPoint, // at
387
+ mat4.lookAt(tmpMatrix, model.position,
388
+ // eye
389
+ model.focalPoint,
390
+ // at
409
391
  model.viewUp // up
410
392
  );
393
+
411
394
  mat4.transpose(tmpMatrix, tmpMatrix);
412
- var result = new Float64Array(16);
395
+ const result = new Float64Array(16);
413
396
  mat4.copy(result, tmpMatrix);
414
397
  return result;
415
398
  };
416
-
417
- publicAPI.setProjectionMatrix = function (mat) {
399
+ publicAPI.setProjectionMatrix = mat => {
418
400
  model.projectionMatrix = mat;
419
401
  };
420
-
421
- publicAPI.getProjectionMatrix = function (aspect, nearz, farz) {
422
- var result = new Float64Array(16);
402
+ publicAPI.getProjectionMatrix = (aspect, nearz, farz) => {
403
+ const result = new Float64Array(16);
423
404
  mat4.identity(result);
424
-
425
405
  if (model.projectionMatrix) {
426
- var scale = 1 / model.physicalScale;
406
+ const scale = 1 / model.physicalScale;
427
407
  vec3.set(tmpvec1, scale, scale, scale);
428
408
  mat4.copy(result, model.projectionMatrix);
429
409
  mat4.scale(result, result, tmpvec1);
430
410
  mat4.transpose(result, result);
431
411
  return result;
432
412
  }
413
+ mat4.identity(tmpMatrix);
433
414
 
434
- mat4.identity(tmpMatrix); // FIXME: Not sure what to do about adjust z buffer here
415
+ // FIXME: Not sure what to do about adjust z buffer here
435
416
  // adjust Z-buffer range
436
417
  // this->ProjectionTransform->AdjustZBuffer( -1, +1, nearz, farz );
437
-
438
- var cWidth = model.clippingRange[1] - model.clippingRange[0];
439
- var cRange = [model.clippingRange[0] + (nearz + 1) * cWidth / 2.0, model.clippingRange[0] + (farz + 1) * cWidth / 2.0];
440
-
418
+ const cWidth = model.clippingRange[1] - model.clippingRange[0];
419
+ const cRange = [model.clippingRange[0] + (nearz + 1) * cWidth / 2.0, model.clippingRange[0] + (farz + 1) * cWidth / 2.0];
441
420
  if (model.parallelProjection) {
442
421
  // set up a rectangular parallelipiped
443
- var width = model.parallelScale * aspect;
444
- var height = model.parallelScale;
445
- var xmin = (model.windowCenter[0] - 1.0) * width;
446
- var xmax = (model.windowCenter[0] + 1.0) * width;
447
- var ymin = (model.windowCenter[1] - 1.0) * height;
448
- var ymax = (model.windowCenter[1] + 1.0) * height;
422
+ const width = model.parallelScale * aspect;
423
+ const height = model.parallelScale;
424
+ const xmin = (model.windowCenter[0] - 1.0) * width;
425
+ const xmax = (model.windowCenter[0] + 1.0) * width;
426
+ const ymin = (model.windowCenter[1] - 1.0) * height;
427
+ const ymax = (model.windowCenter[1] + 1.0) * height;
449
428
  mat4.ortho(tmpMatrix, xmin, xmax, ymin, ymax, cRange[0], cRange[1]);
450
429
  mat4.transpose(tmpMatrix, tmpMatrix);
451
430
  } else if (model.useOffAxisProjection) {
452
431
  throw new Error('Off-Axis projection is not supported at this time');
453
432
  } else {
454
- var tmp = Math.tan(radiansFromDegrees(model.viewAngle) / 2.0);
455
-
456
- var _width;
457
-
458
- var _height;
459
-
433
+ const tmp = Math.tan(radiansFromDegrees(model.viewAngle) / 2.0);
434
+ let width;
435
+ let height;
460
436
  if (model.useHorizontalViewAngle === true) {
461
- _width = model.clippingRange[0] * tmp;
462
- _height = model.clippingRange[0] * tmp / aspect;
437
+ width = model.clippingRange[0] * tmp;
438
+ height = model.clippingRange[0] * tmp / aspect;
463
439
  } else {
464
- _width = model.clippingRange[0] * tmp * aspect;
465
- _height = model.clippingRange[0] * tmp;
440
+ width = model.clippingRange[0] * tmp * aspect;
441
+ height = model.clippingRange[0] * tmp;
466
442
  }
467
-
468
- var _xmin = (model.windowCenter[0] - 1.0) * _width;
469
-
470
- var _xmax = (model.windowCenter[0] + 1.0) * _width;
471
-
472
- var _ymin = (model.windowCenter[1] - 1.0) * _height;
473
-
474
- var _ymax = (model.windowCenter[1] + 1.0) * _height;
475
-
476
- var znear = cRange[0];
477
- var zfar = cRange[1];
478
- tmpMatrix[0] = 2.0 * znear / (_xmax - _xmin);
479
- tmpMatrix[5] = 2.0 * znear / (_ymax - _ymin);
480
- tmpMatrix[2] = (_xmin + _xmax) / (_xmax - _xmin);
481
- tmpMatrix[6] = (_ymin + _ymax) / (_ymax - _ymin);
443
+ const xmin = (model.windowCenter[0] - 1.0) * width;
444
+ const xmax = (model.windowCenter[0] + 1.0) * width;
445
+ const ymin = (model.windowCenter[1] - 1.0) * height;
446
+ const ymax = (model.windowCenter[1] + 1.0) * height;
447
+ const znear = cRange[0];
448
+ const zfar = cRange[1];
449
+ tmpMatrix[0] = 2.0 * znear / (xmax - xmin);
450
+ tmpMatrix[5] = 2.0 * znear / (ymax - ymin);
451
+ tmpMatrix[2] = (xmin + xmax) / (xmax - xmin);
452
+ tmpMatrix[6] = (ymin + ymax) / (ymax - ymin);
482
453
  tmpMatrix[10] = -(znear + zfar) / (zfar - znear);
483
454
  tmpMatrix[14] = -1.0;
484
455
  tmpMatrix[11] = -2.0 * znear * zfar / (zfar - znear);
485
456
  tmpMatrix[15] = 0.0;
486
457
  }
487
-
488
458
  mat4.copy(result, tmpMatrix);
489
459
  return result;
490
460
  };
491
-
492
- publicAPI.getCompositeProjectionMatrix = function (aspect, nearz, farz) {
493
- var vMat = publicAPI.getViewMatrix();
494
- var pMat = publicAPI.getProjectionMatrix(aspect, nearz, farz); // mats are transposed so the order is A then B
461
+ publicAPI.getCompositeProjectionMatrix = (aspect, nearz, farz) => {
462
+ const vMat = publicAPI.getViewMatrix();
463
+ const pMat = publicAPI.getProjectionMatrix(aspect, nearz, farz);
464
+ // mats are transposed so the order is A then B
495
465
  // we reuse pMat as it is a copy so we can do what we want with it
496
-
497
466
  mat4.multiply(pMat, vMat, pMat);
498
467
  return pMat;
499
468
  };
500
-
501
- publicAPI.setDirectionOfProjection = function (x, y, z) {
469
+ publicAPI.setDirectionOfProjection = (x, y, z) => {
502
470
  if (model.directionOfProjection[0] === x && model.directionOfProjection[1] === y && model.directionOfProjection[2] === z) {
503
471
  return;
504
472
  }
505
-
506
473
  model.directionOfProjection[0] = x;
507
474
  model.directionOfProjection[1] = y;
508
475
  model.directionOfProjection[2] = z;
509
- var vec = model.directionOfProjection; // recalculate FocalPoint
476
+ const vec = model.directionOfProjection;
510
477
 
478
+ // recalculate FocalPoint
511
479
  model.focalPoint[0] = model.position[0] + vec[0] * model.distance;
512
480
  model.focalPoint[1] = model.position[1] + vec[1] * model.distance;
513
481
  model.focalPoint[2] = model.position[2] + vec[2] * model.distance;
514
482
  computeViewPlaneNormal();
515
- }; // used to handle convert js device orientation angles
483
+ };
484
+
485
+ // used to handle convert js device orientation angles
516
486
  // when you use this method the camera will adjust to the
517
487
  // device orientation such that the physicalViewUp you set
518
488
  // in world coordinates looks up, and the physicalViewNorth
@@ -528,76 +498,73 @@ function vtkCamera(publicAPI, model) {
528
498
  // convention with axes of Z, X, Y (the code below substitutes
529
499
  // the physical coordinate system for these axes to get the right
530
500
  // modified coordinate system.
501
+ publicAPI.setDeviceAngles = (alpha, beta, gamma, screen) => {
502
+ const physVRight = [3];
503
+ cross(model.physicalViewNorth, model.physicalViewUp, physVRight);
531
504
 
532
-
533
- publicAPI.setDeviceAngles = function (alpha, beta, gamma, screen) {
534
- var physVRight = [3];
535
- cross(model.physicalViewNorth, model.physicalViewUp, physVRight); // phone to physical coordinates
536
-
537
- var rotmat = mat4.identity(new Float64Array(16));
505
+ // phone to physical coordinates
506
+ const rotmat = mat4.identity(new Float64Array(16));
538
507
  mat4.rotate(rotmat, rotmat, radiansFromDegrees(alpha), model.physicalViewUp);
539
508
  mat4.rotate(rotmat, rotmat, radiansFromDegrees(beta), physVRight);
540
509
  mat4.rotate(rotmat, rotmat, radiansFromDegrees(gamma), model.physicalViewNorth);
541
510
  mat4.rotate(rotmat, rotmat, radiansFromDegrees(-screen), model.physicalViewUp);
542
- var dop = new Float64Array([-model.physicalViewUp[0], -model.physicalViewUp[1], -model.physicalViewUp[2]]);
543
- var vup = new Float64Array(model.physicalViewNorth);
511
+ const dop = new Float64Array([-model.physicalViewUp[0], -model.physicalViewUp[1], -model.physicalViewUp[2]]);
512
+ const vup = new Float64Array(model.physicalViewNorth);
544
513
  vec3.transformMat4(dop, dop, rotmat);
545
514
  vec3.transformMat4(vup, vup, rotmat);
546
515
  publicAPI.setDirectionOfProjection(dop[0], dop[1], dop[2]);
547
516
  publicAPI.setViewUp(vup[0], vup[1], vup[2]);
548
517
  publicAPI.modified();
549
518
  };
550
-
551
- publicAPI.setOrientationWXYZ = function (degrees, x, y, z) {
552
- var quatMat = mat4.identity(new Float64Array(16));
553
-
519
+ publicAPI.setOrientationWXYZ = (degrees, x, y, z) => {
520
+ const quatMat = mat4.identity(new Float64Array(16));
554
521
  if (degrees !== 0.0 && (x !== 0.0 || y !== 0.0 || z !== 0.0)) {
555
522
  // convert to radians
556
- var angle = radiansFromDegrees(degrees);
557
- var q = quat.create();
523
+ const angle = radiansFromDegrees(degrees);
524
+ const q = quat.create();
558
525
  quat.setAxisAngle(q, [x, y, z], angle);
559
526
  mat4.fromQuat(quatMat, q);
560
527
  }
561
-
562
- var newdop = new Float64Array(3);
528
+ const newdop = new Float64Array(3);
563
529
  vec3.transformMat4(newdop, [0.0, 0.0, -1.0], quatMat);
564
- var newvup = new Float64Array(3);
530
+ const newvup = new Float64Array(3);
565
531
  vec3.transformMat4(newvup, [0.0, 1.0, 0.0], quatMat);
566
- publicAPI.setDirectionOfProjection.apply(publicAPI, _toConsumableArray(newdop));
567
- publicAPI.setViewUp.apply(publicAPI, _toConsumableArray(newvup));
532
+ publicAPI.setDirectionOfProjection(...newdop);
533
+ publicAPI.setViewUp(...newvup);
568
534
  publicAPI.modified();
569
535
  };
570
-
571
- publicAPI.computeClippingRange = function (bounds) {
572
- var vn = null;
573
- var position = null;
536
+ publicAPI.computeClippingRange = bounds => {
537
+ let vn = null;
538
+ let position = null;
574
539
  vn = model.viewPlaneNormal;
575
540
  position = model.position;
576
- var a = -vn[0];
577
- var b = -vn[1];
578
- var c = -vn[2];
579
- var d = -(a * position[0] + b * position[1] + c * position[2]); // Set the max near clipping plane and the min far clipping plane
580
-
581
- var range = [a * bounds[0] + b * bounds[2] + c * bounds[4] + d, 1e-18]; // Find the closest / farthest bounding box vertex
582
-
583
- for (var k = 0; k < 2; k++) {
584
- for (var j = 0; j < 2; j++) {
585
- for (var i = 0; i < 2; i++) {
586
- var dist = a * bounds[i] + b * bounds[2 + j] + c * bounds[4 + k] + d;
541
+ const a = -vn[0];
542
+ const b = -vn[1];
543
+ const c = -vn[2];
544
+ const d = -(a * position[0] + b * position[1] + c * position[2]);
545
+
546
+ // Set the max near clipping plane and the min far clipping plane
547
+ const range = [a * bounds[0] + b * bounds[2] + c * bounds[4] + d, 1e-18];
548
+
549
+ // Find the closest / farthest bounding box vertex
550
+ for (let k = 0; k < 2; k++) {
551
+ for (let j = 0; j < 2; j++) {
552
+ for (let i = 0; i < 2; i++) {
553
+ const dist = a * bounds[i] + b * bounds[2 + j] + c * bounds[4 + k] + d;
587
554
  range[0] = dist < range[0] ? dist : range[0];
588
555
  range[1] = dist > range[1] ? dist : range[1];
589
556
  }
590
557
  }
591
558
  }
592
-
593
559
  return range;
594
560
  };
595
- } // ----------------------------------------------------------------------------
561
+ }
562
+
563
+ // ----------------------------------------------------------------------------
596
564
  // Object factory
597
565
  // ----------------------------------------------------------------------------
598
566
 
599
-
600
- var DEFAULT_VALUES = {
567
+ const DEFAULT_VALUES = {
601
568
  position: [0, 0, 1],
602
569
  focalPoint: [0, 0, 0],
603
570
  viewUp: [0, 1, 0],
@@ -622,27 +589,35 @@ var DEFAULT_VALUES = {
622
589
  physicalScale: 1.0,
623
590
  physicalViewUp: [0, 1, 0],
624
591
  physicalViewNorth: [0, 0, -1]
625
- }; // ----------------------------------------------------------------------------
592
+ };
593
+
594
+ // ----------------------------------------------------------------------------
626
595
 
627
596
  function extend(publicAPI, model) {
628
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
629
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
597
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
598
+ Object.assign(model, DEFAULT_VALUES, initialValues);
630
599
 
600
+ // Build VTK API
631
601
  macro.obj(publicAPI, model);
632
602
  macro.get(publicAPI, model, ['distance']);
633
603
  macro.setGet(publicAPI, model, ['parallelProjection', 'useHorizontalViewAngle', 'viewAngle', 'parallelScale', 'useOffAxisProjection', 'freezeFocalPoint', 'physicalScale']);
634
604
  macro.getArray(publicAPI, model, ['directionOfProjection', 'viewPlaneNormal', 'position', 'focalPoint']);
635
605
  macro.setGetArray(publicAPI, model, ['clippingRange', 'windowCenter'], 2);
636
- macro.setGetArray(publicAPI, model, ['viewUp', 'screenBottomLeft', 'screenBottomRight', 'screenTopRight', 'physicalTranslation', 'physicalViewUp', 'physicalViewNorth'], 3); // Object methods
606
+ macro.setGetArray(publicAPI, model, ['viewUp', 'screenBottomLeft', 'screenBottomRight', 'screenTopRight', 'physicalTranslation', 'physicalViewUp', 'physicalViewNorth'], 3);
637
607
 
608
+ // Object methods
638
609
  vtkCamera(publicAPI, model);
639
- } // ----------------------------------------------------------------------------
610
+ }
640
611
 
641
- var newInstance = macro.newInstance(extend, 'vtkCamera'); // ----------------------------------------------------------------------------
612
+ // ----------------------------------------------------------------------------
613
+
614
+ const newInstance = macro.newInstance(extend, 'vtkCamera');
615
+
616
+ // ----------------------------------------------------------------------------
642
617
 
643
618
  var vtkCamera$1 = {
644
- newInstance: newInstance,
645
- extend: extend
619
+ newInstance,
620
+ extend
646
621
  };
647
622
 
648
623
  export { DEFAULT_VALUES, vtkCamera$1 as default, extend, newInstance };