@kitware/vtk.js 28.10.2 → 28.11.1
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 +193 -277
- 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 +754 -942
- 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/README.md +1 -1
- 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 +85 -144
- 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 +192 -256
- 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 +443 -608
- 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 +40 -38
- 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 +133 -209
- package/Widgets/Widgets3D/ResliceCursorWidget/cprBehavior.js +26 -41
- package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +89 -116
- 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,11 +1,14 @@
|
|
|
1
|
-
import macro from '../../
|
|
1
|
+
import { m as macro } from '../../macros2.js';
|
|
2
2
|
import vtkImageData from './ImageData.js';
|
|
3
3
|
import vtkPolyData from './PolyData.js';
|
|
4
4
|
import vtkDataArray from '../Core/DataArray.js';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
const {
|
|
7
|
+
vtkErrorMacro
|
|
8
|
+
} = macro;
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
// see itk.js PixelTypes.js
|
|
11
|
+
const ITKJSPixelTypes = {
|
|
9
12
|
Unknown: 0,
|
|
10
13
|
Scalar: 1,
|
|
11
14
|
RGB: 2,
|
|
@@ -22,9 +25,10 @@ var ITKJSPixelTypes = {
|
|
|
22
25
|
Matrix: 13,
|
|
23
26
|
VariableLengthVector: 14,
|
|
24
27
|
VariableSizeMatrix: 15
|
|
25
|
-
};
|
|
28
|
+
};
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
// itk-wasm pixel types from https://github.com/InsightSoftwareConsortium/itk-wasm/blob/master/src/core/PixelTypes.ts
|
|
31
|
+
const ITKWASMPixelTypes = {
|
|
28
32
|
Unknown: 'Unknown',
|
|
29
33
|
Scalar: 'Scalar',
|
|
30
34
|
RGB: 'RGB',
|
|
@@ -42,32 +46,31 @@ var ITKWASMPixelTypes = {
|
|
|
42
46
|
VariableLengthVector: 'VariableLengthVector',
|
|
43
47
|
VariableSizeMatrix: 'VariableSizeMatrix'
|
|
44
48
|
};
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
const vtkArrayTypeToItkComponentType = new Map([['Uint8Array', 'uint8'], ['Int8Array', 'int8'], ['Uint16Array', 'uint16'], ['Int16Array', 'int16'], ['Uint32Array', 'uint32'], ['Int32Array', 'int32'], ['Float32Array', 'float32'], ['Float64Array', 'float64']]);
|
|
50
|
+
const itkComponentTypeToVtkArrayType = new Map([['uint8', 'Uint8Array'], ['int8', 'Int8Array'], ['uint16', 'Uint16Array'], ['int16', 'Int16Array'], ['uint32', 'Uint32Array'], ['int32', 'Int32Array'], ['float32', 'Float32Array'], ['float64', 'Float64Array']]);
|
|
51
|
+
|
|
47
52
|
/**
|
|
48
53
|
* Converts an itk-wasm Image to a vtk.js vtkImageData.
|
|
49
54
|
*
|
|
50
55
|
* Requires an itk-wasm Image as input.
|
|
51
56
|
*/
|
|
52
|
-
|
|
53
57
|
function convertItkToVtkImage(itkImage) {
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
59
|
+
const vtkImage = {
|
|
56
60
|
origin: [0, 0, 0],
|
|
57
61
|
spacing: [1, 1, 1]
|
|
58
62
|
};
|
|
59
|
-
|
|
60
|
-
|
|
63
|
+
const dimensions = [1, 1, 1];
|
|
64
|
+
const direction = [1, 0, 0, 0, 1, 0, 0, 0, 1];
|
|
61
65
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
for (
|
|
66
|
+
// Check whether itkImage is an itk.js Image or an itk-wasm Image?
|
|
67
|
+
const isITKWasm = itkImage.direction.data === undefined;
|
|
68
|
+
const ITKPixelTypes = isITKWasm ? ITKWASMPixelTypes : ITKJSPixelTypes;
|
|
69
|
+
for (let idx = 0; idx < itkImage.imageType.dimension; ++idx) {
|
|
66
70
|
vtkImage.origin[idx] = itkImage.origin[idx];
|
|
67
71
|
vtkImage.spacing[idx] = itkImage.spacing[idx];
|
|
68
72
|
dimensions[idx] = itkImage.size[idx];
|
|
69
|
-
|
|
70
|
-
for (var col = 0; col < itkImage.imageType.dimension; ++col) {
|
|
73
|
+
for (let col = 0; col < itkImage.imageType.dimension; ++col) {
|
|
71
74
|
// ITK (and VTKMath) use a row-major index axis, but the direction
|
|
72
75
|
// matrix on the vtkImageData is a webGL matrix, which uses a
|
|
73
76
|
// column-major data layout. Transpose the direction matrix from
|
|
@@ -78,105 +81,87 @@ function convertItkToVtkImage(itkImage) {
|
|
|
78
81
|
direction[col + idx * 3] = itkImage.direction.data[idx + col * itkImage.imageType.dimension];
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
|
-
}
|
|
82
|
-
|
|
84
|
+
}
|
|
83
85
|
|
|
84
|
-
|
|
86
|
+
// Create VTK Image Data
|
|
87
|
+
const imageData = vtkImageData.newInstance(vtkImage);
|
|
85
88
|
|
|
86
|
-
|
|
89
|
+
// Create VTK point data -- the data associated with the pixels / voxels
|
|
90
|
+
const pointData = vtkDataArray.newInstance({
|
|
87
91
|
name: options.scalarArrayName || 'Scalars',
|
|
88
92
|
values: itkImage.data,
|
|
89
93
|
numberOfComponents: itkImage.imageType.components
|
|
90
94
|
});
|
|
91
95
|
imageData.setDirection(direction);
|
|
92
|
-
imageData.setDimensions
|
|
96
|
+
imageData.setDimensions(...dimensions);
|
|
97
|
+
// Always associate multi-component pixel types with vtk.js point data
|
|
93
98
|
// scalars to facilitate multi-component volume rendering
|
|
99
|
+
imageData.getPointData().setScalars(pointData);
|
|
94
100
|
|
|
95
|
-
|
|
101
|
+
// Associate the point data that are 3D vectors / tensors
|
|
96
102
|
// Refer to itk-js/src/PixelTypes.js for numerical values
|
|
97
|
-
|
|
98
103
|
switch (isITKWasm ? ITKPixelTypes[itkImage.imageType.pixelType] : itkImage.imageType.pixelType) {
|
|
99
104
|
case ITKPixelTypes.Scalar:
|
|
100
105
|
break;
|
|
101
|
-
|
|
102
106
|
case ITKPixelTypes.RGB:
|
|
103
107
|
break;
|
|
104
|
-
|
|
105
108
|
case ITKPixelTypes.RGBA:
|
|
106
109
|
break;
|
|
107
|
-
|
|
108
110
|
case ITKPixelTypes.Offset:
|
|
109
111
|
break;
|
|
110
|
-
|
|
111
112
|
case ITKPixelTypes.Vector:
|
|
112
113
|
if (itkImage.imageType.dimension === 3 && itkImage.imageType.components === 3) {
|
|
113
114
|
imageData.getPointData().setVectors(pointData);
|
|
114
115
|
}
|
|
115
|
-
|
|
116
116
|
break;
|
|
117
|
-
|
|
118
117
|
case ITKPixelTypes.Point:
|
|
119
118
|
break;
|
|
120
|
-
|
|
121
119
|
case ITKPixelTypes.CovariantVector:
|
|
122
120
|
if (itkImage.imageType.dimension === 3 && itkImage.imageType.components === 3) {
|
|
123
121
|
imageData.getPointData().setVectors(pointData);
|
|
124
122
|
}
|
|
125
|
-
|
|
126
123
|
break;
|
|
127
|
-
|
|
128
124
|
case ITKPixelTypes.SymmetricSecondRankTensor:
|
|
129
125
|
if (itkImage.imageType.dimension === 3 && itkImage.imageType.components === 6) {
|
|
130
126
|
imageData.getPointData().setTensors(pointData);
|
|
131
127
|
}
|
|
132
|
-
|
|
133
128
|
break;
|
|
134
|
-
|
|
135
129
|
case ITKPixelTypes.DiffusionTensor3D:
|
|
136
130
|
if (itkImage.imageType.dimension === 3 && itkImage.imageType.components === 6) {
|
|
137
131
|
imageData.getPointData().setTensors(pointData);
|
|
138
132
|
}
|
|
139
|
-
|
|
140
133
|
break;
|
|
141
|
-
|
|
142
134
|
case ITKPixelTypes.Complex:
|
|
143
135
|
break;
|
|
144
|
-
|
|
145
136
|
case ITKPixelTypes.FixedArray:
|
|
146
137
|
break;
|
|
147
|
-
|
|
148
138
|
case ITKPixelTypes.Array:
|
|
149
139
|
break;
|
|
150
|
-
|
|
151
140
|
case ITKPixelTypes.Matrix:
|
|
152
141
|
break;
|
|
153
|
-
|
|
154
142
|
case ITKPixelTypes.VariableLengthVector:
|
|
155
143
|
break;
|
|
156
|
-
|
|
157
144
|
case ITKPixelTypes.VariableSizeMatrix:
|
|
158
145
|
break;
|
|
159
|
-
|
|
160
146
|
default:
|
|
161
|
-
vtkErrorMacro(
|
|
147
|
+
vtkErrorMacro(`Cannot handle unexpected itk-wasm pixel type ${itkImage.imageType.pixelType}`);
|
|
162
148
|
return null;
|
|
163
149
|
}
|
|
164
|
-
|
|
165
150
|
return imageData;
|
|
166
151
|
}
|
|
152
|
+
|
|
167
153
|
/**
|
|
168
154
|
* Converts a vtk.js vtkImageData to an itk-wasm Image.
|
|
169
155
|
*
|
|
170
156
|
* Requires a vtk.js vtkImageData as input.
|
|
171
157
|
*
|
|
172
158
|
*/
|
|
173
|
-
|
|
174
159
|
function convertVtkToItkImage(vtkImage) {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
160
|
+
let copyData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
161
|
+
const dimension = 3;
|
|
162
|
+
const itkImage = {
|
|
178
163
|
imageType: {
|
|
179
|
-
dimension
|
|
164
|
+
dimension,
|
|
180
165
|
pixelType: ITKWASMPixelTypes.Scalar,
|
|
181
166
|
componentType: '',
|
|
182
167
|
components: 1
|
|
@@ -187,17 +172,16 @@ function convertVtkToItkImage(vtkImage) {
|
|
|
187
172
|
direction: new Float64Array(9),
|
|
188
173
|
size: vtkImage.getDimensions()
|
|
189
174
|
};
|
|
190
|
-
|
|
175
|
+
const direction = vtkImage.getDirection();
|
|
191
176
|
|
|
192
|
-
|
|
193
|
-
|
|
177
|
+
// Transpose the direction matrix from column-major to row-major
|
|
178
|
+
for (let idx = 0; idx < dimension; ++idx) {
|
|
179
|
+
for (let idy = 0; idy < dimension; ++idy) {
|
|
194
180
|
itkImage.direction[idx + idy * dimension] = direction[idy + idx * dimension];
|
|
195
181
|
}
|
|
196
182
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
var vtkArray;
|
|
200
|
-
|
|
183
|
+
const pointData = vtkImage.getPointData();
|
|
184
|
+
let vtkArray;
|
|
201
185
|
if (pointData.getTensors() !== null) {
|
|
202
186
|
itkImage.imageType.pixelType = ITKWASMPixelTypes.DiffusionTensor3D;
|
|
203
187
|
vtkArray = pointData.getTensors();
|
|
@@ -207,28 +191,24 @@ function convertVtkToItkImage(vtkImage) {
|
|
|
207
191
|
} else {
|
|
208
192
|
vtkArray = pointData.getScalars();
|
|
209
193
|
}
|
|
210
|
-
|
|
211
194
|
itkImage.imageType.componentType = vtkArrayTypeToItkComponentType.get(vtkArray.getDataType());
|
|
212
|
-
|
|
213
195
|
if (copyData) {
|
|
214
196
|
// Copy the data array
|
|
215
197
|
itkImage.data = vtkArray.getData().slice(0);
|
|
216
198
|
} else {
|
|
217
199
|
itkImage.data = vtkArray.getData();
|
|
218
200
|
}
|
|
219
|
-
|
|
220
201
|
return itkImage;
|
|
221
202
|
}
|
|
203
|
+
|
|
222
204
|
/**
|
|
223
205
|
* Converts an itk-wasm PolyData to a vtk.js vtkPolyData.
|
|
224
206
|
*
|
|
225
207
|
* Requires an itk-wasm PolyData as input.
|
|
226
208
|
*/
|
|
227
|
-
|
|
228
209
|
function convertItkToVtkPolyData(itkPolyData) {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
210
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
211
|
+
const pointDataArrays = [];
|
|
232
212
|
if (itkPolyData.pointData.length) {
|
|
233
213
|
pointDataArrays.push({
|
|
234
214
|
data: {
|
|
@@ -242,9 +222,7 @@ function convertItkToVtkPolyData(itkPolyData) {
|
|
|
242
222
|
}
|
|
243
223
|
});
|
|
244
224
|
}
|
|
245
|
-
|
|
246
|
-
var cellDataArrays = [];
|
|
247
|
-
|
|
225
|
+
const cellDataArrays = [];
|
|
248
226
|
if (itkPolyData.cellData.length) {
|
|
249
227
|
cellDataArrays.push({
|
|
250
228
|
data: {
|
|
@@ -258,8 +236,7 @@ function convertItkToVtkPolyData(itkPolyData) {
|
|
|
258
236
|
}
|
|
259
237
|
});
|
|
260
238
|
}
|
|
261
|
-
|
|
262
|
-
var vtkPolyDataModel = {
|
|
239
|
+
const vtkPolyDataModel = {
|
|
263
240
|
points: {
|
|
264
241
|
vtkClass: 'vtkPoints',
|
|
265
242
|
name: '_points',
|
|
@@ -333,166 +310,126 @@ function convertItkToVtkPolyData(itkPolyData) {
|
|
|
333
310
|
doCopyAllOn: true,
|
|
334
311
|
arrays: cellDataArrays
|
|
335
312
|
}
|
|
336
|
-
};
|
|
337
|
-
|
|
338
|
-
var polyData = vtkPolyData.newInstance(vtkPolyDataModel);
|
|
339
|
-
var pd = polyData.getPointData();
|
|
340
|
-
var cd = polyData.getCellData();
|
|
313
|
+
};
|
|
341
314
|
|
|
315
|
+
// Create VTK PolyData
|
|
316
|
+
const polyData = vtkPolyData.newInstance(vtkPolyDataModel);
|
|
317
|
+
const pd = polyData.getPointData();
|
|
318
|
+
const cd = polyData.getCellData();
|
|
342
319
|
if (itkPolyData.pointData.length) {
|
|
343
320
|
// Associate the point data that are 3D vectors / tensors
|
|
344
321
|
switch (ITKWASMPixelTypes[itkPolyData.polyDataType.pointPixelType]) {
|
|
345
322
|
case ITKWASMPixelTypes.Scalar:
|
|
346
323
|
pd.setScalars(pd.getArrayByIndex(0));
|
|
347
324
|
break;
|
|
348
|
-
|
|
349
325
|
case ITKWASMPixelTypes.RGB:
|
|
350
326
|
break;
|
|
351
|
-
|
|
352
327
|
case ITKWASMPixelTypes.RGBA:
|
|
353
328
|
break;
|
|
354
|
-
|
|
355
329
|
case ITKWASMPixelTypes.Offset:
|
|
356
330
|
break;
|
|
357
|
-
|
|
358
331
|
case ITKWASMPixelTypes.Vector:
|
|
359
332
|
if (itkPolyData.polyDataType.pointPixelComponents === 3) {
|
|
360
333
|
pd.setVectors(pd.getArrayByIndex(0));
|
|
361
334
|
}
|
|
362
|
-
|
|
363
335
|
break;
|
|
364
|
-
|
|
365
336
|
case ITKWASMPixelTypes.Point:
|
|
366
337
|
break;
|
|
367
|
-
|
|
368
338
|
case ITKWASMPixelTypes.CovariantVector:
|
|
369
339
|
if (itkPolyData.polyDataType.pointPixelComponents === 3) {
|
|
370
340
|
pd.setVectors(pd.getArrayByIndex(0));
|
|
371
341
|
}
|
|
372
|
-
|
|
373
342
|
break;
|
|
374
|
-
|
|
375
343
|
case ITKWASMPixelTypes.SymmetricSecondRankTensor:
|
|
376
344
|
if (itkPolyData.polyDataType.pointPixelComponents === 6) {
|
|
377
345
|
pd.setTensors(pd.getArrayByIndex(0));
|
|
378
346
|
}
|
|
379
|
-
|
|
380
347
|
break;
|
|
381
|
-
|
|
382
348
|
case ITKWASMPixelTypes.DiffusionTensor3D:
|
|
383
349
|
if (itkPolyData.polyDataType.pointPixelComponents === 6) {
|
|
384
350
|
pd.setTensors(pd.getArrayByIndex(0));
|
|
385
351
|
}
|
|
386
|
-
|
|
387
352
|
break;
|
|
388
|
-
|
|
389
353
|
case ITKWASMPixelTypes.Complex:
|
|
390
354
|
break;
|
|
391
|
-
|
|
392
355
|
case ITKWASMPixelTypes.FixedArray:
|
|
393
356
|
break;
|
|
394
|
-
|
|
395
357
|
case ITKWASMPixelTypes.Array:
|
|
396
358
|
break;
|
|
397
|
-
|
|
398
359
|
case ITKWASMPixelTypes.Matrix:
|
|
399
360
|
break;
|
|
400
|
-
|
|
401
361
|
case ITKWASMPixelTypes.VariableLengthVector:
|
|
402
362
|
break;
|
|
403
|
-
|
|
404
363
|
case ITKWASMPixelTypes.VariableSizeMatrix:
|
|
405
364
|
break;
|
|
406
|
-
|
|
407
365
|
default:
|
|
408
|
-
vtkErrorMacro(
|
|
366
|
+
vtkErrorMacro(`Cannot handle unexpected itk-wasm pixel type ${itkPolyData.polyDataType.pointPixelType}`);
|
|
409
367
|
return null;
|
|
410
368
|
}
|
|
411
369
|
}
|
|
412
|
-
|
|
413
370
|
if (itkPolyData.cellData.length) {
|
|
414
371
|
// Associate the cell data that are 3D vectors / tensors
|
|
415
372
|
switch (ITKWASMPixelTypes[itkPolyData.polyDataType.cellPixelType]) {
|
|
416
373
|
case ITKWASMPixelTypes.Scalar:
|
|
417
374
|
cd.setScalars(cd.getArrayByIndex(0));
|
|
418
375
|
break;
|
|
419
|
-
|
|
420
376
|
case ITKWASMPixelTypes.RGB:
|
|
421
377
|
break;
|
|
422
|
-
|
|
423
378
|
case ITKWASMPixelTypes.RGBA:
|
|
424
379
|
break;
|
|
425
|
-
|
|
426
380
|
case ITKWASMPixelTypes.Offset:
|
|
427
381
|
break;
|
|
428
|
-
|
|
429
382
|
case ITKWASMPixelTypes.Vector:
|
|
430
383
|
if (itkPolyData.polyDataType.pointPixelComponents === 3) {
|
|
431
384
|
cd.setVectors(cd.getArrayByIndex(0));
|
|
432
385
|
}
|
|
433
|
-
|
|
434
386
|
break;
|
|
435
|
-
|
|
436
387
|
case ITKWASMPixelTypes.Point:
|
|
437
388
|
break;
|
|
438
|
-
|
|
439
389
|
case ITKWASMPixelTypes.CovariantVector:
|
|
440
390
|
if (itkPolyData.polyDataType.pointPixelComponents === 3) {
|
|
441
391
|
cd.setVectors(cd.getArrayByIndex(0));
|
|
442
392
|
}
|
|
443
|
-
|
|
444
393
|
break;
|
|
445
|
-
|
|
446
394
|
case ITKWASMPixelTypes.SymmetricSecondRankTensor:
|
|
447
395
|
if (itkPolyData.polyDataType.pointPixelComponents === 6) {
|
|
448
396
|
cd.setTensors(cd.getArrayByIndex(0));
|
|
449
397
|
}
|
|
450
|
-
|
|
451
398
|
break;
|
|
452
|
-
|
|
453
399
|
case ITKWASMPixelTypes.DiffusionTensor3D:
|
|
454
400
|
if (itkPolyData.polyDataType.pointPixelComponents === 6) {
|
|
455
401
|
cd.setTensors(cd.getArrayByIndex(0));
|
|
456
402
|
}
|
|
457
|
-
|
|
458
403
|
break;
|
|
459
|
-
|
|
460
404
|
case ITKWASMPixelTypes.Complex:
|
|
461
405
|
break;
|
|
462
|
-
|
|
463
406
|
case ITKWASMPixelTypes.FixedArray:
|
|
464
407
|
break;
|
|
465
|
-
|
|
466
408
|
case ITKWASMPixelTypes.Array:
|
|
467
409
|
break;
|
|
468
|
-
|
|
469
410
|
case ITKWASMPixelTypes.Matrix:
|
|
470
411
|
break;
|
|
471
|
-
|
|
472
412
|
case ITKWASMPixelTypes.VariableLengthVector:
|
|
473
413
|
break;
|
|
474
|
-
|
|
475
414
|
case ITKWASMPixelTypes.VariableSizeMatrix:
|
|
476
415
|
break;
|
|
477
|
-
|
|
478
416
|
default:
|
|
479
|
-
vtkErrorMacro(
|
|
417
|
+
vtkErrorMacro(`Cannot handle unexpected itk-wasm pixel type ${itkPolyData.polyDataType.pointPixelType}`);
|
|
480
418
|
return null;
|
|
481
419
|
}
|
|
482
420
|
}
|
|
483
|
-
|
|
484
421
|
return polyData;
|
|
485
422
|
}
|
|
423
|
+
|
|
486
424
|
/**
|
|
487
425
|
* Converts a vtk.js vtkPolyData to an itk-wasm PolyData.
|
|
488
426
|
*
|
|
489
427
|
* Requires a vtk.js vtkPolyData as input.
|
|
490
428
|
*
|
|
491
429
|
*/
|
|
492
|
-
|
|
493
430
|
function convertVtkToItkPolyData(polyData) {
|
|
494
|
-
|
|
495
|
-
|
|
431
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
432
|
+
const itkPolyData = {
|
|
496
433
|
polyDataType: {
|
|
497
434
|
pointPixelComponentType: 'float32',
|
|
498
435
|
pointPixelComponents: 1,
|
|
@@ -516,36 +453,30 @@ function convertVtkToItkPolyData(polyData) {
|
|
|
516
453
|
numberOfCellPixels: 0,
|
|
517
454
|
cellData: new Float32Array()
|
|
518
455
|
};
|
|
519
|
-
|
|
520
|
-
|
|
456
|
+
const pd = polyData.getPointData();
|
|
521
457
|
if (pd.getNumberOfArrays()) {
|
|
522
|
-
|
|
458
|
+
const pdArray = options.pointDataName ? pd.getArrayByName(options.pointDataName) : pd.getArrayByIndex(0);
|
|
523
459
|
itkPolyData.numberOfPointPixels = pdArray.getNumberOfTuples();
|
|
524
460
|
itkPolyData.pointData = pdArray.getData();
|
|
525
|
-
itkPolyData.polyDataType.pointPixelComponentType = vtkArrayTypeToItkComponentType.get(pdArray.getDataType());
|
|
526
|
-
|
|
461
|
+
itkPolyData.polyDataType.pointPixelComponentType = vtkArrayTypeToItkComponentType.get(pdArray.getDataType());
|
|
462
|
+
// default to the same type
|
|
527
463
|
itkPolyData.polyDataType.cellPixelComponentType = itkPolyData.polyDataType.pointPixelComponentType;
|
|
528
464
|
itkPolyData.polyDataType.pointPixelComponents = pdArray.getNumberOfComponents();
|
|
529
465
|
itkPolyData.polyDataType.cellPixelComponents = itkPolyData.polyDataType.pointPixelComponents;
|
|
530
|
-
|
|
531
466
|
if (pd.getTensors() === pdArray) {
|
|
532
467
|
itkPolyData.polyDataType.pointPixelType = ITKWASMPixelTypes.SymmetricSecondRankTensor;
|
|
533
468
|
} else if (pd.getVectors() === pdArray) {
|
|
534
469
|
itkPolyData.polyDataType.pointPixelType = ITKWASMPixelTypes.Vector;
|
|
535
470
|
}
|
|
536
|
-
|
|
537
471
|
itkPolyData.polyDataType.cellPixelType = itkPolyData.polyDataType.pointPixelType;
|
|
538
472
|
}
|
|
539
|
-
|
|
540
|
-
var cd = polyData.getCellData();
|
|
541
|
-
|
|
473
|
+
const cd = polyData.getCellData();
|
|
542
474
|
if (cd.getNumberOfArrays()) {
|
|
543
|
-
|
|
475
|
+
const cdArray = options.cellDataName ? pd.getArrayByName(options.cellDataName) : pd.getArrayByIndex(0);
|
|
544
476
|
itkPolyData.numberOfCellPixels = cdArray.getNumberOfTuples();
|
|
545
477
|
itkPolyData.cellData = cdArray.getData();
|
|
546
478
|
itkPolyData.polyDataType.cellPixelComponentType = vtkArrayTypeToItkComponentType.get(cdArray.getDataType());
|
|
547
479
|
itkPolyData.polyDataType.cellPixelComponents = cdArray.getNumberOfComponents();
|
|
548
|
-
|
|
549
480
|
if (cd.getTensors() === cdArray) {
|
|
550
481
|
itkPolyData.polyDataType.cellPixelType = ITKWASMPixelTypes.SymmetricSecondRankTensor;
|
|
551
482
|
} else if (cd.getVectors() === cdArray) {
|
|
@@ -554,14 +485,13 @@ function convertVtkToItkPolyData(polyData) {
|
|
|
554
485
|
itkPolyData.polyDataType.cellPixelType = ITKWASMPixelTypes.Scalar;
|
|
555
486
|
}
|
|
556
487
|
}
|
|
557
|
-
|
|
558
488
|
return itkPolyData;
|
|
559
489
|
}
|
|
560
490
|
var ITKHelper = {
|
|
561
|
-
convertItkToVtkImage
|
|
562
|
-
convertVtkToItkImage
|
|
563
|
-
convertItkToVtkPolyData
|
|
564
|
-
convertVtkToItkPolyData
|
|
491
|
+
convertItkToVtkImage,
|
|
492
|
+
convertVtkToItkImage,
|
|
493
|
+
convertItkToVtkPolyData,
|
|
494
|
+
convertVtkToItkPolyData
|
|
565
495
|
};
|
|
566
496
|
|
|
567
497
|
export { convertItkToVtkImage, convertItkToVtkPolyData, convertVtkToItkImage, convertVtkToItkPolyData, ITKHelper as default };
|