@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,52 +1,47 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
- import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
4
- import _regeneratorRuntime from '@babel/runtime/regenerator';
5
- import macro from '../../macros.js';
1
+ import { m as macro } from '../../macros2.js';
6
2
  import Constants from './HardwareSelector/Constants.js';
7
3
  import vtkHardwareSelector$1 from '../Core/HardwareSelector.js';
8
4
  import vtkOpenGLFramebuffer from './Framebuffer.js';
9
5
  import vtkSelectionNode from '../../Common/DataModel/SelectionNode.js';
10
6
  import vtkDataSet from '../../Common/DataModel/DataSet.js';
11
7
 
12
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
-
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
- var PassTypes = Constants.PassTypes;
16
- var SelectionContent = vtkSelectionNode.SelectionContent,
17
- SelectionField = vtkSelectionNode.SelectionField;
18
- var FieldAssociations = vtkDataSet.FieldAssociations;
19
- var vtkErrorMacro = macro.vtkErrorMacro;
20
- var idOffset = 1;
21
-
8
+ const {
9
+ PassTypes
10
+ } = Constants;
11
+ const {
12
+ SelectionContent,
13
+ SelectionField
14
+ } = vtkSelectionNode;
15
+ const {
16
+ FieldAssociations
17
+ } = vtkDataSet;
18
+ const {
19
+ vtkErrorMacro
20
+ } = macro;
21
+ const idOffset = 1;
22
22
  function getInfoHash(info) {
23
- return "".concat(info.propID, " ").concat(info.compositeID);
23
+ return `${info.propID} ${info.compositeID}`;
24
24
  }
25
-
26
25
  function getAlpha(xx, yy, pb, area) {
27
26
  if (!pb) {
28
27
  return 0;
29
28
  }
30
-
31
- var offset = (yy * (area[2] - area[0] + 1) + xx) * 4;
29
+ const offset = (yy * (area[2] - area[0] + 1) + xx) * 4;
32
30
  return pb[offset + 3];
33
31
  }
34
-
35
32
  function convert(xx, yy, pb, area) {
36
33
  if (!pb) {
37
34
  return 0;
38
35
  }
39
-
40
- var offset = (yy * (area[2] - area[0] + 1) + xx) * 4;
41
- var r = pb[offset];
42
- var g = pb[offset + 1];
43
- var b = pb[offset + 2];
36
+ const offset = (yy * (area[2] - area[0] + 1) + xx) * 4;
37
+ const r = pb[offset];
38
+ const g = pb[offset + 1];
39
+ const b = pb[offset + 2];
44
40
  return (b * 256 + g) * 256 + r;
45
41
  }
46
-
47
42
  function getID(low24, high8) {
48
43
  /* eslint-disable no-bitwise */
49
- var val = high8;
44
+ let val = high8;
50
45
  val <<= 24;
51
46
  val |= low24;
52
47
  return val;
@@ -55,187 +50,156 @@ function getID(low24, high8) {
55
50
 
56
51
  function getPixelInformationWithData(buffdata, inDisplayPosition, maxDistance, outSelectedPosition) {
57
52
  // Base case
58
- var maxDist = maxDistance < 0 ? 0 : maxDistance;
59
-
53
+ const maxDist = maxDistance < 0 ? 0 : maxDistance;
60
54
  if (maxDist === 0) {
61
55
  outSelectedPosition[0] = inDisplayPosition[0];
62
56
  outSelectedPosition[1] = inDisplayPosition[1];
63
-
64
57
  if (inDisplayPosition[0] < buffdata.area[0] || inDisplayPosition[0] > buffdata.area[2] || inDisplayPosition[1] < buffdata.area[1] || inDisplayPosition[1] > buffdata.area[3]) {
65
58
  return null;
66
- } // offset inDisplayPosition based on the lower-left-corner of the Area.
67
-
68
-
69
- var displayPosition = [inDisplayPosition[0] - buffdata.area[0], inDisplayPosition[1] - buffdata.area[1]];
70
- var actorid = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.ACTOR_PASS], buffdata.area);
59
+ }
71
60
 
61
+ // offset inDisplayPosition based on the lower-left-corner of the Area.
62
+ const displayPosition = [inDisplayPosition[0] - buffdata.area[0], inDisplayPosition[1] - buffdata.area[1]];
63
+ const actorid = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.ACTOR_PASS], buffdata.area);
72
64
  if (actorid <= 0 || actorid - idOffset >= buffdata.props.length) {
73
65
  // the pixel did not hit any actor.
74
66
  return null;
75
67
  }
76
-
77
- var _info = {};
78
- _info.valid = true;
79
- _info.propID = actorid - idOffset;
80
- _info.prop = buffdata.props[_info.propID];
81
- var compositeID = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.COMPOSITE_INDEX_PASS], buffdata.area);
82
-
68
+ const info = {};
69
+ info.valid = true;
70
+ info.propID = actorid - idOffset;
71
+ info.prop = buffdata.props[info.propID];
72
+ let compositeID = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.COMPOSITE_INDEX_PASS], buffdata.area);
83
73
  if (compositeID < 0 || compositeID > 0xffffff) {
84
74
  compositeID = 0;
85
75
  }
86
-
87
- _info.compositeID = compositeID - idOffset;
88
-
76
+ info.compositeID = compositeID - idOffset;
89
77
  if (buffdata.captureZValues) {
90
- var offset = (displayPosition[1] * (buffdata.area[2] - buffdata.area[0] + 1) + displayPosition[0]) * 4;
91
- _info.zValue = (256 * buffdata.zBuffer[offset] + buffdata.zBuffer[offset + 1]) / 65535.0;
92
- _info.displayPosition = inDisplayPosition;
78
+ const offset = (displayPosition[1] * (buffdata.area[2] - buffdata.area[0] + 1) + displayPosition[0]) * 4;
79
+ info.zValue = (256 * buffdata.zBuffer[offset] + buffdata.zBuffer[offset + 1]) / 65535.0;
80
+ info.displayPosition = inDisplayPosition;
93
81
  }
94
-
95
82
  if (buffdata.pixBuffer[PassTypes.ID_LOW24]) {
96
83
  if (getAlpha(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.ID_LOW24], buffdata.area) === 0.0) {
97
- return _info;
84
+ return info;
98
85
  }
99
86
  }
87
+ const low24 = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.ID_LOW24], buffdata.area);
88
+ const high24 = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.ID_HIGH24], buffdata.area);
89
+ info.attributeID = getID(low24, high24);
90
+ return info;
91
+ }
100
92
 
101
- var low24 = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.ID_LOW24], buffdata.area);
102
- var high24 = convert(displayPosition[0], displayPosition[1], buffdata.pixBuffer[PassTypes.ID_HIGH24], buffdata.area);
103
- _info.attributeID = getID(low24, high24);
104
- return _info;
105
- } // Iterate over successively growing boxes.
93
+ // Iterate over successively growing boxes.
106
94
  // They recursively call the base case to handle single pixels.
107
-
108
-
109
- var dispPos = [inDisplayPosition[0], inDisplayPosition[1]];
110
- var curPos = [0, 0];
111
- var info = getPixelInformationWithData(buffdata, inDisplayPosition, 0, outSelectedPosition);
112
-
95
+ const dispPos = [inDisplayPosition[0], inDisplayPosition[1]];
96
+ const curPos = [0, 0];
97
+ let info = getPixelInformationWithData(buffdata, inDisplayPosition, 0, outSelectedPosition);
113
98
  if (info && info.valid) {
114
99
  return info;
115
100
  }
116
-
117
- for (var dist = 1; dist < maxDist; ++dist) {
101
+ for (let dist = 1; dist < maxDist; ++dist) {
118
102
  // Vertical sides of box.
119
- for (var y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {
103
+ for (let y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {
120
104
  curPos[1] = y;
121
-
122
105
  if (dispPos[0] >= dist) {
123
106
  curPos[0] = dispPos[0] - dist;
124
107
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
125
-
126
108
  if (info && info.valid) {
127
109
  return info;
128
110
  }
129
111
  }
130
-
131
112
  curPos[0] = dispPos[0] + dist;
132
113
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
133
-
134
114
  if (info && info.valid) {
135
115
  return info;
136
116
  }
137
- } // Horizontal sides of box.
138
-
139
-
140
- for (var x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {
117
+ }
118
+ // Horizontal sides of box.
119
+ for (let x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {
141
120
  curPos[0] = x;
142
-
143
121
  if (dispPos[1] >= dist) {
144
122
  curPos[1] = dispPos[1] - dist;
145
123
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
146
-
147
124
  if (info && info.valid) {
148
125
  return info;
149
126
  }
150
127
  }
151
-
152
128
  curPos[1] = dispPos[1] + dist;
153
129
  info = getPixelInformationWithData(buffdata, curPos, 0, outSelectedPosition);
154
-
155
130
  if (info && info.valid) {
156
131
  return info;
157
132
  }
158
133
  }
159
- } // nothing hit.
160
-
134
+ }
161
135
 
136
+ // nothing hit.
162
137
  outSelectedPosition[0] = inDisplayPosition[0];
163
138
  outSelectedPosition[1] = inDisplayPosition[1];
164
139
  return null;
165
- } //-----------------------------------------------------------------------------
166
-
140
+ }
167
141
 
142
+ //-----------------------------------------------------------------------------
168
143
  function convertSelection(fieldassociation, dataMap, captureZValues, renderer, openGLRenderWindow) {
169
- var sel = [];
170
- var count = 0;
171
- dataMap.forEach(function (value, key) {
172
- var child = vtkSelectionNode.newInstance();
144
+ const sel = [];
145
+ let count = 0;
146
+ dataMap.forEach((value, key) => {
147
+ const child = vtkSelectionNode.newInstance();
173
148
  child.setContentType(SelectionContent.INDICES);
174
-
175
149
  switch (fieldassociation) {
176
150
  case FieldAssociations.FIELD_ASSOCIATION_CELLS:
177
151
  child.setFieldType(SelectionField.CELL);
178
152
  break;
179
-
180
153
  case FieldAssociations.FIELD_ASSOCIATION_POINTS:
181
154
  child.setFieldType(SelectionField.POINT);
182
155
  break;
183
-
184
156
  default:
185
157
  vtkErrorMacro('Unknown field association');
186
158
  }
187
-
188
159
  child.getProperties().propID = value.info.propID;
189
160
  child.getProperties().prop = value.info.prop;
190
161
  child.getProperties().compositeID = value.info.compositeID;
191
162
  child.getProperties().attributeID = value.info.attributeID;
192
163
  child.getProperties().pixelCount = value.pixelCount;
193
-
194
164
  if (captureZValues) {
195
165
  child.getProperties().displayPosition = [value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue];
196
166
  child.getProperties().worldPosition = openGLRenderWindow.displayToWorld(value.info.displayPosition[0], value.info.displayPosition[1], value.info.zValue, renderer);
197
167
  }
198
-
199
168
  child.setSelectionList(value.attributeIDs);
200
169
  sel[count] = child;
201
170
  count++;
202
171
  });
203
172
  return sel;
204
- } //----------------------------------------------------------------------------
205
-
173
+ }
206
174
 
175
+ //----------------------------------------------------------------------------
207
176
  function generateSelectionWithData(buffdata, fx1, fy1, fx2, fy2) {
208
- var x1 = Math.floor(fx1);
209
- var y1 = Math.floor(fy1);
210
- var x2 = Math.floor(fx2);
211
- var y2 = Math.floor(fy2);
212
- var dataMap = new Map();
213
- var outSelectedPosition = [0, 0];
214
-
215
- for (var yy = y1; yy <= y2; yy++) {
216
- for (var xx = x1; xx <= x2; xx++) {
217
- var pos = [xx, yy];
218
- var info = getPixelInformationWithData(buffdata, pos, 0, outSelectedPosition);
219
-
177
+ const x1 = Math.floor(fx1);
178
+ const y1 = Math.floor(fy1);
179
+ const x2 = Math.floor(fx2);
180
+ const y2 = Math.floor(fy2);
181
+ const dataMap = new Map();
182
+ const outSelectedPosition = [0, 0];
183
+ for (let yy = y1; yy <= y2; yy++) {
184
+ for (let xx = x1; xx <= x2; xx++) {
185
+ const pos = [xx, yy];
186
+ const info = getPixelInformationWithData(buffdata, pos, 0, outSelectedPosition);
220
187
  if (info && info.valid) {
221
- var hash = getInfoHash(info);
222
-
188
+ const hash = getInfoHash(info);
223
189
  if (!dataMap.has(hash)) {
224
190
  dataMap.set(hash, {
225
- info: info,
191
+ info,
226
192
  pixelCount: 1,
227
193
  attributeIDs: [info.attributeID]
228
194
  });
229
195
  } else {
230
- var dmv = dataMap.get(hash);
196
+ const dmv = dataMap.get(hash);
231
197
  dmv.pixelCount++;
232
-
233
198
  if (buffdata.captureZValues) {
234
199
  if (info.zValue < dmv.info.zValue) {
235
200
  dmv.info = info;
236
201
  }
237
202
  }
238
-
239
203
  if (dmv.attributeIDs.indexOf(info.attributeID) === -1) {
240
204
  dmv.attributeIDs.push(info.attributeID);
241
205
  }
@@ -243,505 +207,416 @@ function generateSelectionWithData(buffdata, fx1, fy1, fx2, fy2) {
243
207
  }
244
208
  }
245
209
  }
246
-
247
210
  return convertSelection(buffdata.fieldAssociation, dataMap, buffdata.captureZValues, buffdata.renderer, buffdata.openGLRenderWindow);
248
- } // ----------------------------------------------------------------------------
211
+ }
212
+
213
+ // ----------------------------------------------------------------------------
249
214
  // vtkOpenGLHardwareSelector methods
250
215
  // ----------------------------------------------------------------------------
251
216
 
252
-
253
217
  function vtkOpenGLHardwareSelector(publicAPI, model) {
254
218
  // Set our className
255
- model.classHierarchy.push('vtkOpenGLHardwareSelector'); //----------------------------------------------------------------------------
219
+ model.classHierarchy.push('vtkOpenGLHardwareSelector');
256
220
 
257
- publicAPI.releasePixBuffers = function () {
221
+ //----------------------------------------------------------------------------
222
+ publicAPI.releasePixBuffers = () => {
258
223
  model.rawPixBuffer = [];
259
224
  model.pixBuffer = [];
260
225
  model.zBuffer = null;
261
- }; //----------------------------------------------------------------------------
262
-
226
+ };
263
227
 
264
- publicAPI.beginSelection = function () {
228
+ //----------------------------------------------------------------------------
229
+ publicAPI.beginSelection = () => {
265
230
  model._openGLRenderer = model._openGLRenderWindow.getViewNodeFor(model._renderer);
266
231
  model.maxAttributeId = 0;
267
-
268
- var size = model._openGLRenderWindow.getSize();
269
-
232
+ const size = model._openGLRenderWindow.getSize();
270
233
  if (!model.framebuffer) {
271
234
  model.framebuffer = vtkOpenGLFramebuffer.newInstance();
272
235
  model.framebuffer.setOpenGLRenderWindow(model._openGLRenderWindow);
273
236
  model.framebuffer.saveCurrentBindingsAndBuffers();
274
- model.framebuffer.create(size[0], size[1]); // this calls model.framebuffer.bind()
275
-
237
+ model.framebuffer.create(size[0], size[1]);
238
+ // this calls model.framebuffer.bind()
276
239
  model.framebuffer.populateFramebuffer();
277
240
  } else {
278
241
  model.framebuffer.setOpenGLRenderWindow(model._openGLRenderWindow);
279
242
  model.framebuffer.saveCurrentBindingsAndBuffers();
280
- var fbSize = model.framebuffer.getSize();
281
-
243
+ const fbSize = model.framebuffer.getSize();
282
244
  if (fbSize[0] !== size[0] || fbSize[1] !== size[1]) {
283
- model.framebuffer.create(size[0], size[1]); // this calls model.framebuffer.bind()
284
-
245
+ model.framebuffer.create(size[0], size[1]);
246
+ // this calls model.framebuffer.bind()
285
247
  model.framebuffer.populateFramebuffer();
286
248
  } else {
287
249
  model.framebuffer.bind();
288
250
  }
289
251
  }
290
-
291
252
  model._openGLRenderer.clear();
292
-
293
253
  model._openGLRenderer.setSelector(publicAPI);
294
-
295
254
  model.hitProps = {};
296
255
  model.propPixels = {};
297
256
  model.props = [];
298
257
  publicAPI.releasePixBuffers();
299
-
300
258
  if (model.fieldAssociation === FieldAssociations.FIELD_ASSOCIATION_POINTS) {
301
- var gl = model._openGLRenderWindow.getContext();
302
-
303
- var originalBlending = gl.isEnabled(gl.BLEND);
259
+ const gl = model._openGLRenderWindow.getContext();
260
+ const originalBlending = gl.isEnabled(gl.BLEND);
304
261
  gl.disable(gl.BLEND);
305
-
306
262
  model._openGLRenderWindow.traverseAllPasses();
307
-
308
263
  if (originalBlending) {
309
264
  gl.enable(gl.BLEND);
310
265
  }
311
266
  }
312
- }; //----------------------------------------------------------------------------
313
-
267
+ };
314
268
 
315
- publicAPI.endSelection = function () {
269
+ //----------------------------------------------------------------------------
270
+ publicAPI.endSelection = () => {
316
271
  model.hitProps = {};
317
-
318
272
  model._openGLRenderer.setSelector(null);
319
-
320
273
  model.framebuffer.restorePreviousBindingsAndBuffers();
321
274
  };
322
-
323
- publicAPI.preCapturePass = function () {
324
- var gl = model._openGLRenderWindow.getContext(); // Disable blending
325
-
326
-
275
+ publicAPI.preCapturePass = () => {
276
+ const gl = model._openGLRenderWindow.getContext();
277
+ // Disable blending
327
278
  model.originalBlending = gl.isEnabled(gl.BLEND);
328
279
  gl.disable(gl.BLEND);
329
280
  };
330
-
331
- publicAPI.postCapturePass = function () {
332
- var gl = model._openGLRenderWindow.getContext(); // Restore blending if it was enabled prior to the capture
333
-
334
-
281
+ publicAPI.postCapturePass = () => {
282
+ const gl = model._openGLRenderWindow.getContext();
283
+ // Restore blending if it was enabled prior to the capture
335
284
  if (model.originalBlending) {
336
285
  gl.enable(gl.BLEND);
337
286
  }
338
- }; //----------------------------------------------------------------------------
339
-
340
-
341
- publicAPI.select = function () {
342
- var sel = null;
287
+ };
343
288
 
289
+ //----------------------------------------------------------------------------
290
+ publicAPI.select = () => {
291
+ let sel = null;
344
292
  if (publicAPI.captureBuffers()) {
345
293
  sel = publicAPI.generateSelection(model.area[0], model.area[1], model.area[2], model.area[3]);
346
294
  publicAPI.releasePixBuffers();
347
295
  }
348
-
349
296
  return sel;
350
297
  };
351
-
352
- publicAPI.getSourceDataAsync = /*#__PURE__*/function () {
353
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(renderer, fx1, fy1, fx2, fy2) {
354
- var size, result;
355
- return _regeneratorRuntime.wrap(function _callee$(_context) {
356
- while (1) {
357
- switch (_context.prev = _context.next) {
358
- case 0:
359
- // assign the renderer
360
- model._renderer = renderer; // set area to all if no arguments provided
361
-
362
- if (fx1 === undefined) {
363
- size = model._openGLRenderWindow.getSize();
364
- publicAPI.setArea(0, 0, size[0] - 1, size[1] - 1);
365
- } else {
366
- publicAPI.setArea(fx1, fy1, fx2, fy2);
367
- } // just do capture buffers and package up the result
368
-
369
-
370
- if (publicAPI.captureBuffers()) {
371
- _context.next = 4;
372
- break;
373
- }
374
-
375
- return _context.abrupt("return", false);
376
-
377
- case 4:
378
- result = {
379
- area: _toConsumableArray(model.area),
380
- pixBuffer: _toConsumableArray(model.pixBuffer),
381
- captureZValues: model.captureZValues,
382
- zBuffer: model.zBuffer,
383
- props: _toConsumableArray(model.props),
384
- fieldAssociation: model.fieldAssociation,
385
- renderer: renderer,
386
- openGLRenderWindow: model._openGLRenderWindow
387
- };
388
-
389
- result.generateSelection = function () {
390
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
391
- args[_key] = arguments[_key];
392
- }
393
-
394
- return generateSelectionWithData.apply(void 0, [result].concat(args));
395
- };
396
-
397
- return _context.abrupt("return", result);
398
-
399
- case 7:
400
- case "end":
401
- return _context.stop();
402
- }
403
- }
404
- }, _callee);
405
- }));
406
-
407
- return function (_x, _x2, _x3, _x4, _x5) {
408
- return _ref.apply(this, arguments);
298
+ publicAPI.getSourceDataAsync = async (renderer, fx1, fy1, fx2, fy2) => {
299
+ // assign the renderer
300
+ model._renderer = renderer;
301
+
302
+ // set area to all if no arguments provided
303
+ if (fx1 === undefined) {
304
+ const size = model._openGLRenderWindow.getSize();
305
+ publicAPI.setArea(0, 0, size[0] - 1, size[1] - 1);
306
+ } else {
307
+ publicAPI.setArea(fx1, fy1, fx2, fy2);
308
+ }
309
+ // just do capture buffers and package up the result
310
+ if (!publicAPI.captureBuffers()) {
311
+ return false;
312
+ }
313
+ const result = {
314
+ area: [...model.area],
315
+ pixBuffer: [...model.pixBuffer],
316
+ captureZValues: model.captureZValues,
317
+ zBuffer: model.zBuffer,
318
+ props: [...model.props],
319
+ fieldAssociation: model.fieldAssociation,
320
+ renderer,
321
+ openGLRenderWindow: model._openGLRenderWindow
409
322
  };
410
- }(); //----------------------------------------------------------------------------
411
-
323
+ result.generateSelection = function () {
324
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
325
+ args[_key] = arguments[_key];
326
+ }
327
+ return generateSelectionWithData(result, ...args);
328
+ };
329
+ return result;
330
+ };
412
331
 
413
- publicAPI.captureBuffers = function () {
332
+ //----------------------------------------------------------------------------
333
+ publicAPI.captureBuffers = () => {
414
334
  if (!model._renderer || !model._openGLRenderWindow) {
415
335
  vtkErrorMacro('Renderer and view must be set before calling Select.');
416
336
  return false;
417
337
  }
338
+ model._openGLRenderer = model._openGLRenderWindow.getViewNodeFor(model._renderer);
418
339
 
419
- model._openGLRenderer = model._openGLRenderWindow.getViewNodeFor(model._renderer); // todo revisit making selection part of core
340
+ // todo revisit making selection part of core
420
341
  // then we can do this in core
342
+ model._openGLRenderWindow.getRenderable().preRender();
421
343
 
422
- model._openGLRenderWindow.getRenderable().preRender(); // int rgba[4];
344
+ // int rgba[4];
423
345
  // rwin.getColorBufferSizes(rgba);
424
346
  // if (rgba[0] < 8 || rgba[1] < 8 || rgba[2] < 8) {
425
347
  // vtkErrorMacro("Color buffer depth must be at least 8 bit. "
426
348
  // "Currently: " << rgba[0] << ", " << rgba[1] << ", " <<rgba[2]);
427
349
  // return false;
428
350
  // }
429
-
430
-
431
351
  publicAPI.invokeEvent({
432
352
  type: 'StartEvent'
433
- }); // Initialize renderer for selection.
434
- // change the renderer's background to black, which will indicate a miss
353
+ });
435
354
 
355
+ // Initialize renderer for selection.
356
+ // change the renderer's background to black, which will indicate a miss
436
357
  model.originalBackground = model._renderer.getBackgroundByReference();
437
-
438
358
  model._renderer.setBackground(0.0, 0.0, 0.0, 0.0);
439
-
440
- var rpasses = model._openGLRenderWindow.getRenderPasses();
441
-
359
+ const rpasses = model._openGLRenderWindow.getRenderPasses();
442
360
  publicAPI.beginSelection();
443
-
444
361
  for (model.currentPass = PassTypes.MIN_KNOWN_PASS; model.currentPass <= PassTypes.MAX_KNOWN_PASS; model.currentPass++) {
445
362
  if (publicAPI.passRequired(model.currentPass)) {
446
363
  publicAPI.preCapturePass(model.currentPass);
447
-
448
364
  if (model.captureZValues && model.currentPass === PassTypes.ACTOR_PASS && typeof rpasses[0].requestDepth === 'function' && typeof rpasses[0].getFramebuffer === 'function') {
449
365
  rpasses[0].requestDepth();
450
-
451
366
  model._openGLRenderWindow.traverseAllPasses();
452
367
  } else {
453
368
  model._openGLRenderWindow.traverseAllPasses();
454
369
  }
455
-
456
370
  publicAPI.postCapturePass(model.currentPass);
457
371
  publicAPI.savePixelBuffer(model.currentPass);
458
372
  publicAPI.processPixelBuffers();
459
373
  }
460
374
  }
375
+ publicAPI.endSelection();
461
376
 
462
- publicAPI.endSelection(); // restore original background
463
-
377
+ // restore original background
464
378
  model._renderer.setBackground(model.originalBackground);
465
-
466
379
  publicAPI.invokeEvent({
467
380
  type: 'EndEvent'
468
- }); // restore image, not needed?
469
- // model._openGLRenderWindow.traverseAllPasses();
381
+ });
470
382
 
383
+ // restore image, not needed?
384
+ // model._openGLRenderWindow.traverseAllPasses();
471
385
  return true;
472
386
  };
473
-
474
- publicAPI.processPixelBuffers = function () {
475
- model.props.forEach(function (prop, index) {
387
+ publicAPI.processPixelBuffers = () => {
388
+ model.props.forEach((prop, index) => {
476
389
  if (publicAPI.isPropHit(index)) {
477
390
  prop.processSelectorPixelBuffers(publicAPI, model.propPixels[index]);
478
391
  }
479
392
  });
480
- }; //----------------------------------------------------------------------------
481
-
393
+ };
482
394
 
483
- publicAPI.passRequired = function (pass) {
395
+ //----------------------------------------------------------------------------
396
+ publicAPI.passRequired = pass => {
484
397
  if (pass === PassTypes.ID_HIGH24) {
485
398
  if (model.fieldAssociation === FieldAssociations.FIELD_ASSOCIATION_POINTS) {
486
399
  return model.maximumPointId > 0x00ffffff;
487
400
  }
488
-
489
401
  if (model.fieldAssociation === FieldAssociations.FIELD_ASSOCIATION_CELLS) {
490
402
  return model.maximumCellId > 0x00ffffff;
491
403
  }
492
404
  }
493
-
494
405
  return true;
495
- }; //----------------------------------------------------------------------------
496
-
406
+ };
497
407
 
498
- publicAPI.savePixelBuffer = function (passNo) {
408
+ //----------------------------------------------------------------------------
409
+ publicAPI.savePixelBuffer = passNo => {
499
410
  model.pixBuffer[passNo] = model._openGLRenderWindow.getPixelData(model.area[0], model.area[1], model.area[2], model.area[3]);
500
-
501
411
  if (!model.rawPixBuffer[passNo]) {
502
- var size = (model.area[2] - model.area[0] + 1) * (model.area[3] - model.area[1] + 1) * 4;
412
+ const size = (model.area[2] - model.area[0] + 1) * (model.area[3] - model.area[1] + 1) * 4;
503
413
  model.rawPixBuffer[passNo] = new Uint8Array(size);
504
414
  model.rawPixBuffer[passNo].set(model.pixBuffer[passNo]);
505
415
  }
506
-
507
416
  if (passNo === PassTypes.ACTOR_PASS) {
508
417
  if (model.captureZValues) {
509
- var rpasses = model._openGLRenderWindow.getRenderPasses();
510
-
418
+ const rpasses = model._openGLRenderWindow.getRenderPasses();
511
419
  if (typeof rpasses[0].requestDepth === 'function' && typeof rpasses[0].getFramebuffer === 'function') {
512
- var fb = rpasses[0].getFramebuffer();
420
+ const fb = rpasses[0].getFramebuffer();
513
421
  fb.saveCurrentBindingsAndBuffers();
514
422
  fb.bind();
515
423
  model.zBuffer = model._openGLRenderWindow.getPixelData(model.area[0], model.area[1], model.area[2], model.area[3]);
516
424
  fb.restorePreviousBindingsAndBuffers();
517
425
  }
518
426
  }
519
-
520
427
  publicAPI.buildPropHitList(model.rawPixBuffer[passNo]);
521
428
  }
522
- }; //----------------------------------------------------------------------------
523
-
524
-
525
- publicAPI.buildPropHitList = function (pixelbuffer) {
526
- var offset = 0;
527
-
528
- for (var yy = 0; yy <= model.area[3] - model.area[1]; yy++) {
529
- for (var xx = 0; xx <= model.area[2] - model.area[0]; xx++) {
530
- var val = convert(xx, yy, pixelbuffer, model.area);
429
+ };
531
430
 
431
+ //----------------------------------------------------------------------------
432
+ publicAPI.buildPropHitList = pixelbuffer => {
433
+ let offset = 0;
434
+ for (let yy = 0; yy <= model.area[3] - model.area[1]; yy++) {
435
+ for (let xx = 0; xx <= model.area[2] - model.area[0]; xx++) {
436
+ let val = convert(xx, yy, pixelbuffer, model.area);
532
437
  if (val > 0) {
533
438
  val--;
534
-
535
439
  if (!(val in model.hitProps)) {
536
440
  model.hitProps[val] = true;
537
441
  model.propPixels[val] = [];
538
442
  }
539
-
540
443
  model.propPixels[val].push(offset * 4);
541
444
  }
542
-
543
445
  ++offset;
544
446
  }
545
447
  }
546
- }; //----------------------------------------------------------------------------
547
-
448
+ };
548
449
 
549
- publicAPI.renderProp = function (prop) {
450
+ //----------------------------------------------------------------------------
451
+ publicAPI.renderProp = prop => {
550
452
  if (model.currentPass === PassTypes.ACTOR_PASS) {
551
453
  publicAPI.setPropColorValueFromInt(model.props.length + idOffset);
552
454
  model.props.push(prop);
553
455
  }
554
- }; //----------------------------------------------------------------------------
555
-
456
+ };
556
457
 
557
- publicAPI.renderCompositeIndex = function (index) {
458
+ //----------------------------------------------------------------------------
459
+ publicAPI.renderCompositeIndex = index => {
558
460
  if (model.currentPass === PassTypes.COMPOSITE_INDEX_PASS) {
559
461
  publicAPI.setPropColorValueFromInt(index + idOffset);
560
462
  }
561
- }; //----------------------------------------------------------------------------
562
- // TODO: make inline
563
-
463
+ };
564
464
 
565
- publicAPI.renderAttributeId = function (attribid) {
465
+ //----------------------------------------------------------------------------
466
+ // TODO: make inline
467
+ publicAPI.renderAttributeId = attribid => {
566
468
  if (attribid < 0) {
567
469
  // negative attribid is valid. It happens when rendering higher order
568
470
  // elements where new points are added for rendering smooth surfaces.
569
471
  return;
570
472
  }
473
+ model.maxAttributeId = attribid > model.maxAttributeId ? attribid : model.maxAttributeId;
571
474
 
572
- model.maxAttributeId = attribid > model.maxAttributeId ? attribid : model.maxAttributeId; // if (model.currentPass < PassTypes.ID_LOW24) {
475
+ // if (model.currentPass < PassTypes.ID_LOW24) {
573
476
  // return; // useless...
574
477
  // }
575
- }; //----------------------------------------------------------------------------
576
-
577
-
578
- publicAPI.passTypeToString = function (type) {
579
- return macro.enumToString(PassTypes, type);
580
- }; //----------------------------------------------------------------------------
581
-
582
-
583
- publicAPI.isPropHit = function (id) {
584
- return Boolean(model.hitProps[id]);
585
478
  };
586
479
 
587
- publicAPI.setPropColorValueFromInt = function (val) {
480
+ //----------------------------------------------------------------------------
481
+ publicAPI.passTypeToString = type => macro.enumToString(PassTypes, type);
482
+
483
+ //----------------------------------------------------------------------------
484
+ publicAPI.isPropHit = id => Boolean(model.hitProps[id]);
485
+ publicAPI.setPropColorValueFromInt = val => {
588
486
  model.propColorValue[0] = val % 256 / 255.0;
589
487
  model.propColorValue[1] = Math.floor(val / 256) % 256 / 255.0;
590
488
  model.propColorValue[2] = Math.floor(val / 65536) % 256 / 255.0;
591
- }; // info has
489
+ };
490
+
491
+ // info has
592
492
  // valid
593
493
  // propId
594
494
  // prop
595
495
  // compositeID
596
496
  // attributeID
597
- //----------------------------------------------------------------------------
598
497
 
599
-
600
- publicAPI.getPixelInformation = function (inDisplayPosition, maxDistance, outSelectedPosition) {
498
+ //----------------------------------------------------------------------------
499
+ publicAPI.getPixelInformation = (inDisplayPosition, maxDistance, outSelectedPosition) => {
601
500
  // Base case
602
- var maxDist = maxDistance < 0 ? 0 : maxDistance;
603
-
501
+ const maxDist = maxDistance < 0 ? 0 : maxDistance;
604
502
  if (maxDist === 0) {
605
503
  outSelectedPosition[0] = inDisplayPosition[0];
606
504
  outSelectedPosition[1] = inDisplayPosition[1];
607
-
608
505
  if (inDisplayPosition[0] < model.area[0] || inDisplayPosition[0] > model.area[2] || inDisplayPosition[1] < model.area[1] || inDisplayPosition[1] > model.area[3]) {
609
506
  return null;
610
- } // offset inDisplayPosition based on the lower-left-corner of the Area.
611
-
612
-
613
- var displayPosition = [inDisplayPosition[0] - model.area[0], inDisplayPosition[1] - model.area[1]];
614
- var actorid = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ACTOR_PASS], model.area);
507
+ }
615
508
 
509
+ // offset inDisplayPosition based on the lower-left-corner of the Area.
510
+ const displayPosition = [inDisplayPosition[0] - model.area[0], inDisplayPosition[1] - model.area[1]];
511
+ const actorid = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ACTOR_PASS], model.area);
616
512
  if (actorid <= 0 || actorid - idOffset >= model.props.length) {
617
513
  // the pixel did not hit any actor.
618
514
  return null;
619
515
  }
620
-
621
- var _info2 = {};
622
- _info2.valid = true;
623
- _info2.propID = actorid - idOffset;
624
- _info2.prop = model.props[_info2.propID];
625
- var compositeID = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.COMPOSITE_INDEX_PASS], model.area);
626
-
516
+ const info = {};
517
+ info.valid = true;
518
+ info.propID = actorid - idOffset;
519
+ info.prop = model.props[info.propID];
520
+ let compositeID = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.COMPOSITE_INDEX_PASS], model.area);
627
521
  if (compositeID < 0 || compositeID > 0xffffff) {
628
522
  compositeID = 0;
629
523
  }
630
-
631
- _info2.compositeID = compositeID - idOffset;
632
-
524
+ info.compositeID = compositeID - idOffset;
633
525
  if (model.captureZValues) {
634
- var offset = (displayPosition[1] * (model.area[2] - model.area[0] + 1) + displayPosition[0]) * 4;
635
- _info2.zValue = (256 * model.zBuffer[offset] + model.zBuffer[offset + 1]) / 65535.0;
636
- _info2.displayPosition = inDisplayPosition;
637
- } // Skip attribute ids if alpha is zero (missed)
638
-
526
+ const offset = (displayPosition[1] * (model.area[2] - model.area[0] + 1) + displayPosition[0]) * 4;
527
+ info.zValue = (256 * model.zBuffer[offset] + model.zBuffer[offset + 1]) / 65535.0;
528
+ info.displayPosition = inDisplayPosition;
529
+ }
639
530
 
531
+ // Skip attribute ids if alpha is zero (missed)
640
532
  if (model.pixBuffer[PassTypes.ID_LOW24]) {
641
533
  if (getAlpha(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ID_LOW24], model.area) === 0.0) {
642
- return _info2;
534
+ return info;
643
535
  }
644
536
  }
537
+ const low24 = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ID_LOW24], model.area);
538
+ const high24 = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ID_HIGH24], model.area);
539
+ info.attributeID = getID(low24, high24);
540
+ return info;
541
+ }
645
542
 
646
- var low24 = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ID_LOW24], model.area);
647
- var high24 = convert(displayPosition[0], displayPosition[1], model.pixBuffer[PassTypes.ID_HIGH24], model.area);
648
- _info2.attributeID = getID(low24, high24);
649
- return _info2;
650
- } // Iterate over successively growing boxes.
543
+ // Iterate over successively growing boxes.
651
544
  // They recursively call the base case to handle single pixels.
652
-
653
-
654
- var dispPos = [inDisplayPosition[0], inDisplayPosition[1]];
655
- var curPos = [0, 0];
656
- var info = publicAPI.getPixelInformation(inDisplayPosition, 0, outSelectedPosition);
657
-
545
+ const dispPos = [inDisplayPosition[0], inDisplayPosition[1]];
546
+ const curPos = [0, 0];
547
+ let info = publicAPI.getPixelInformation(inDisplayPosition, 0, outSelectedPosition);
658
548
  if (info && info.valid) {
659
549
  return info;
660
550
  }
661
-
662
- for (var dist = 1; dist < maxDist; ++dist) {
551
+ for (let dist = 1; dist < maxDist; ++dist) {
663
552
  // Vertical sides of box.
664
- for (var y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {
553
+ for (let y = dispPos[1] > dist ? dispPos[1] - dist : 0; y <= dispPos[1] + dist; ++y) {
665
554
  curPos[1] = y;
666
-
667
555
  if (dispPos[0] >= dist) {
668
556
  curPos[0] = dispPos[0] - dist;
669
557
  info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);
670
-
671
558
  if (info && info.valid) {
672
559
  return info;
673
560
  }
674
561
  }
675
-
676
562
  curPos[0] = dispPos[0] + dist;
677
563
  info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);
678
-
679
564
  if (info && info.valid) {
680
565
  return info;
681
566
  }
682
- } // Horizontal sides of box.
683
-
684
-
685
- for (var x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {
567
+ }
568
+ // Horizontal sides of box.
569
+ for (let x = dispPos[0] >= dist ? dispPos[0] - (dist - 1) : 0; x <= dispPos[0] + (dist - 1); ++x) {
686
570
  curPos[0] = x;
687
-
688
571
  if (dispPos[1] >= dist) {
689
572
  curPos[1] = dispPos[1] - dist;
690
573
  info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);
691
-
692
574
  if (info && info.valid) {
693
575
  return info;
694
576
  }
695
577
  }
696
-
697
578
  curPos[1] = dispPos[1] + dist;
698
579
  info = publicAPI.getPixelInformation(curPos, 0, outSelectedPosition);
699
-
700
580
  if (info && info.valid) {
701
581
  return info;
702
582
  }
703
583
  }
704
- } // nothing hit.
705
-
584
+ }
706
585
 
586
+ // nothing hit.
707
587
  outSelectedPosition[0] = inDisplayPosition[0];
708
588
  outSelectedPosition[1] = inDisplayPosition[1];
709
589
  return null;
710
- }; //----------------------------------------------------------------------------
711
-
712
-
713
- publicAPI.generateSelection = function (fx1, fy1, fx2, fy2) {
714
- var x1 = Math.floor(fx1);
715
- var y1 = Math.floor(fy1);
716
- var x2 = Math.floor(fx2);
717
- var y2 = Math.floor(fy2);
718
- var dataMap = new Map();
719
- var outSelectedPosition = [0, 0];
720
-
721
- for (var yy = y1; yy <= y2; yy++) {
722
- for (var xx = x1; xx <= x2; xx++) {
723
- var pos = [xx, yy];
724
- var info = publicAPI.getPixelInformation(pos, 0, outSelectedPosition);
590
+ };
725
591
 
592
+ //----------------------------------------------------------------------------
593
+ publicAPI.generateSelection = (fx1, fy1, fx2, fy2) => {
594
+ const x1 = Math.floor(fx1);
595
+ const y1 = Math.floor(fy1);
596
+ const x2 = Math.floor(fx2);
597
+ const y2 = Math.floor(fy2);
598
+ const dataMap = new Map();
599
+ const outSelectedPosition = [0, 0];
600
+ for (let yy = y1; yy <= y2; yy++) {
601
+ for (let xx = x1; xx <= x2; xx++) {
602
+ const pos = [xx, yy];
603
+ const info = publicAPI.getPixelInformation(pos, 0, outSelectedPosition);
726
604
  if (info && info.valid) {
727
- var hash = getInfoHash(info);
728
-
605
+ const hash = getInfoHash(info);
729
606
  if (!dataMap.has(hash)) {
730
607
  dataMap.set(hash, {
731
- info: info,
608
+ info,
732
609
  pixelCount: 1,
733
610
  attributeIDs: [info.attributeID]
734
611
  });
735
612
  } else {
736
- var dmv = dataMap.get(hash);
613
+ const dmv = dataMap.get(hash);
737
614
  dmv.pixelCount++;
738
-
739
615
  if (model.captureZValues) {
740
616
  if (info.zValue < dmv.info.zValue) {
741
617
  dmv.info = info;
742
618
  }
743
619
  }
744
-
745
620
  if (dmv.attributeIDs.indexOf(info.attributeID) === -1) {
746
621
  dmv.attributeIDs.push(info.attributeID);
747
622
  }
@@ -749,44 +624,37 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
749
624
  }
750
625
  }
751
626
  }
752
-
753
627
  return convertSelection(model.fieldAssociation, dataMap, model.captureZValues, model._renderer, model._openGLRenderWindow);
754
628
  };
629
+ publicAPI.getRawPixelBuffer = passNo => model.rawPixBuffer[passNo];
630
+ publicAPI.getPixelBuffer = passNo => model.pixBuffer[passNo];
755
631
 
756
- publicAPI.getRawPixelBuffer = function (passNo) {
757
- return model.rawPixBuffer[passNo];
758
- };
759
-
760
- publicAPI.getPixelBuffer = function (passNo) {
761
- return model.pixBuffer[passNo];
762
- }; //----------------------------------------------------------------------------
763
-
632
+ //----------------------------------------------------------------------------
764
633
 
765
- publicAPI.attach = function (w, r) {
634
+ publicAPI.attach = (w, r) => {
766
635
  model._openGLRenderWindow = w;
767
636
  model._renderer = r;
768
- }; // override
769
-
770
-
771
- var superSetArea = publicAPI.setArea;
637
+ };
772
638
 
639
+ // override
640
+ const superSetArea = publicAPI.setArea;
773
641
  publicAPI.setArea = function () {
774
- if (superSetArea.apply(void 0, arguments)) {
642
+ if (superSetArea(...arguments)) {
775
643
  model.area[0] = Math.floor(model.area[0]);
776
644
  model.area[1] = Math.floor(model.area[1]);
777
645
  model.area[2] = Math.floor(model.area[2]);
778
646
  model.area[3] = Math.floor(model.area[3]);
779
647
  return true;
780
648
  }
781
-
782
649
  return false;
783
650
  };
784
- } // ----------------------------------------------------------------------------
651
+ }
652
+
653
+ // ----------------------------------------------------------------------------
785
654
  // Object factory
786
655
  // ----------------------------------------------------------------------------
787
656
 
788
-
789
- var DEFAULT_VALUES = {
657
+ const DEFAULT_VALUES = {
790
658
  area: undefined,
791
659
  // _renderer: null,
792
660
  // _openGLRenderWindow: null,
@@ -797,34 +665,41 @@ var DEFAULT_VALUES = {
797
665
  maximumPointId: 0,
798
666
  maximumCellId: 0,
799
667
  idOffset: 1
800
- }; // ----------------------------------------------------------------------------
668
+ };
669
+
670
+ // ----------------------------------------------------------------------------
801
671
 
802
672
  function extend(publicAPI, model) {
803
- var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
804
- Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
673
+ let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
674
+ Object.assign(model, DEFAULT_VALUES, initialValues);
805
675
 
676
+ // Build VTK API
806
677
  vtkHardwareSelector$1.extend(publicAPI, model, initialValues);
807
678
  model.propColorValue = [0, 0, 0];
808
679
  model.props = [];
809
-
810
680
  if (!model.area) {
811
681
  model.area = [0, 0, 0, 0];
812
682
  }
813
-
814
683
  macro.setGetArray(publicAPI, model, ['area'], 4);
815
684
  macro.setGet(publicAPI, model, ['_renderer', 'currentPass', '_openGLRenderWindow', 'maximumPointId', 'maximumCellId']);
816
685
  macro.setGetArray(publicAPI, model, ['propColorValue'], 3);
817
686
  macro.moveToProtected(publicAPI, model, ['renderer', 'openGLRenderWindow']);
818
- macro.event(publicAPI, model, 'event'); // Object methods
687
+ macro.event(publicAPI, model, 'event');
819
688
 
689
+ // Object methods
820
690
  vtkOpenGLHardwareSelector(publicAPI, model);
821
- } // ----------------------------------------------------------------------------
691
+ }
822
692
 
823
- var newInstance = macro.newInstance(extend, 'vtkOpenGLHardwareSelector'); // ----------------------------------------------------------------------------
693
+ // ----------------------------------------------------------------------------
694
+
695
+ const newInstance = macro.newInstance(extend, 'vtkOpenGLHardwareSelector');
696
+
697
+ // ----------------------------------------------------------------------------
824
698
 
825
- var vtkHardwareSelector = _objectSpread({
826
- newInstance: newInstance,
827
- extend: extend
828
- }, Constants);
699
+ var vtkHardwareSelector = {
700
+ newInstance,
701
+ extend,
702
+ ...Constants
703
+ };
829
704
 
830
705
  export { vtkHardwareSelector as default, extend, newInstance };