@kitware/vtk.js 28.10.1 → 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.
- package/Common/Core/Base64.js +53 -82
- package/Common/Core/CellArray.js +52 -60
- package/Common/Core/ClassHierarchy.js +8 -36
- package/Common/Core/DataArray/Constants.js +6 -6
- package/Common/Core/DataArray.js +185 -270
- package/Common/Core/Endian.js +14 -17
- package/Common/Core/HalfFloat.js +17 -34
- package/Common/Core/ImageHelper.js +17 -25
- package/Common/Core/LookupTable.js +131 -144
- package/Common/Core/Math/Constants.js +8 -8
- package/Common/Core/Math/index.js +778 -903
- package/Common/Core/Math.d.ts +14 -0
- package/Common/Core/Math.js +2 -4
- package/Common/Core/MatrixBuilder.js +99 -151
- package/Common/Core/Points.js +43 -43
- package/Common/Core/PriorityQueue.js +30 -28
- package/Common/Core/ProgressHandler.js +31 -32
- package/Common/Core/ScalarsToColors/Constants.js +4 -4
- package/Common/Core/ScalarsToColors.js +196 -253
- package/Common/Core/StringArray.js +48 -73
- package/Common/Core/URLExtract.js +10 -29
- package/Common/Core/VariantArray.js +48 -73
- package/Common/Core.js +11 -11
- package/Common/DataModel/AbstractPointLocator.js +19 -17
- package/Common/DataModel/BoundingBox.js +322 -490
- package/Common/DataModel/Box.js +46 -63
- package/Common/DataModel/CardinalSpline1D.js +92 -102
- package/Common/DataModel/Cell.js +41 -61
- package/Common/DataModel/CellLinks.js +91 -127
- package/Common/DataModel/CellTypes/Constants.js +7 -6
- package/Common/DataModel/CellTypes.js +55 -74
- package/Common/DataModel/Collection.js +45 -61
- package/Common/DataModel/Cone.js +28 -20
- package/Common/DataModel/Cylinder.js +41 -35
- package/Common/DataModel/DataSet/Constants.js +11 -5
- package/Common/DataModel/DataSet.js +37 -25
- package/Common/DataModel/DataSetAttributes/Constants.js +18 -18
- package/Common/DataModel/DataSetAttributes/FieldData.js +103 -194
- package/Common/DataModel/DataSetAttributes.js +96 -138
- package/Common/DataModel/EdgeLocator.js +45 -70
- package/Common/DataModel/ITKHelper.js +67 -137
- package/Common/DataModel/ImageData.js +115 -172
- package/Common/DataModel/ImplicitBoolean/Constants.js +2 -2
- package/Common/DataModel/ImplicitBoolean.js +66 -96
- package/Common/DataModel/IncrementalOctreeNode.js +201 -231
- package/Common/DataModel/IncrementalOctreePointLocator.js +160 -198
- package/Common/DataModel/KochanekSpline1D.js +78 -81
- package/Common/DataModel/Line/Constants.js +2 -2
- package/Common/DataModel/Line.js +82 -105
- package/Common/DataModel/Locator.js +17 -10
- package/Common/DataModel/Molecule.js +26 -17
- package/Common/DataModel/PiecewiseFunction.js +218 -239
- package/Common/DataModel/Plane.js +90 -113
- package/Common/DataModel/PointSet.js +30 -26
- package/Common/DataModel/PolyData/Constants.js +2 -2
- package/Common/DataModel/PolyData.js +95 -120
- package/Common/DataModel/PolyLine.js +44 -61
- package/Common/DataModel/Polygon/Constants.js +4 -4
- package/Common/DataModel/Polygon.js +128 -169
- package/Common/DataModel/Quad/Constants.js +2 -2
- package/Common/DataModel/Quad.js +61 -100
- package/Common/DataModel/SelectionNode/Constants.js +5 -4
- package/Common/DataModel/SelectionNode.js +25 -21
- package/Common/DataModel/Sphere.js +40 -35
- package/Common/DataModel/Spline1D/Constants.js +3 -2
- package/Common/DataModel/Spline1D.js +34 -18
- package/Common/DataModel/Spline3D/Constants.js +2 -2
- package/Common/DataModel/Spline3D.js +46 -41
- package/Common/DataModel/StructuredData/Constants.js +2 -2
- package/Common/DataModel/StructuredData.js +9 -20
- package/Common/DataModel/Triangle.js +207 -250
- package/Common/DataModel.js +19 -19
- package/Common/System/MobileVR.js +56 -61
- package/Common/System/TimerLog.js +1 -1
- package/Common/System.js +2 -2
- package/Common/Transform/LandmarkTransform/Constants.js +2 -2
- package/Common/Transform/LandmarkTransform.js +133 -117
- package/Common/Transform/Transform.js +42 -57
- package/Common/Transform.js +2 -2
- package/Common/index.js +4 -4
- package/Filters/Core/Cutter.js +134 -146
- package/Filters/Core/PolyDataNormals.js +44 -50
- package/Filters/Core.js +2 -2
- package/Filters/Cornerstone/ImageDataToCornerstoneImage.js +45 -33
- package/Filters/Cornerstone.js +1 -1
- package/Filters/General/AppendPolyData.js +84 -100
- package/Filters/General/Calculator.js +95 -163
- package/Filters/General/ClipClosedSurface/Constants.js +2 -2
- package/Filters/General/ClipClosedSurface.js +341 -416
- package/Filters/General/ClosedPolyLineToSurfaceFilter.js +141 -156
- package/Filters/General/ContourTriangulator/Constants.js +2 -2
- package/Filters/General/ContourTriangulator/helper.js +684 -812
- package/Filters/General/ContourTriangulator.js +92 -89
- package/Filters/General/ImageCropFilter.js +77 -78
- package/Filters/General/ImageDataOutlineFilter.js +42 -36
- package/Filters/General/ImageMarchingCubes/caseTable.js +9 -521
- package/Filters/General/ImageMarchingCubes.js +99 -112
- package/Filters/General/ImageMarchingSquares/caseTable.js +9 -41
- package/Filters/General/ImageMarchingSquares.js +93 -118
- package/Filters/General/ImageOutlineFilter.js +53 -54
- package/Filters/General/ImageSliceFilter.js +39 -30
- package/Filters/General/ImageStreamline.js +107 -124
- package/Filters/General/LineFilter.js +26 -15
- package/Filters/General/MoleculeToRepresentation.js +136 -149
- package/Filters/General/OBBTree/OBBNode.js +36 -34
- package/Filters/General/OBBTree/helper.js +19 -24
- package/Filters/General/OBBTree.js +396 -488
- package/Filters/General/OutlineFilter.js +52 -34
- package/Filters/General/PaintFilter/PaintFilter.worker.js +93 -130
- package/Filters/General/PaintFilter.js +150 -162
- package/Filters/General/ScalarToRGBA.js +38 -33
- package/Filters/General/TriangleFilter.js +65 -62
- package/Filters/General/TubeFilter/Constants.js +4 -4
- package/Filters/General/TubeFilter.js +376 -496
- package/Filters/General/WarpScalar.js +58 -60
- package/Filters/General/WindowedSincPolyDataFilter.js +258 -330
- package/Filters/General.js +21 -21
- package/Filters/Sources/Arrow2DSource/Constants.js +2 -2
- package/Filters/Sources/Arrow2DSource.js +56 -56
- package/Filters/Sources/ArrowSource.js +39 -29
- package/Filters/Sources/CircleSource.js +43 -43
- package/Filters/Sources/ConcentricCylinderSource.js +151 -174
- package/Filters/Sources/ConeSource.js +51 -42
- package/Filters/Sources/CubeSource.js +75 -96
- package/Filters/Sources/Cursor3D.js +94 -109
- package/Filters/Sources/CylinderSource.js +90 -90
- package/Filters/Sources/ImageGridSource.js +43 -43
- package/Filters/Sources/LineSource.js +49 -39
- package/Filters/Sources/PlaneSource.js +97 -104
- package/Filters/Sources/PointSource.js +46 -37
- package/Filters/Sources/RTAnalyticSource.js +50 -48
- package/Filters/Sources/SLICSource.js +63 -73
- package/Filters/Sources/SphereSource.js +88 -78
- package/Filters/Sources/ViewFinderSource.js +26 -23
- package/Filters/Sources.js +14 -14
- package/Filters/Texture/TextureMapToPlane.js +95 -97
- package/Filters/Texture/TextureMapToSphere.js +46 -54
- package/Filters/Texture.js +2 -2
- package/Filters/index.js +5 -5
- package/IO/Core/BinaryHelper.js +12 -18
- package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +43 -59
- package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +76 -113
- package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +62 -112
- package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +76 -113
- package/IO/Core/DataAccessHelper.js +6 -6
- package/IO/Core/HttpDataSetReader.js +136 -139
- package/IO/Core/HttpDataSetSeriesReader.js +64 -75
- package/IO/Core/HttpSceneLoader.js +130 -179
- package/IO/Core/ImageStream/DefaultProtocol.js +29 -43
- package/IO/Core/ImageStream/ViewStream.js +100 -103
- package/IO/Core/ImageStream.js +62 -54
- package/IO/Core/ResourceLoader.js +10 -9
- package/IO/Core/Serializer/ArraySerializer.js +40 -40
- package/IO/Core/Serializer/FieldDataSerializer.js +18 -28
- package/IO/Core/Serializer/ImageDataSerializer.js +22 -23
- package/IO/Core/Serializer/PolyDataSerializer.js +17 -21
- package/IO/Core/Serializer.js +6 -13
- package/IO/Core/WSLinkClient.js +90 -76
- package/IO/Core/ZipMultiDataSetReader.js +46 -44
- package/IO/Core/ZipMultiDataSetWriter.js +43 -34
- package/IO/Core.js +7 -7
- package/IO/Geometry/DracoReader.js +118 -121
- package/IO/Geometry/PLYReader.js +163 -223
- package/IO/Geometry/PLYWriter/Constants.js +5 -5
- package/IO/Geometry/PLYWriter.js +139 -154
- package/IO/Geometry/STLReader.js +123 -146
- package/IO/Geometry/STLWriter/Constants.js +2 -2
- package/IO/Geometry/STLWriter.js +83 -82
- package/IO/Geometry.js +5 -5
- package/IO/Legacy/LegacyAsciiParser.js +78 -139
- package/IO/Legacy/PolyDataReader.js +48 -36
- package/IO/Legacy.js +2 -2
- package/IO/Misc/ElevationReader.js +67 -60
- package/IO/Misc/HttpDataSetLODsLoader.js +41 -38
- package/IO/Misc/ITKImageReader.js +58 -45
- package/IO/Misc/ITKPolyDataReader.js +50 -38
- package/IO/Misc/JSONNucleoReader.js +49 -42
- package/IO/Misc/JSONReader.js +38 -33
- package/IO/Misc/MTLReader.js +74 -119
- package/IO/Misc/OBJReader.js +153 -206
- package/IO/Misc/PDBReader.js +70 -68
- package/IO/Misc/SkyboxReader.js +77 -82
- package/IO/Misc.js +9 -9
- package/IO/XML/XMLImageDataReader.js +36 -38
- package/IO/XML/XMLImageDataWriter.js +28 -21
- package/IO/XML/XMLPolyDataReader.js +49 -46
- package/IO/XML/XMLPolyDataWriter.js +43 -42
- package/IO/XML/XMLReader.js +262 -304
- package/IO/XML/XMLWriter/Constants.js +3 -3
- package/IO/XML/XMLWriter.js +70 -84
- package/IO/XML.js +6 -6
- package/IO/index.js +5 -5
- package/Imaging/Core/AbstractImageInterpolator/Constants.js +4 -4
- package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +30 -27
- package/Imaging/Core/AbstractImageInterpolator.js +74 -87
- package/Imaging/Core/ImageInterpolator.js +201 -252
- package/Imaging/Core/ImagePointDataIterator.js +96 -122
- package/Imaging/Core/ImageReslice/Constants.js +2 -2
- package/Imaging/Core/ImageReslice.js +327 -464
- package/Imaging/Core.js +4 -4
- package/Imaging/Hybrid/SampleFunction.js +58 -51
- package/Imaging/Hybrid.js +1 -1
- package/Imaging/index.js +2 -2
- package/Interaction/Animations/TimeStepBasedAnimationHandler.js +39 -54
- package/Interaction/Manipulators/CompositeCameraManipulator.js +22 -13
- package/Interaction/Manipulators/CompositeGestureManipulator.js +31 -43
- package/Interaction/Manipulators/CompositeKeyboardManipulator.js +15 -11
- package/Interaction/Manipulators/CompositeMouseManipulator.js +27 -33
- package/Interaction/Manipulators/CompositeVRManipulator.js +22 -15
- package/Interaction/Manipulators/GestureCameraManipulator.js +54 -36
- package/Interaction/Manipulators/KeyboardCameraManipulator.js +95 -97
- package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +70 -89
- package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +67 -54
- package/Interaction/Manipulators/MouseCameraSliceManipulator.js +40 -38
- package/Interaction/Manipulators/MouseCameraTrackballFirstPersonManipulator.js +83 -68
- package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.js +32 -28
- package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +47 -40
- package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +55 -43
- package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +56 -46
- package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.js +41 -46
- package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.js +29 -27
- package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +123 -146
- package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +144 -166
- package/Interaction/Manipulators/MouseRangeManipulator.js +127 -132
- package/Interaction/Manipulators/VRButtonPanManipulator.js +33 -23
- package/Interaction/Manipulators.js +21 -21
- package/Interaction/Misc/DeviceOrientationToCamera.js +25 -47
- package/Interaction/Misc.js +1 -1
- package/Interaction/Style/InteractorStyleImage.js +101 -121
- package/Interaction/Style/InteractorStyleMPRSlice.js +111 -128
- package/Interaction/Style/InteractorStyleManipulator/Presets.js +9 -17
- package/Interaction/Style/InteractorStyleManipulator.js +254 -329
- package/Interaction/Style/InteractorStyleRemoteMouse.js +195 -180
- package/Interaction/Style/InteractorStyleTrackballCamera.js +154 -157
- package/Interaction/Style/InteractorStyleUnicam.js +30 -38
- package/Interaction/Style.js +5 -5
- package/Interaction/UI/CornerAnnotation/CornerAnnotation.module.css.js +1 -1
- package/Interaction/UI/CornerAnnotation.js +65 -48
- package/Interaction/UI/FPSMonitor.js +104 -105
- package/Interaction/UI/Icons.js +1 -1
- package/Interaction/UI/Slider/Constants.js +2 -2
- package/Interaction/UI/Slider.js +78 -95
- package/Interaction/UI/VolumeController.js +104 -97
- package/Interaction/UI.js +5 -5
- package/Interaction/Widgets/OrientationMarkerWidget/Constants.js +2 -2
- package/Interaction/Widgets/OrientationMarkerWidget.js +90 -135
- package/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
- package/Interaction/Widgets/PiecewiseGaussianWidget.js +381 -498
- package/Interaction/Widgets.js +2 -2
- package/Interaction/index.js +5 -5
- package/Proxy/Animation/AbstractAnimationProxy.js +22 -15
- package/Proxy/Animation/AnimationProxyManager.js +43 -51
- package/Proxy/Animation/TimeStepBasedAnimationHandlerProxy.js +26 -19
- package/Proxy/Core/AbstractRepresentationProxy.js +97 -151
- package/Proxy/Core/LookupTableProxy/Constants.js +4 -4
- package/Proxy/Core/LookupTableProxy.js +49 -52
- package/Proxy/Core/PiecewiseFunctionProxy/Constants.js +4 -4
- package/Proxy/Core/PiecewiseFunctionProxy.js +63 -72
- package/Proxy/Core/ProxyManager/core.js +83 -106
- package/Proxy/Core/ProxyManager/properties.js +53 -76
- package/Proxy/Core/ProxyManager/state.js +100 -110
- package/Proxy/Core/ProxyManager/view.js +45 -55
- package/Proxy/Core/ProxyManager.js +16 -8
- package/Proxy/Core/SourceProxy.js +41 -38
- package/Proxy/Core/View2DProxy.js +143 -199
- package/Proxy/Core/ViewProxy.js +223 -269
- package/Proxy/Core.js +7 -7
- package/Proxy/Representations/GeometryRepresentationProxy.js +34 -20
- package/Proxy/Representations/GlyphRepresentationProxy.js +42 -41
- package/Proxy/Representations/MoleculeRepresentationProxy.js +32 -22
- package/Proxy/Representations/ResliceRepresentationProxy.js +48 -32
- package/Proxy/Representations/SkyboxRepresentationProxy.js +30 -29
- package/Proxy/Representations/SliceRepresentationProxy.js +93 -112
- package/Proxy/Representations/SlicedGeometryRepresentationProxy.js +46 -42
- package/Proxy/Representations/VolumeRepresentationProxy.js +108 -133
- package/Proxy/Representations.js +7 -7
- package/Proxy/index.js +2 -2
- package/Rendering/Core/AbstractImageMapper/helper.js +44 -49
- package/Rendering/Core/AbstractImageMapper.js +18 -19
- package/Rendering/Core/AbstractMapper.js +39 -55
- package/Rendering/Core/AbstractMapper3D.js +26 -31
- package/Rendering/Core/AbstractPicker.js +25 -21
- package/Rendering/Core/Actor.js +71 -93
- package/Rendering/Core/Actor2D.js +64 -78
- package/Rendering/Core/AnnotatedCubeActor/Presets.js +5 -11
- package/Rendering/Core/AnnotatedCubeActor.js +94 -79
- package/Rendering/Core/AxesActor.js +65 -87
- package/Rendering/Core/Camera.js +246 -271
- package/Rendering/Core/CellPicker.js +125 -148
- package/Rendering/Core/ColorTransferFunction/ColorMaps.js +20 -21
- package/Rendering/Core/ColorTransferFunction/ColorMapsLite.js +20 -21
- package/Rendering/Core/ColorTransferFunction/Constants.js +4 -4
- package/Rendering/Core/ColorTransferFunction.js +460 -546
- package/Rendering/Core/Coordinate/Constants.js +2 -2
- package/Rendering/Core/Coordinate.js +119 -198
- package/Rendering/Core/CubeAxesActor.js +294 -320
- package/Rendering/Core/Follower.js +46 -45
- package/Rendering/Core/Glyph3DMapper/Constants.js +4 -4
- package/Rendering/Core/Glyph3DMapper.js +96 -148
- package/Rendering/Core/HardwareSelector.js +36 -69
- package/Rendering/Core/ImageArrayMapper.js +87 -126
- package/Rendering/Core/ImageCPRMapper.js +134 -209
- package/Rendering/Core/ImageMapper/Constants.js +2 -2
- package/Rendering/Core/ImageMapper.js +92 -170
- package/Rendering/Core/ImageProperty/Constants.js +2 -2
- package/Rendering/Core/ImageProperty.js +66 -81
- package/Rendering/Core/ImageResliceMapper/Constants.js +2 -2
- package/Rendering/Core/ImageResliceMapper.js +36 -29
- package/Rendering/Core/ImageSlice.js +85 -127
- package/Rendering/Core/InteractorObserver.js +82 -73
- package/Rendering/Core/InteractorStyle/Constants.js +2 -2
- package/Rendering/Core/InteractorStyle.js +56 -58
- package/Rendering/Core/Light.js +43 -49
- package/Rendering/Core/Mapper/CoincidentTopologyHelper.js +37 -48
- package/Rendering/Core/Mapper/Constants.js +6 -6
- package/Rendering/Core/Mapper/Static.js +15 -12
- package/Rendering/Core/Mapper.js +194 -259
- package/Rendering/Core/Mapper2D.js +61 -100
- package/Rendering/Core/Picker.js +124 -143
- package/Rendering/Core/PixelSpaceCallbackMapper.js +40 -37
- package/Rendering/Core/PointPicker.js +68 -79
- package/Rendering/Core/Prop/Constants.js +2 -2
- package/Rendering/Core/Prop.js +58 -106
- package/Rendering/Core/Prop3D.js +54 -83
- package/Rendering/Core/Property/Constants.js +6 -6
- package/Rendering/Core/Property.js +45 -74
- package/Rendering/Core/Property2D/Constants.js +2 -2
- package/Rendering/Core/Property2D.js +33 -42
- package/Rendering/Core/RenderWindow.js +70 -82
- package/Rendering/Core/RenderWindowInteractor/Constants.js +7 -7
- package/Rendering/Core/RenderWindowInteractor.js +324 -439
- package/Rendering/Core/Renderer.js +193 -257
- package/Rendering/Core/ScalarBarActor.js +267 -272
- package/Rendering/Core/Skybox.js +26 -24
- package/Rendering/Core/SphereMapper.js +22 -12
- package/Rendering/Core/StickMapper.js +22 -12
- package/Rendering/Core/SurfaceLICInterface/Constants.js +6 -6
- package/Rendering/Core/SurfaceLICInterface.js +13 -9
- package/Rendering/Core/SurfaceLICMapper.js +23 -15
- package/Rendering/Core/Texture.js +99 -141
- package/Rendering/Core/Viewport.js +60 -88
- package/Rendering/Core/Volume.js +55 -77
- package/Rendering/Core/VolumeMapper/Constants.js +4 -4
- package/Rendering/Core/VolumeMapper.js +59 -91
- package/Rendering/Core/VolumeProperty/Constants.js +4 -4
- package/Rendering/Core/VolumeProperty.js +78 -115
- package/Rendering/Core.js +47 -49
- package/Rendering/Misc/CanvasView.js +62 -61
- package/Rendering/Misc/FullScreenRenderWindow.js +60 -62
- package/Rendering/Misc/GenericRenderWindow.js +48 -37
- package/Rendering/Misc/RemoteView.js +86 -80
- package/Rendering/Misc/RenderWindowWithControlBar.js +54 -48
- package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +43 -51
- package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +52 -82
- package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +258 -308
- package/Rendering/Misc/SynchronizableRenderWindow.js +133 -163
- package/Rendering/Misc/TextureLODsDownloader.js +72 -74
- package/Rendering/Misc.js +7 -7
- package/Rendering/OpenGL/Actor.js +57 -68
- package/Rendering/OpenGL/Actor2D.js +56 -56
- package/Rendering/OpenGL/BufferObject/Constants.js +2 -2
- package/Rendering/OpenGL/BufferObject.js +50 -65
- package/Rendering/OpenGL/Camera.js +35 -29
- package/Rendering/OpenGL/CellArrayBufferObject.js +119 -149
- package/Rendering/OpenGL/Convolution2DPass.js +87 -81
- package/Rendering/OpenGL/CubeAxesActor.js +28 -21
- package/Rendering/OpenGL/ForwardPass.js +53 -64
- package/Rendering/OpenGL/Framebuffer.js +61 -101
- package/Rendering/OpenGL/Glyph3DMapper.js +165 -196
- package/Rendering/OpenGL/HardwareSelector/Constants.js +2 -2
- package/Rendering/OpenGL/HardwareSelector.js +272 -397
- package/Rendering/OpenGL/Helper.js +58 -73
- package/Rendering/OpenGL/ImageCPRMapper.js +339 -421
- package/Rendering/OpenGL/ImageMapper.js +268 -361
- package/Rendering/OpenGL/ImageResliceMapper.js +306 -438
- package/Rendering/OpenGL/ImageSlice.js +48 -54
- package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +102 -84
- package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +43 -42
- package/Rendering/OpenGL/PolyDataMapper.js +358 -492
- package/Rendering/OpenGL/PolyDataMapper2D.js +153 -205
- package/Rendering/OpenGL/RadialDistortionPass.js +86 -89
- package/Rendering/OpenGL/RenderWindow/Constants.js +2 -2
- package/Rendering/OpenGL/RenderWindow/ContextProxy.js +20 -29
- package/Rendering/OpenGL/RenderWindow.js +356 -510
- package/Rendering/OpenGL/Renderer.js +77 -89
- package/Rendering/OpenGL/ReplacementShaderMapper.js +28 -46
- package/Rendering/OpenGL/ScalarBarActor.js +28 -21
- package/Rendering/OpenGL/Shader.js +37 -31
- package/Rendering/OpenGL/ShaderCache.js +67 -74
- package/Rendering/OpenGL/ShaderProgram.js +136 -248
- package/Rendering/OpenGL/Skybox.js +99 -60
- package/Rendering/OpenGL/SphereMapper.js +94 -108
- package/Rendering/OpenGL/StickMapper.js +110 -114
- package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +91 -157
- package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +142 -151
- package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +142 -216
- package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +79 -100
- package/Rendering/OpenGL/SurfaceLIC.js +2 -2
- package/Rendering/OpenGL/Texture/Constants.js +4 -4
- package/Rendering/OpenGL/Texture.js +444 -609
- package/Rendering/OpenGL/TextureUnitManager.js +47 -43
- package/Rendering/OpenGL/VertexArrayObject.js +92 -131
- package/Rendering/OpenGL/ViewNodeFactory.js +25 -13
- package/Rendering/OpenGL/Volume.js +38 -34
- package/Rendering/OpenGL/VolumeMapper.js +437 -547
- package/Rendering/OpenGL.js +28 -28
- package/Rendering/SceneGraph/RenderPass.js +34 -31
- package/Rendering/SceneGraph/RenderWindowViewNode.js +68 -94
- package/Rendering/SceneGraph/ViewNode.js +82 -111
- package/Rendering/SceneGraph/ViewNodeFactory.js +31 -26
- package/Rendering/SceneGraph.js +4 -4
- package/Rendering/WebGPU/Actor.js +49 -49
- package/Rendering/WebGPU/Actor2D.js +45 -44
- package/Rendering/WebGPU/BindGroup.js +43 -50
- package/Rendering/WebGPU/Buffer.js +41 -50
- package/Rendering/WebGPU/BufferManager/Constants.js +4 -4
- package/Rendering/WebGPU/BufferManager.js +111 -141
- package/Rendering/WebGPU/Camera.js +65 -67
- package/Rendering/WebGPU/CellArrayMapper.js +621 -388
- package/Rendering/WebGPU/CubeAxesActor.js +28 -19
- package/Rendering/WebGPU/Device.js +78 -133
- package/Rendering/WebGPU/ForwardPass.js +75 -72
- package/Rendering/WebGPU/FullScreenQuad.js +25 -18
- package/Rendering/WebGPU/Glyph3DMapper.js +62 -74
- package/Rendering/WebGPU/HardwareSelectionPass.js +45 -38
- package/Rendering/WebGPU/HardwareSelector.js +200 -276
- package/Rendering/WebGPU/ImageMapper.js +180 -171
- package/Rendering/WebGPU/ImageSlice.js +45 -44
- package/Rendering/WebGPU/IndexBuffer.js +166 -200
- package/Rendering/WebGPU/OpaquePass.js +37 -36
- package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +72 -45
- package/Rendering/WebGPU/Pipeline.js +37 -51
- package/Rendering/WebGPU/PixelSpaceCallbackMapper.js +27 -19
- package/Rendering/WebGPU/PolyDataMapper.js +50 -53
- package/Rendering/WebGPU/PolyDataMapper2D.js +39 -39
- package/Rendering/WebGPU/RenderEncoder.js +68 -88
- package/Rendering/WebGPU/RenderWindow.js +262 -376
- package/Rendering/WebGPU/Renderer.js +224 -208
- package/Rendering/WebGPU/Sampler.js +27 -21
- package/Rendering/WebGPU/ScalarBarActor.js +28 -19
- package/Rendering/WebGPU/ShaderCache.js +43 -41
- package/Rendering/WebGPU/ShaderDescription.js +52 -59
- package/Rendering/WebGPU/ShaderModule.js +26 -17
- package/Rendering/WebGPU/SimpleMapper.js +185 -121
- package/Rendering/WebGPU/SphereMapper.js +200 -130
- package/Rendering/WebGPU/StickMapper.js +289 -152
- package/Rendering/WebGPU/StorageBuffer.js +100 -115
- package/Rendering/WebGPU/Texture.js +79 -99
- package/Rendering/WebGPU/TextureManager.js +52 -54
- package/Rendering/WebGPU/TextureView.js +40 -43
- package/Rendering/WebGPU/Types.js +53 -70
- package/Rendering/WebGPU/UniformBuffer.js +158 -184
- package/Rendering/WebGPU/VertexInput.js +64 -90
- package/Rendering/WebGPU/ViewNodeFactory.js +25 -13
- package/Rendering/WebGPU/Volume.js +52 -51
- package/Rendering/WebGPU/VolumePass.js +218 -239
- package/Rendering/WebGPU/VolumePassFSQ.js +625 -306
- package/Rendering/WebGPU.js +1 -1
- package/Rendering/index.js +5 -5
- package/Widgets/Core/AbstractWidget/Constants.js +2 -2
- package/Widgets/Core/AbstractWidget.js +49 -58
- package/Widgets/Core/AbstractWidgetFactory.js +101 -122
- package/Widgets/Core/StateBuilder/boundsMixin.js +23 -28
- package/Widgets/Core/StateBuilder/color3Mixin.js +10 -7
- package/Widgets/Core/StateBuilder/colorMixin.js +10 -6
- package/Widgets/Core/StateBuilder/cornerMixin.js +16 -15
- package/Widgets/Core/StateBuilder/directionMixin.js +20 -18
- package/Widgets/Core/StateBuilder/manipulatorMixin.js +26 -18
- package/Widgets/Core/StateBuilder/nameMixin.js +10 -6
- package/Widgets/Core/StateBuilder/orientationMixin.js +19 -16
- package/Widgets/Core/StateBuilder/originMixin.js +25 -32
- package/Widgets/Core/StateBuilder/scale1Mixin.js +10 -6
- package/Widgets/Core/StateBuilder/scale3Mixin.js +10 -6
- package/Widgets/Core/StateBuilder/shapeMixin.js +12 -6
- package/Widgets/Core/StateBuilder/textMixin.js +10 -6
- package/Widgets/Core/StateBuilder/visibleMixin.js +10 -6
- package/Widgets/Core/StateBuilder.js +120 -149
- package/Widgets/Core/WidgetManager/Constants.js +7 -7
- package/Widgets/Core/WidgetManager.js +249 -421
- package/Widgets/Core/WidgetState.js +48 -57
- package/Widgets/Core.js +5 -5
- package/Widgets/Manipulators/AbstractManipulator.js +20 -14
- package/Widgets/Manipulators/CPRManipulator.js +55 -71
- package/Widgets/Manipulators/LineManipulator.js +31 -28
- package/Widgets/Manipulators/PickerManipulator.d.ts +48 -0
- package/Widgets/Manipulators/PickerManipulator.js +65 -0
- package/Widgets/Manipulators/PlaneManipulator.js +26 -23
- package/Widgets/Manipulators/TrackballManipulator.js +39 -35
- package/Widgets/Manipulators.js +4 -2
- package/Widgets/Representations/ArrowHandleRepresentation.js +148 -162
- package/Widgets/Representations/CircleContextRepresentation.js +44 -38
- package/Widgets/Representations/ContextRepresentation.js +17 -14
- package/Widgets/Representations/ConvexFaceContextRepresentation.js +50 -47
- package/Widgets/Representations/CroppingOutlineRepresentation.js +38 -27
- package/Widgets/Representations/CubeHandleRepresentation.js +21 -18
- package/Widgets/Representations/GlyphRepresentation.js +107 -152
- package/Widgets/Representations/HandleRepresentation.js +17 -14
- package/Widgets/Representations/ImplicitPlaneRepresentation.js +97 -91
- package/Widgets/Representations/LineHandleRepresentation.js +44 -41
- package/Widgets/Representations/OutlineContextRepresentation.js +42 -36
- package/Widgets/Representations/PolyLineRepresentation.js +60 -75
- package/Widgets/Representations/RectangleContextRepresentation.js +42 -37
- package/Widgets/Representations/SphereContextRepresentation.js +19 -27
- package/Widgets/Representations/SphereHandleRepresentation.js +31 -27
- package/Widgets/Representations/SplineContextRepresentation.js +46 -70
- package/Widgets/Representations/WidgetRepresentation/Constants.js +2 -2
- package/Widgets/Representations/WidgetRepresentation.js +99 -134
- package/Widgets/Representations.js +13 -13
- package/Widgets/Widgets3D/AngleWidget/behavior.js +41 -63
- package/Widgets/Widgets3D/AngleWidget.js +41 -39
- package/Widgets/Widgets3D/DistanceWidget/behavior.js +40 -61
- package/Widgets/Widgets3D/DistanceWidget.js +38 -36
- package/Widgets/Widgets3D/EllipseWidget/behavior.js +14 -19
- package/Widgets/Widgets3D/EllipseWidget/state.js +4 -2
- package/Widgets/Widgets3D/EllipseWidget.js +37 -26
- package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +26 -56
- package/Widgets/Widgets3D/ImageCroppingWidget/helpers.js +14 -17
- package/Widgets/Widgets3D/ImageCroppingWidget/state.js +20 -16
- package/Widgets/Widgets3D/ImageCroppingWidget.js +80 -98
- package/Widgets/Widgets3D/ImplicitPlaneWidget.js +55 -77
- package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +17 -18
- package/Widgets/Widgets3D/InteractiveOrientationWidget/state.js +15 -7
- package/Widgets/Widgets3D/InteractiveOrientationWidget.js +30 -29
- package/Widgets/Widgets3D/LabelWidget/behavior.js +37 -62
- package/Widgets/Widgets3D/LabelWidget.js +31 -25
- package/Widgets/Widgets3D/LineWidget/Constants.js +8 -8
- package/Widgets/Widgets3D/LineWidget/behavior.js +77 -114
- package/Widgets/Widgets3D/LineWidget/helpers.js +13 -20
- package/Widgets/Widgets3D/LineWidget/state.js +2 -1
- package/Widgets/Widgets3D/LineWidget.js +39 -35
- package/Widgets/Widgets3D/PaintWidget/behavior.js +24 -59
- package/Widgets/Widgets3D/PaintWidget.js +39 -37
- package/Widgets/Widgets3D/PolyLineWidget/behavior.js +44 -68
- package/Widgets/Widgets3D/PolyLineWidget.js +36 -31
- package/Widgets/Widgets3D/RectangleWidget/behavior.js +6 -11
- package/Widgets/Widgets3D/RectangleWidget/state.js +4 -2
- package/Widgets/Widgets3D/RectangleWidget.js +37 -25
- package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +35 -21
- package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +134 -210
- package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
- package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +90 -117
- package/Widgets/Widgets3D/ResliceCursorWidget/state.js +33 -40
- package/Widgets/Widgets3D/ResliceCursorWidget.js +186 -227
- package/Widgets/Widgets3D/SeedWidget/behavior.js +82 -0
- package/Widgets/Widgets3D/SeedWidget/state.js +18 -0
- package/Widgets/Widgets3D/SeedWidget.d.ts +44 -0
- package/Widgets/Widgets3D/SeedWidget.js +43 -0
- package/Widgets/Widgets3D/ShapeWidget/Constants.js +19 -19
- package/Widgets/Widgets3D/ShapeWidget/behavior.js +150 -252
- package/Widgets/Widgets3D/ShapeWidget.js +24 -27
- package/Widgets/Widgets3D/SphereWidget/behavior.js +35 -69
- package/Widgets/Widgets3D/SphereWidget/state.js +9 -5
- package/Widgets/Widgets3D/SphereWidget.js +34 -44
- package/Widgets/Widgets3D/SplineWidget/behavior.js +85 -120
- package/Widgets/Widgets3D/SplineWidget.js +43 -39
- package/Widgets/Widgets3D.js +15 -15
- package/Widgets/index.js +4 -4
- package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +95 -207
- package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +0 -3
- package/favicon.js +5 -6
- package/index.d.ts +4 -2
- package/index.js +4 -3
- package/macros.js +4 -1931
- package/macros2.js +1684 -0
- package/package.json +6 -6
- package/vtk.js +18 -31
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
4
|
-
import { capitalize } from '../../../macros.js';
|
|
1
|
+
import { q as capitalize } from '../../../macros2.js';
|
|
5
2
|
import vtkActor from '../../Core/Actor.js';
|
|
6
3
|
import vtkCamera from '../../Core/Camera.js';
|
|
7
4
|
import vtkColorTransferFunction from '../../Core/ColorTransferFunction.js';
|
|
@@ -30,367 +27,335 @@ import vtkScalarBarActor from '../../Core/ScalarBarActor.js';
|
|
|
30
27
|
import vtkAxesActor from '../../Core/AxesActor.js';
|
|
31
28
|
import BehaviorManager from './BehaviorManager.js';
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
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; }
|
|
30
|
+
// ----------------------------------------------------------------------------
|
|
36
31
|
// Some internal, module-level variables and methods
|
|
37
32
|
// ----------------------------------------------------------------------------
|
|
38
33
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
const TYPE_HANDLERS = {};
|
|
35
|
+
const WRAPPED_ID_RE = /instance:\${([^}]+)}/;
|
|
36
|
+
const WRAP_ID = id => `instance:$\{${id}}`;
|
|
37
|
+
const ONE_TIME_INSTANCE_TRACKERS = {};
|
|
38
|
+
const SKIPPED_INSTANCE_IDS = [];
|
|
39
|
+
const EXCLUDE_INSTANCE_MAP = {};
|
|
40
|
+
const DATA_ARRAY_MAPPER = {
|
|
41
|
+
vtkPoints,
|
|
42
|
+
vtkCellArray,
|
|
43
|
+
vtkDataArray
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
var SKIPPED_INSTANCE_IDS = [];
|
|
48
|
-
var EXCLUDE_INSTANCE_MAP = {};
|
|
49
|
-
var DATA_ARRAY_MAPPER = {
|
|
50
|
-
vtkPoints: vtkPoints,
|
|
51
|
-
vtkCellArray: vtkCellArray,
|
|
52
|
-
vtkDataArray: vtkDataArray
|
|
53
|
-
}; // ----------------------------------------------------------------------------
|
|
46
|
+
// ----------------------------------------------------------------------------
|
|
54
47
|
|
|
55
48
|
function extractCallArgs(synchronizerContext, argList) {
|
|
56
|
-
return argList.map(
|
|
57
|
-
|
|
58
|
-
|
|
49
|
+
return argList.map(arg => {
|
|
50
|
+
const m = WRAPPED_ID_RE.exec(arg);
|
|
59
51
|
if (m) {
|
|
60
52
|
return synchronizerContext.getInstance(m[1]);
|
|
61
53
|
}
|
|
62
|
-
|
|
63
54
|
return arg;
|
|
64
55
|
});
|
|
65
|
-
}
|
|
56
|
+
}
|
|
66
57
|
|
|
58
|
+
// ----------------------------------------------------------------------------
|
|
67
59
|
|
|
68
60
|
function extractInstanceIds(argList) {
|
|
69
|
-
return argList.map(
|
|
70
|
-
|
|
71
|
-
}).filter(function (m) {
|
|
72
|
-
return m;
|
|
73
|
-
}).map(function (m) {
|
|
74
|
-
return m[1];
|
|
75
|
-
});
|
|
76
|
-
} // ----------------------------------------------------------------------------
|
|
61
|
+
return argList.map(arg => WRAPPED_ID_RE.exec(arg)).filter(m => m).map(m => m[1]);
|
|
62
|
+
}
|
|
77
63
|
|
|
64
|
+
// ----------------------------------------------------------------------------
|
|
78
65
|
|
|
79
66
|
function extractDependencyIds(state) {
|
|
80
|
-
|
|
81
|
-
|
|
67
|
+
let depList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
82
68
|
if (state.dependencies) {
|
|
83
|
-
state.dependencies.forEach(
|
|
69
|
+
state.dependencies.forEach(childState => {
|
|
84
70
|
depList.push(childState.id);
|
|
85
71
|
extractDependencyIds(childState, depList);
|
|
86
72
|
});
|
|
87
73
|
}
|
|
88
|
-
|
|
89
74
|
return depList;
|
|
90
|
-
}
|
|
75
|
+
}
|
|
91
76
|
|
|
77
|
+
// ----------------------------------------------------------------------------
|
|
92
78
|
|
|
93
79
|
function bindArrays(arraysToBind) {
|
|
94
80
|
while (arraysToBind.length) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
fn = _arraysToBind$shift2[0],
|
|
98
|
-
args = _arraysToBind$shift2[1];
|
|
99
|
-
|
|
100
|
-
fn.apply(void 0, _toConsumableArray(args));
|
|
81
|
+
const [fn, args] = arraysToBind.shift();
|
|
82
|
+
fn(...args);
|
|
101
83
|
}
|
|
102
|
-
}
|
|
84
|
+
}
|
|
103
85
|
|
|
86
|
+
// ----------------------------------------------------------------------------
|
|
104
87
|
|
|
105
88
|
function createNewArrayHandler(instance, arrayMetadata, arraysToBind) {
|
|
106
|
-
return
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
var previousArray = null;
|
|
89
|
+
return values => {
|
|
90
|
+
const regMethod = arrayMetadata.registration ? arrayMetadata.registration : 'addArray';
|
|
91
|
+
const location = arrayMetadata.location ? instance.getReferenceByName(arrayMetadata.location) : instance;
|
|
111
92
|
|
|
93
|
+
// Try to prevent unncessary modified
|
|
94
|
+
let previousArray = null;
|
|
112
95
|
if (arrayMetadata.location) {
|
|
113
96
|
previousArray = instance.getReferenceByName(arrayMetadata.location).getArray(arrayMetadata.name);
|
|
114
97
|
} else {
|
|
115
|
-
previousArray = instance[
|
|
98
|
+
previousArray = instance[`get${regMethod.substring(3)}`]();
|
|
116
99
|
}
|
|
117
|
-
|
|
118
100
|
if (previousArray) {
|
|
119
101
|
if (previousArray.getData() !== values) {
|
|
120
102
|
arraysToBind.push([previousArray.setData, [values, arrayMetadata.numberOfComponents]]);
|
|
121
103
|
}
|
|
122
|
-
|
|
123
104
|
return previousArray;
|
|
124
105
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
values
|
|
129
|
-
})
|
|
106
|
+
const vtkClass = arrayMetadata.vtkClass ? arrayMetadata.vtkClass : 'vtkDataArray';
|
|
107
|
+
const array = DATA_ARRAY_MAPPER[vtkClass].newInstance({
|
|
108
|
+
...arrayMetadata,
|
|
109
|
+
values
|
|
110
|
+
});
|
|
130
111
|
arraysToBind.push([location[regMethod], [array]]);
|
|
131
112
|
return array;
|
|
132
113
|
};
|
|
133
|
-
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// ----------------------------------------------------------------------------
|
|
134
117
|
// Static methods for export
|
|
135
118
|
// ----------------------------------------------------------------------------
|
|
136
119
|
|
|
137
|
-
|
|
138
120
|
function update(type, instance, props, context) {
|
|
139
121
|
if (!instance) {
|
|
140
|
-
return Promise.reject(new Error(
|
|
122
|
+
return Promise.reject(new Error(`No instance provided.`));
|
|
141
123
|
}
|
|
142
|
-
|
|
143
|
-
var handler = TYPE_HANDLERS[type];
|
|
144
|
-
|
|
124
|
+
const handler = TYPE_HANDLERS[type];
|
|
145
125
|
if (handler && handler.update) {
|
|
146
126
|
return handler.update(instance, props, context);
|
|
147
127
|
}
|
|
128
|
+
return Promise.reject(new Error(`No updater for ${type}`));
|
|
129
|
+
}
|
|
148
130
|
|
|
149
|
-
|
|
150
|
-
} // ----------------------------------------------------------------------------
|
|
151
|
-
|
|
131
|
+
// ----------------------------------------------------------------------------
|
|
152
132
|
|
|
153
133
|
function build(type) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
134
|
+
let initialProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
135
|
+
const handler = TYPE_HANDLERS[type];
|
|
157
136
|
if (handler && handler.build) {
|
|
158
137
|
// DEBUG console.log(`new ${type} - ${initialProps.managedInstanceId}`);
|
|
159
138
|
return handler.build(initialProps);
|
|
160
139
|
}
|
|
161
|
-
|
|
162
140
|
console.log('No builder for', type);
|
|
163
141
|
return null;
|
|
164
|
-
}
|
|
142
|
+
}
|
|
165
143
|
|
|
144
|
+
// ----------------------------------------------------------------------------
|
|
166
145
|
|
|
167
146
|
function excludeInstance(type, propertyName, propertyValue) {
|
|
168
147
|
EXCLUDE_INSTANCE_MAP[type] = {
|
|
169
148
|
key: propertyName,
|
|
170
149
|
value: propertyValue
|
|
171
150
|
};
|
|
172
|
-
}
|
|
151
|
+
}
|
|
173
152
|
|
|
153
|
+
// ----------------------------------------------------------------------------
|
|
174
154
|
|
|
175
155
|
function getSupportedTypes() {
|
|
176
156
|
return Object.keys(TYPE_HANDLERS);
|
|
177
|
-
}
|
|
157
|
+
}
|
|
178
158
|
|
|
159
|
+
// ----------------------------------------------------------------------------
|
|
179
160
|
|
|
180
161
|
function clearTypeMapping() {
|
|
181
|
-
Object.keys(TYPE_HANDLERS).forEach(
|
|
162
|
+
Object.keys(TYPE_HANDLERS).forEach(key => {
|
|
182
163
|
delete TYPE_HANDLERS[key];
|
|
183
164
|
});
|
|
184
|
-
}
|
|
165
|
+
}
|
|
185
166
|
|
|
167
|
+
// ----------------------------------------------------------------------------
|
|
186
168
|
|
|
187
169
|
function updateRenderWindow(instance, props, context) {
|
|
188
170
|
return update('vtkRenderWindow', instance, props, context);
|
|
189
|
-
}
|
|
171
|
+
}
|
|
190
172
|
|
|
173
|
+
// ----------------------------------------------------------------------------
|
|
191
174
|
|
|
192
175
|
function clearAllOneTimeUpdaters() {
|
|
193
|
-
Object.keys(ONE_TIME_INSTANCE_TRACKERS).forEach(
|
|
176
|
+
Object.keys(ONE_TIME_INSTANCE_TRACKERS).forEach(key => {
|
|
194
177
|
delete ONE_TIME_INSTANCE_TRACKERS[key];
|
|
195
178
|
});
|
|
196
|
-
}
|
|
179
|
+
}
|
|
197
180
|
|
|
181
|
+
// ----------------------------------------------------------------------------
|
|
198
182
|
|
|
199
183
|
function clearOneTimeUpdaters() {
|
|
200
184
|
for (var _len = arguments.length, ids = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
201
185
|
ids[_key] = arguments[_key];
|
|
202
186
|
}
|
|
203
|
-
|
|
204
187
|
if (ids.length === 0) {
|
|
205
188
|
return clearAllOneTimeUpdaters();
|
|
206
189
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
190
|
+
let array = ids;
|
|
191
|
+
// allow an array passed as a single arg.
|
|
210
192
|
if (array.length === 1 && Array.isArray(array[0])) {
|
|
211
193
|
array = array[0];
|
|
212
194
|
}
|
|
213
|
-
|
|
214
|
-
array.forEach(function (instanceId) {
|
|
195
|
+
array.forEach(instanceId => {
|
|
215
196
|
delete ONE_TIME_INSTANCE_TRACKERS[instanceId];
|
|
216
197
|
});
|
|
217
198
|
return array;
|
|
218
|
-
}
|
|
199
|
+
}
|
|
219
200
|
|
|
201
|
+
// ----------------------------------------------------------------------------
|
|
220
202
|
|
|
221
203
|
function notSkippedInstance(call) {
|
|
222
204
|
if (call[1].length === 1) {
|
|
223
205
|
return SKIPPED_INSTANCE_IDS.indexOf(call[1][0]) === -1;
|
|
224
206
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
for (var i = 0; i < call[1].length; i++) {
|
|
207
|
+
let keep = false;
|
|
208
|
+
for (let i = 0; i < call[1].length; i++) {
|
|
229
209
|
keep = keep || SKIPPED_INSTANCE_IDS.indexOf(call[1][i]) === -1;
|
|
230
210
|
}
|
|
231
|
-
|
|
232
211
|
return keep;
|
|
233
|
-
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// ----------------------------------------------------------------------------
|
|
234
215
|
// Updater functions
|
|
235
216
|
// ----------------------------------------------------------------------------
|
|
236
217
|
|
|
237
|
-
|
|
238
218
|
function genericUpdater(instance, state, context) {
|
|
239
219
|
context.start(); // -> start(generic-updater)
|
|
240
|
-
// First update our own properties
|
|
241
220
|
|
|
242
|
-
|
|
221
|
+
// First update our own properties
|
|
222
|
+
instance.set(state.properties);
|
|
243
223
|
|
|
224
|
+
// Now handle dependencies
|
|
244
225
|
if (state.dependencies) {
|
|
245
|
-
state.dependencies.forEach(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
226
|
+
state.dependencies.forEach(childState => {
|
|
227
|
+
const {
|
|
228
|
+
id,
|
|
229
|
+
type
|
|
230
|
+
} = childState;
|
|
249
231
|
if (EXCLUDE_INSTANCE_MAP[type]) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
232
|
+
const {
|
|
233
|
+
key,
|
|
234
|
+
value
|
|
235
|
+
} = EXCLUDE_INSTANCE_MAP[type];
|
|
254
236
|
if (!key || childState.properties[key] === value) {
|
|
255
237
|
SKIPPED_INSTANCE_IDS.push(WRAP_ID(id));
|
|
256
238
|
return;
|
|
257
239
|
}
|
|
258
240
|
}
|
|
259
|
-
|
|
260
|
-
var childInstance = context.getInstance(id);
|
|
261
|
-
|
|
241
|
+
let childInstance = context.getInstance(id);
|
|
262
242
|
if (!childInstance) {
|
|
263
243
|
childInstance = build(type, {
|
|
264
244
|
managedInstanceId: id
|
|
265
245
|
});
|
|
266
246
|
context.registerInstance(id, childInstance);
|
|
267
247
|
}
|
|
268
|
-
|
|
269
248
|
update(type, childInstance, childState, context);
|
|
270
249
|
});
|
|
271
250
|
}
|
|
272
|
-
|
|
273
251
|
if (state.calls) {
|
|
274
|
-
state.calls.filter(notSkippedInstance).forEach(
|
|
252
|
+
state.calls.filter(notSkippedInstance).forEach(call => {
|
|
275
253
|
// DEBUG console.log('==>', call[0], extractCallArgs(context, call[1]));
|
|
276
254
|
instance[call[0]].apply(null, extractCallArgs(context, call[1]));
|
|
277
255
|
});
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
var dependencies = [];
|
|
256
|
+
}
|
|
282
257
|
|
|
258
|
+
// if some arrays need to be be fetch
|
|
259
|
+
const dependencies = [];
|
|
283
260
|
if (state.arrays) {
|
|
284
|
-
|
|
285
|
-
|
|
261
|
+
const arraysToBind = [];
|
|
262
|
+
const promises = Object.values(state.arrays).map(arrayMetadata => {
|
|
286
263
|
context.start(); // -> start(arrays)
|
|
287
|
-
|
|
288
|
-
return context.getArray(arrayMetadata.hash, arrayMetadata.dataType, context).then(createNewArrayHandler(instance, arrayMetadata, arraysToBind)).catch(function (error) {
|
|
264
|
+
return context.getArray(arrayMetadata.hash, arrayMetadata.dataType, context).then(createNewArrayHandler(instance, arrayMetadata, arraysToBind)).catch(error => {
|
|
289
265
|
console.log('Error fetching array', JSON.stringify(arrayMetadata), error);
|
|
290
266
|
}).finally(context.end); // -> end(arrays)
|
|
291
267
|
});
|
|
292
|
-
context.start(); // -> start(arraysToBind)
|
|
293
268
|
|
|
294
|
-
|
|
269
|
+
context.start(); // -> start(arraysToBind)
|
|
270
|
+
dependencies.push(Promise.all(promises).then(() => {
|
|
295
271
|
// Since some arrays are getting updated, we should modify our dataset
|
|
296
272
|
if (arraysToBind.length) {
|
|
297
273
|
instance.modified();
|
|
298
274
|
}
|
|
299
|
-
|
|
300
275
|
bindArrays(arraysToBind);
|
|
301
276
|
return true;
|
|
302
|
-
}).catch(
|
|
277
|
+
}).catch(error => {
|
|
303
278
|
console.error('Error in array handling for state', JSON.stringify(state), error);
|
|
304
279
|
}).finally(context.end) // -> end(arraysToBind)
|
|
305
280
|
);
|
|
306
281
|
}
|
|
307
282
|
|
|
308
283
|
context.end(); // -> end(generic-updater)
|
|
309
|
-
|
|
310
284
|
return Promise.all(dependencies);
|
|
311
|
-
}
|
|
285
|
+
}
|
|
312
286
|
|
|
287
|
+
// ----------------------------------------------------------------------------
|
|
313
288
|
|
|
314
289
|
function oneTimeGenericUpdater(instance, state, context) {
|
|
315
290
|
if (!ONE_TIME_INSTANCE_TRACKERS[state.id]) {
|
|
316
291
|
genericUpdater(instance, state, context);
|
|
317
292
|
}
|
|
318
|
-
|
|
319
293
|
ONE_TIME_INSTANCE_TRACKERS[state.id] = true;
|
|
320
|
-
}
|
|
294
|
+
}
|
|
321
295
|
|
|
296
|
+
// ----------------------------------------------------------------------------
|
|
322
297
|
|
|
323
298
|
function rendererUpdater(instance, state, context) {
|
|
324
299
|
// Don't do start/end on the context here because we don't need to hold up
|
|
325
300
|
// rendering for the book-keeping we do after the genericUpdater finishes.
|
|
301
|
+
|
|
326
302
|
// First allow generic update process to happen as usual
|
|
327
|
-
genericUpdater(instance, state, context);
|
|
303
|
+
genericUpdater(instance, state, context);
|
|
304
|
+
|
|
305
|
+
// Any view props that were removed in the previous phase, genericUpdater(...),
|
|
328
306
|
// may have left orphaned children in our instance cache. Below is where those
|
|
329
307
|
// refs can be tracked in the first place, and then later removed as necessary
|
|
330
308
|
// to allow garbage collection.
|
|
309
|
+
|
|
331
310
|
// In some cases, seemingly with 'vtkColorTransferFunction', the server side
|
|
332
311
|
// object id may be conserved even though the actor and mapper containing or
|
|
333
312
|
// using it were deleted. In this case we must not unregister an instance
|
|
334
313
|
// which is depended upon by an incoming actor just because it was also
|
|
335
314
|
// depended upon by an outgoing one.
|
|
315
|
+
const allActorsDeps = new Set();
|
|
336
316
|
|
|
337
|
-
|
|
317
|
+
// Here we gather the list of dependencies (instance ids) for each view prop and
|
|
338
318
|
// store them on the instance, in case that view prop is later removed.
|
|
339
|
-
|
|
340
319
|
if (state.dependencies) {
|
|
341
|
-
state.dependencies.forEach(
|
|
342
|
-
|
|
343
|
-
|
|
320
|
+
state.dependencies.forEach(childState => {
|
|
321
|
+
const viewPropInstance = context.getInstance(childState.id);
|
|
344
322
|
if (viewPropInstance) {
|
|
345
|
-
|
|
323
|
+
const flattenedDepIds = extractDependencyIds(childState);
|
|
346
324
|
viewPropInstance.set({
|
|
347
|
-
flattenedDepIds
|
|
325
|
+
flattenedDepIds
|
|
348
326
|
}, true);
|
|
349
|
-
flattenedDepIds.forEach(
|
|
350
|
-
return allActorsDeps.add(depId);
|
|
351
|
-
});
|
|
327
|
+
flattenedDepIds.forEach(depId => allActorsDeps.add(depId));
|
|
352
328
|
}
|
|
353
329
|
});
|
|
354
|
-
}
|
|
355
|
-
// those view props.
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
var unregisterCandidates = new Set();
|
|
330
|
+
}
|
|
359
331
|
|
|
332
|
+
// Look for 'removeViewProp' calls and clean up references to dependencies of
|
|
333
|
+
// those view props.
|
|
334
|
+
const unregisterCandidates = new Set();
|
|
360
335
|
if (state.calls) {
|
|
361
|
-
state.calls.filter(notSkippedInstance).filter(
|
|
362
|
-
return call[0] === 'removeViewProp';
|
|
363
|
-
}).forEach(function (call) {
|
|
336
|
+
state.calls.filter(notSkippedInstance).filter(call => call[0] === 'removeViewProp').forEach(call => {
|
|
364
337
|
// extract any ids associated with a 'removeViewProp' call (though really there
|
|
365
338
|
// should just be a single one), and use them to build a flat list of all
|
|
366
339
|
// representation dependency ids which we can then use our synchronizer context
|
|
367
340
|
// to unregister
|
|
368
|
-
extractInstanceIds(call[1]).forEach(
|
|
369
|
-
|
|
370
|
-
|
|
341
|
+
extractInstanceIds(call[1]).forEach(vpId => {
|
|
342
|
+
const deps = context.getInstance(vpId).get('flattenedDepIds').flattenedDepIds;
|
|
371
343
|
if (deps) {
|
|
372
344
|
// Consider each dependency for un-registering
|
|
373
|
-
deps.forEach(
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
} // Consider the viewProp itself for un-registering
|
|
377
|
-
|
|
378
|
-
|
|
345
|
+
deps.forEach(depId => unregisterCandidates.add(depId));
|
|
346
|
+
}
|
|
347
|
+
// Consider the viewProp itself for un-registering
|
|
379
348
|
unregisterCandidates.add(vpId);
|
|
380
349
|
});
|
|
381
350
|
});
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
var idsToUnregister = _toConsumableArray(unregisterCandidates).filter(function (depId) {
|
|
386
|
-
return !allActorsDeps.has(depId);
|
|
387
|
-
});
|
|
351
|
+
}
|
|
388
352
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
}
|
|
353
|
+
// Now unregister any instances that are no longer needed
|
|
354
|
+
const idsToUnregister = [...unregisterCandidates].filter(depId => !allActorsDeps.has(depId));
|
|
355
|
+
idsToUnregister.forEach(depId => context.unregisterInstance(depId));
|
|
356
|
+
}
|
|
393
357
|
|
|
358
|
+
// ----------------------------------------------------------------------------
|
|
394
359
|
|
|
395
360
|
function vtkRenderWindowUpdater(instance, state, context) {
|
|
396
361
|
// For each renderer we may be removing from this render window, we should first
|
|
@@ -398,115 +363,95 @@ function vtkRenderWindowUpdater(instance, state, context) {
|
|
|
398
363
|
// itself. This will clear the screen, at which point we can go about the normal
|
|
399
364
|
// updater process.
|
|
400
365
|
if (state.calls) {
|
|
401
|
-
state.calls.filter(notSkippedInstance).filter(
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
var renderer = context.getInstance(renId); // Take brief detour through the view props to unregister the dependencies
|
|
366
|
+
state.calls.filter(notSkippedInstance).filter(call => call[0] === 'removeRenderer').forEach(call => {
|
|
367
|
+
extractInstanceIds(call[1]).forEach(renId => {
|
|
368
|
+
const renderer = context.getInstance(renId);
|
|
369
|
+
// Take brief detour through the view props to unregister the dependencies
|
|
406
370
|
// of each one
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
var deps = viewProp.get('flattenedDepIds').flattenedDepIds;
|
|
411
|
-
|
|
371
|
+
const viewProps = renderer.getViewProps();
|
|
372
|
+
viewProps.forEach(viewProp => {
|
|
373
|
+
const deps = viewProp.get('flattenedDepIds').flattenedDepIds;
|
|
412
374
|
if (deps) {
|
|
413
|
-
deps.forEach(
|
|
414
|
-
return context.unregisterInstance(depId);
|
|
415
|
-
});
|
|
375
|
+
deps.forEach(depId => context.unregisterInstance(depId));
|
|
416
376
|
}
|
|
417
|
-
|
|
418
377
|
context.unregisterInstance(context.getInstanceId(viewProp));
|
|
419
378
|
});
|
|
420
379
|
});
|
|
421
380
|
});
|
|
422
381
|
}
|
|
382
|
+
instance.render();
|
|
423
383
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
genericUpdater(instance, state, context); // Manage any associated behaviors
|
|
384
|
+
// Now just do normal update process
|
|
385
|
+
genericUpdater(instance, state, context);
|
|
427
386
|
|
|
387
|
+
// Manage any associated behaviors
|
|
428
388
|
BehaviorManager.applyBehaviors(instance, state, context);
|
|
429
|
-
}
|
|
389
|
+
}
|
|
430
390
|
|
|
391
|
+
// ----------------------------------------------------------------------------
|
|
431
392
|
|
|
432
393
|
function colorTransferFunctionUpdater(instance, state, context) {
|
|
433
394
|
context.start(); // -> start(colorTransferFunctionUpdater)
|
|
434
|
-
|
|
435
395
|
if (!state.properties.nodes) {
|
|
436
396
|
instance.set(state.properties);
|
|
437
397
|
} else {
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
x = _ref2[0],
|
|
441
|
-
r = _ref2[1],
|
|
442
|
-
g = _ref2[2],
|
|
443
|
-
b = _ref2[3],
|
|
444
|
-
midpoint = _ref2[4],
|
|
445
|
-
sharpness = _ref2[5];
|
|
446
|
-
|
|
398
|
+
const nodes = state.properties.nodes.map(_ref => {
|
|
399
|
+
let [x, r, g, b, midpoint, sharpness] = _ref;
|
|
447
400
|
return {
|
|
448
|
-
x
|
|
449
|
-
r
|
|
450
|
-
g
|
|
451
|
-
b
|
|
452
|
-
midpoint
|
|
453
|
-
sharpness
|
|
401
|
+
x,
|
|
402
|
+
r,
|
|
403
|
+
g,
|
|
404
|
+
b,
|
|
405
|
+
midpoint,
|
|
406
|
+
sharpness
|
|
454
407
|
};
|
|
455
408
|
});
|
|
456
|
-
instance.set(
|
|
457
|
-
|
|
458
|
-
|
|
409
|
+
instance.set({
|
|
410
|
+
...state.properties,
|
|
411
|
+
nodes
|
|
412
|
+
}, true);
|
|
459
413
|
}
|
|
460
|
-
|
|
461
414
|
context.end(); // -> end(colorTransferFunctionUpdater)
|
|
462
415
|
}
|
|
463
416
|
|
|
464
417
|
function piecewiseFunctionUpdater(instance, state, context) {
|
|
465
418
|
context.start(); // -> start(piecewiseFunctionUpdater)
|
|
466
|
-
|
|
467
419
|
if (!state.properties.nodes) {
|
|
468
420
|
instance.set(state.properties);
|
|
469
421
|
} else {
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
x = _ref4[0],
|
|
473
|
-
y = _ref4[1],
|
|
474
|
-
midpoint = _ref4[2],
|
|
475
|
-
sharpness = _ref4[3];
|
|
476
|
-
|
|
422
|
+
const nodes = state.properties.nodes.map(_ref2 => {
|
|
423
|
+
let [x, y, midpoint, sharpness] = _ref2;
|
|
477
424
|
return {
|
|
478
|
-
x
|
|
479
|
-
y
|
|
480
|
-
midpoint
|
|
481
|
-
sharpness
|
|
425
|
+
x,
|
|
426
|
+
y,
|
|
427
|
+
midpoint,
|
|
428
|
+
sharpness
|
|
482
429
|
};
|
|
483
430
|
});
|
|
484
|
-
instance.set(
|
|
485
|
-
|
|
486
|
-
|
|
431
|
+
instance.set({
|
|
432
|
+
...state.properties,
|
|
433
|
+
nodes
|
|
434
|
+
}, true);
|
|
487
435
|
instance.sortAndUpdateRange();
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
|
|
436
|
+
}
|
|
437
|
+
// instance.modified();
|
|
491
438
|
context.end(); // -> end(piecewiseFunctionUpdater)
|
|
492
|
-
}
|
|
439
|
+
}
|
|
493
440
|
|
|
441
|
+
// ----------------------------------------------------------------------------
|
|
494
442
|
|
|
495
443
|
function removeUnavailableArrays(fields, availableNames) {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
var name = array.getName();
|
|
502
|
-
|
|
444
|
+
const namesToDelete = [];
|
|
445
|
+
const size = fields.getNumberOfArrays();
|
|
446
|
+
for (let i = 0; i < size; i++) {
|
|
447
|
+
const array = fields.getArray(i);
|
|
448
|
+
const name = array.getName();
|
|
503
449
|
if (!availableNames.has(name)) {
|
|
504
450
|
namesToDelete.push(name);
|
|
505
451
|
}
|
|
506
452
|
}
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
fields.removeArray(namesToDelete[_i]);
|
|
453
|
+
for (let i = 0; i < namesToDelete.length; i++) {
|
|
454
|
+
fields.removeArray(namesToDelete[i]);
|
|
510
455
|
}
|
|
511
456
|
}
|
|
512
457
|
/**
|
|
@@ -514,99 +459,97 @@ function removeUnavailableArrays(fields, availableNames) {
|
|
|
514
459
|
* @param {object} arrayMeta
|
|
515
460
|
* @returns {string} array key
|
|
516
461
|
*/
|
|
517
|
-
|
|
518
|
-
|
|
519
462
|
function getArrayKey(arrayMeta) {
|
|
520
463
|
// Two arrays can have exactly the same hash so try to distinquish with name.
|
|
521
|
-
|
|
522
|
-
return
|
|
464
|
+
const namePart = arrayMeta.name ? `_${arrayMeta.name}` : '';
|
|
465
|
+
return `${arrayMeta.hash}_${arrayMeta.dataType}${namePart}`;
|
|
523
466
|
}
|
|
524
|
-
|
|
525
467
|
function createDataSetUpdate() {
|
|
526
|
-
|
|
527
|
-
return
|
|
468
|
+
let piecesToFetch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
469
|
+
return (instance, state, context) => {
|
|
528
470
|
context.start(); // -> start(dataset-update)
|
|
529
|
-
// Make sure we provide container for std arrays
|
|
530
|
-
|
|
531
|
-
var localProperties = _objectSpread({}, state.properties);
|
|
532
471
|
|
|
472
|
+
// Make sure we provide container for std arrays
|
|
473
|
+
const localProperties = {
|
|
474
|
+
...state.properties
|
|
475
|
+
};
|
|
533
476
|
if (!state.arrays) {
|
|
534
477
|
state.arrays = {};
|
|
535
|
-
}
|
|
536
|
-
// => convert old format to generic state.arrays
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
for (var i = 0; i < piecesToFetch.length; i++) {
|
|
540
|
-
var key = piecesToFetch[i];
|
|
478
|
+
}
|
|
541
479
|
|
|
480
|
+
// Array members
|
|
481
|
+
// => convert old format to generic state.arrays
|
|
482
|
+
for (let i = 0; i < piecesToFetch.length; i++) {
|
|
483
|
+
const key = piecesToFetch[i];
|
|
542
484
|
if (state.properties[key]) {
|
|
543
|
-
|
|
544
|
-
arrayMeta.registration =
|
|
545
|
-
|
|
485
|
+
const arrayMeta = state.properties[key];
|
|
486
|
+
arrayMeta.registration = `set${capitalize(key)}`;
|
|
487
|
+
const arrayKey = getArrayKey(arrayMeta);
|
|
546
488
|
state.arrays[arrayKey] = arrayMeta;
|
|
547
489
|
delete localProperties[key];
|
|
548
490
|
}
|
|
549
|
-
} // Extract dataset fields
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
var fieldsArrays = state.properties.fields || [];
|
|
553
|
-
|
|
554
|
-
for (var _i2 = 0; _i2 < fieldsArrays.length; _i2++) {
|
|
555
|
-
var _arrayMeta = fieldsArrays[_i2];
|
|
556
|
-
|
|
557
|
-
var _arrayKey = getArrayKey(_arrayMeta);
|
|
558
|
-
|
|
559
|
-
state.arrays[_arrayKey] = _arrayMeta;
|
|
560
491
|
}
|
|
561
492
|
|
|
562
|
-
|
|
493
|
+
// Extract dataset fields
|
|
494
|
+
const fieldsArrays = state.properties.fields || [];
|
|
495
|
+
for (let i = 0; i < fieldsArrays.length; i++) {
|
|
496
|
+
const arrayMeta = fieldsArrays[i];
|
|
497
|
+
const arrayKey = getArrayKey(arrayMeta);
|
|
498
|
+
state.arrays[arrayKey] = arrayMeta;
|
|
499
|
+
}
|
|
500
|
+
delete localProperties.fields;
|
|
563
501
|
|
|
564
|
-
|
|
502
|
+
// Reset any pre-existing fields array
|
|
503
|
+
const arrayToKeep = {
|
|
565
504
|
pointData: new Set(),
|
|
566
505
|
cellData: new Set(),
|
|
567
506
|
fieldData: new Set()
|
|
568
507
|
};
|
|
569
|
-
fieldsArrays.forEach(
|
|
570
|
-
|
|
571
|
-
|
|
508
|
+
fieldsArrays.forEach(_ref3 => {
|
|
509
|
+
let {
|
|
510
|
+
location,
|
|
511
|
+
name
|
|
512
|
+
} = _ref3;
|
|
572
513
|
arrayToKeep[location].add(name);
|
|
573
514
|
});
|
|
574
515
|
removeUnavailableArrays(instance.getPointData(), arrayToKeep.pointData);
|
|
575
|
-
removeUnavailableArrays(instance.getCellData(), arrayToKeep.cellData);
|
|
576
|
-
|
|
577
|
-
var cleanState = _objectSpread({}, state);
|
|
516
|
+
removeUnavailableArrays(instance.getCellData(), arrayToKeep.cellData);
|
|
578
517
|
|
|
518
|
+
// Generic handling
|
|
519
|
+
const cleanState = {
|
|
520
|
+
...state
|
|
521
|
+
};
|
|
579
522
|
cleanState.properties = localProperties;
|
|
580
|
-
|
|
523
|
+
const res = genericUpdater(instance, cleanState, context);
|
|
581
524
|
|
|
525
|
+
// Finish what we started
|
|
582
526
|
context.end(); // -> end(dataset-update)
|
|
583
|
-
|
|
584
527
|
return res;
|
|
585
528
|
};
|
|
586
529
|
}
|
|
530
|
+
const polydataUpdater = createDataSetUpdate(['points', 'polys', 'verts', 'lines', 'strips']);
|
|
531
|
+
const imageDataUpdater = createDataSetUpdate([]);
|
|
587
532
|
|
|
588
|
-
|
|
589
|
-
var imageDataUpdater = createDataSetUpdate([]); // ----------------------------------------------------------------------------
|
|
533
|
+
// ----------------------------------------------------------------------------
|
|
590
534
|
// Construct the type mapping
|
|
591
535
|
// ----------------------------------------------------------------------------
|
|
592
536
|
|
|
593
537
|
function setTypeMapping(type) {
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
538
|
+
let buildFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
539
|
+
let updateFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : genericUpdater;
|
|
597
540
|
if (!build && !update) {
|
|
598
541
|
delete TYPE_HANDLERS[type];
|
|
599
542
|
return;
|
|
600
543
|
}
|
|
601
|
-
|
|
602
544
|
TYPE_HANDLERS[type] = {
|
|
603
545
|
build: buildFn,
|
|
604
546
|
update: updateFn
|
|
605
547
|
};
|
|
606
|
-
}
|
|
548
|
+
}
|
|
607
549
|
|
|
550
|
+
// ----------------------------------------------------------------------------
|
|
608
551
|
|
|
609
|
-
|
|
552
|
+
const DEFAULT_ALIASES = {
|
|
610
553
|
vtkMapper: ['vtkOpenGLPolyDataMapper', 'vtkCompositePolyDataMapper2', 'vtkDataSetMapper'],
|
|
611
554
|
vtkProperty: ['vtkOpenGLProperty'],
|
|
612
555
|
vtkRenderer: ['vtkOpenGLRenderer'],
|
|
@@ -617,9 +560,11 @@ var DEFAULT_ALIASES = {
|
|
|
617
560
|
vtkTexture: ['vtkOpenGLTexture'],
|
|
618
561
|
vtkImageMapper: ['vtkOpenGLImageSliceMapper'],
|
|
619
562
|
vtkVolumeMapper: ['vtkFixedPointVolumeRayCastMapper']
|
|
620
|
-
};
|
|
563
|
+
};
|
|
564
|
+
|
|
565
|
+
// ----------------------------------------------------------------------------
|
|
621
566
|
|
|
622
|
-
|
|
567
|
+
const DEFAULT_MAPPING = {
|
|
623
568
|
vtkAxesActor: {
|
|
624
569
|
build: vtkAxesActor.newInstance,
|
|
625
570
|
update: genericUpdater
|
|
@@ -712,62 +657,67 @@ var DEFAULT_MAPPING = {
|
|
|
712
657
|
build: vtkScalarBarActor.newInstance,
|
|
713
658
|
update: genericUpdater
|
|
714
659
|
}
|
|
715
|
-
};
|
|
660
|
+
};
|
|
716
661
|
|
|
717
|
-
|
|
718
|
-
var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
662
|
+
// ----------------------------------------------------------------------------
|
|
719
663
|
|
|
664
|
+
function setDefaultMapping() {
|
|
665
|
+
let reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
720
666
|
if (reset) {
|
|
721
667
|
clearTypeMapping();
|
|
722
668
|
}
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
var mapping = DEFAULT_MAPPING[type];
|
|
669
|
+
Object.keys(DEFAULT_MAPPING).forEach(type => {
|
|
670
|
+
const mapping = DEFAULT_MAPPING[type];
|
|
726
671
|
setTypeMapping(type, mapping.build, mapping.update);
|
|
727
672
|
});
|
|
728
|
-
}
|
|
673
|
+
}
|
|
729
674
|
|
|
675
|
+
// ----------------------------------------------------------------------------
|
|
730
676
|
|
|
731
677
|
function applyDefaultAliases() {
|
|
732
678
|
// Add aliases
|
|
733
|
-
Object.keys(DEFAULT_ALIASES).forEach(
|
|
734
|
-
|
|
735
|
-
aliases.forEach(
|
|
679
|
+
Object.keys(DEFAULT_ALIASES).forEach(name => {
|
|
680
|
+
const aliases = DEFAULT_ALIASES[name];
|
|
681
|
+
aliases.forEach(alias => {
|
|
736
682
|
TYPE_HANDLERS[alias] = TYPE_HANDLERS[name];
|
|
737
683
|
});
|
|
738
684
|
});
|
|
739
|
-
}
|
|
685
|
+
}
|
|
740
686
|
|
|
687
|
+
// ----------------------------------------------------------------------------
|
|
741
688
|
|
|
742
689
|
function alwaysUpdateCamera() {
|
|
743
690
|
setTypeMapping('vtkCamera', vtkCamera.newInstance);
|
|
744
691
|
applyDefaultAliases();
|
|
745
|
-
}
|
|
746
|
-
|
|
692
|
+
}
|
|
747
693
|
|
|
694
|
+
// ----------------------------------------------------------------------------
|
|
748
695
|
setDefaultMapping();
|
|
749
|
-
applyDefaultAliases();
|
|
696
|
+
applyDefaultAliases();
|
|
697
|
+
// ----------------------------------------------------------------------------
|
|
698
|
+
|
|
750
699
|
// Avoid handling any lights at the moment
|
|
751
700
|
// => vtk seems fine and PV could be fine as well but not tested so keeping PV exclude
|
|
701
|
+
EXCLUDE_INSTANCE_MAP.vtkPVLight = {};
|
|
752
702
|
|
|
753
|
-
|
|
703
|
+
// ----------------------------------------------------------------------------
|
|
754
704
|
// Publicly exposed methods
|
|
755
705
|
// ----------------------------------------------------------------------------
|
|
756
706
|
|
|
757
707
|
var vtkObjectManager = {
|
|
758
|
-
build
|
|
759
|
-
update
|
|
760
|
-
genericUpdater
|
|
761
|
-
oneTimeGenericUpdater
|
|
762
|
-
setTypeMapping
|
|
763
|
-
clearTypeMapping
|
|
764
|
-
getSupportedTypes
|
|
765
|
-
clearOneTimeUpdaters
|
|
766
|
-
updateRenderWindow
|
|
767
|
-
excludeInstance
|
|
768
|
-
setDefaultMapping
|
|
769
|
-
applyDefaultAliases
|
|
770
|
-
alwaysUpdateCamera
|
|
708
|
+
build,
|
|
709
|
+
update,
|
|
710
|
+
genericUpdater,
|
|
711
|
+
oneTimeGenericUpdater,
|
|
712
|
+
setTypeMapping,
|
|
713
|
+
clearTypeMapping,
|
|
714
|
+
getSupportedTypes,
|
|
715
|
+
clearOneTimeUpdaters,
|
|
716
|
+
updateRenderWindow,
|
|
717
|
+
excludeInstance,
|
|
718
|
+
setDefaultMapping,
|
|
719
|
+
applyDefaultAliases,
|
|
720
|
+
alwaysUpdateCamera
|
|
771
721
|
};
|
|
772
722
|
|
|
773
723
|
export { vtkObjectManager as default };
|