@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,45 +1,43 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
|
-
import macro from '../../macros.js';
|
|
1
|
+
import { m as macro } from '../../macros2.js';
|
|
4
2
|
import vtkCellArray from '../../Common/Core/CellArray.js';
|
|
5
3
|
import vtkPolygon from '../../Common/DataModel/Polygon.js';
|
|
6
4
|
import vtkPolyData from '../../Common/DataModel/PolyData.js';
|
|
7
5
|
import { VtkDataTypes } from '../../Common/Core/DataArray/Constants.js';
|
|
8
6
|
import { vtkCCSMakePolysFromLines, vtkCCSJoinLooseEnds, vtkCCSFindTrueEdges, vtkCCSMakeHoleyPolys, vtkCCSCutHoleyPolys, vtkCCSSplitAtPinchPoints, vtkCCSTriangulate } from './ContourTriangulator/helper.js';
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var TRIANGULATION_ERROR_DISPLAY = false;
|
|
8
|
+
const {
|
|
9
|
+
vtkErrorMacro
|
|
10
|
+
} = macro;
|
|
11
|
+
const TRIANGULATION_ERROR_DISPLAY = false;
|
|
15
12
|
|
|
13
|
+
//------------------------------------------------------------------------------
|
|
16
14
|
function triangulateContours(polyData, firstLine, numLines, polys, normal) {
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
let triangulatePolys = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
|
|
16
|
+
let triangulationFailure = false;
|
|
19
17
|
|
|
18
|
+
// If no cut lines were generated, there's nothing to do
|
|
20
19
|
if (numLines <= 0) {
|
|
21
20
|
return false;
|
|
22
21
|
}
|
|
22
|
+
const points = polyData.getPoints();
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
// Join all the new lines into connected groups, i.e. polygons.
|
|
25
25
|
// If we are lucky these will be simple, convex polygons. But
|
|
26
26
|
// we can't count on that.
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
vtkCCSMakePolysFromLines(polyData, firstLine, firstLine + numLines, oriented, newPolys, incompletePolys);
|
|
32
|
-
|
|
33
|
-
var computedNormal = normal;
|
|
28
|
+
const newPolys = [];
|
|
29
|
+
const incompletePolys = [];
|
|
30
|
+
const oriented = normal?.length < 3;
|
|
31
|
+
vtkCCSMakePolysFromLines(polyData, firstLine, firstLine + numLines, oriented, newPolys, incompletePolys);
|
|
34
32
|
|
|
33
|
+
// if no normal specified, then compute one from largest contour
|
|
34
|
+
let computedNormal = normal;
|
|
35
35
|
if (!oriented) {
|
|
36
36
|
computedNormal = [0, 0, 1];
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var norm = vtkPolygon.getNormal(newPolys[i], points, n);
|
|
42
|
-
|
|
37
|
+
let maxnorm = 0;
|
|
38
|
+
const n = [];
|
|
39
|
+
for (let i = 0; i < newPolys.length; i++) {
|
|
40
|
+
const norm = vtkPolygon.getNormal(newPolys[i], points, n);
|
|
43
41
|
if (norm > maxnorm) {
|
|
44
42
|
maxnorm = norm;
|
|
45
43
|
computedNormal[0] = n[0];
|
|
@@ -47,116 +45,112 @@ function triangulateContours(polyData, firstLine, numLines, polys, normal) {
|
|
|
47
45
|
computedNormal[2] = n[2];
|
|
48
46
|
}
|
|
49
47
|
}
|
|
50
|
-
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Join any loose ends. If the input was a closed surface then there
|
|
51
51
|
// will not be any loose ends, so this is provided as a service to users
|
|
52
52
|
// who want to clip a non-closed surface.
|
|
53
|
+
vtkCCSJoinLooseEnds(newPolys, incompletePolys, points, computedNormal);
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
vtkCCSJoinLooseEnds(newPolys, incompletePolys, points, computedNormal); // Some points might be in the middle of straight line segments.
|
|
55
|
+
// Some points might be in the middle of straight line segments.
|
|
56
56
|
// These points can be removed without changing the shape of the
|
|
57
57
|
// polys, and removing them makes triangulation more stable.
|
|
58
58
|
// Unfortunately removing these points also means that the polys
|
|
59
59
|
// will no longer form a watertight cap over the cut.
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
vtkCCSFindTrueEdges(newPolys, points, polyEdges, originalEdges);
|
|
61
|
+
const polyEdges = [];
|
|
62
|
+
const originalEdges = [];
|
|
63
|
+
vtkCCSFindTrueEdges(newPolys, points, polyEdges, originalEdges);
|
|
64
|
+
|
|
65
|
+
// Next we have to check for polygons with holes, i.e. polygons that
|
|
64
66
|
// have other polygons inside. Each polygon is "grouped" with the
|
|
65
67
|
// polygons that make up its holes.
|
|
66
|
-
// Initialize each group to hold just one polygon.
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
// Initialize each group to hold just one polygon.
|
|
70
|
+
const numNewPolys = newPolys.length;
|
|
71
|
+
const polyGroups = new Array(numNewPolys);
|
|
72
|
+
for (let i = 0; i < numNewPolys; i++) {
|
|
73
|
+
polyGroups[i] = [i];
|
|
74
|
+
}
|
|
70
75
|
|
|
71
|
-
|
|
72
|
-
polyGroups[_i] = [_i];
|
|
73
|
-
} // Find out which polys are holes in larger polys. Create a group
|
|
76
|
+
// Find out which polys are holes in larger polys. Create a group
|
|
74
77
|
// for each poly where the first member of the group is the larger
|
|
75
78
|
// poly, and all other members are the holes. The number of polyGroups
|
|
76
79
|
// will be the same as the number of polys, and any polys that are
|
|
77
80
|
// holes will have a matching empty group.
|
|
78
81
|
|
|
82
|
+
vtkCCSMakeHoleyPolys(newPolys, points, polyGroups, polyEdges, originalEdges, computedNormal, oriented);
|
|
79
83
|
|
|
80
|
-
|
|
84
|
+
// Make cuts to create simple polygons out of the holey polys.
|
|
81
85
|
// After this is done, each polyGroup will have exactly 1 polygon,
|
|
82
86
|
// and no polys will be holes. This is currently the most computationally
|
|
83
87
|
// expensive part of the process.
|
|
84
88
|
|
|
85
89
|
if (!vtkCCSCutHoleyPolys(newPolys, points, polyGroups, polyEdges, computedNormal)) {
|
|
86
90
|
triangulationFailure = true;
|
|
87
|
-
}
|
|
91
|
+
}
|
|
88
92
|
|
|
93
|
+
// Some polys might be self-intersecting. Split the polys at each intersection point.
|
|
94
|
+
vtkCCSSplitAtPinchPoints(newPolys, points, polyGroups, polyEdges, computedNormal, oriented);
|
|
89
95
|
|
|
90
|
-
|
|
91
|
-
// Go through all polys and triangulate them
|
|
96
|
+
// ------ Triangulation code ------
|
|
92
97
|
|
|
93
|
-
|
|
98
|
+
// Go through all polys and triangulate them
|
|
99
|
+
for (let polyId = 0; polyId < polyGroups.length; polyId++) {
|
|
94
100
|
// If group is empty, then poly was a hole without a containing poly
|
|
95
101
|
if (polyGroups[polyId].length === 0) {
|
|
96
102
|
// eslint-disable-next-line no-continue
|
|
97
103
|
continue;
|
|
98
104
|
}
|
|
99
|
-
|
|
100
105
|
if (!triangulatePolys) {
|
|
101
106
|
polys.insertNextCell(originalEdges.slice(1, originalEdges.length));
|
|
102
107
|
} else if (!vtkCCSTriangulate(newPolys[polyId], points, polyEdges[polyId], originalEdges, polys, computedNormal)) {
|
|
103
|
-
triangulationFailure = false;
|
|
108
|
+
triangulationFailure = false;
|
|
104
109
|
}
|
|
105
110
|
}
|
|
106
|
-
|
|
107
111
|
return !triangulationFailure;
|
|
108
|
-
}
|
|
109
|
-
|
|
112
|
+
}
|
|
110
113
|
|
|
114
|
+
// ---------------------------------------------------
|
|
111
115
|
function triangulatePolygon(polygon, points, triangles) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
var polyEdges = [];
|
|
116
|
+
const poly = [...polygon];
|
|
117
|
+
const polys = [poly];
|
|
118
|
+
const originalEdges = [];
|
|
119
|
+
const polyEdges = [];
|
|
117
120
|
vtkCCSFindTrueEdges(polys, points, polyEdges, originalEdges);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
const edges = polyEdges[0];
|
|
122
|
+
let success = true;
|
|
123
|
+
const normal = [];
|
|
124
|
+
const norm = vtkPolygon.getNormal(poly, points, normal);
|
|
123
125
|
if (norm !== 0) {
|
|
124
126
|
success = vtkCCSTriangulate(poly, points, edges, originalEdges, triangles, normal);
|
|
125
127
|
}
|
|
126
|
-
|
|
127
128
|
return success;
|
|
128
129
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
triangulatePolygon: triangulatePolygon
|
|
130
|
+
const STATIC = {
|
|
131
|
+
triangulateContours,
|
|
132
|
+
triangulatePolygon
|
|
133
133
|
};
|
|
134
|
-
|
|
135
134
|
function vtkContourTriangulator(publicAPI, model) {
|
|
136
135
|
// Set our className
|
|
137
136
|
model.classHierarchy.push('vtkContourTriangulator');
|
|
138
|
-
|
|
139
|
-
publicAPI.requestData = function (inData, outData) {
|
|
137
|
+
publicAPI.requestData = (inData, outData) => {
|
|
140
138
|
// implement requestData
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
139
|
+
const input = inData[0];
|
|
140
|
+
// FIXME: do not instantiate a new polydata each time the filter is executed.
|
|
141
|
+
const output = vtkPolyData.newInstance();
|
|
144
142
|
outData[0] = output;
|
|
145
|
-
|
|
146
143
|
if (!input) {
|
|
147
144
|
vtkErrorMacro('Invalid or missing input');
|
|
148
145
|
return false;
|
|
149
146
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
var lines = input.getLines();
|
|
153
|
-
|
|
147
|
+
let triangulationError = false;
|
|
148
|
+
const lines = input.getLines();
|
|
154
149
|
if (lines == null || lines.getNumberOfCells() === 0) {
|
|
155
150
|
return true;
|
|
156
151
|
}
|
|
157
|
-
|
|
158
152
|
input.buildCells();
|
|
159
|
-
|
|
153
|
+
const polysArray = vtkCellArray.newInstance({
|
|
160
154
|
dataType: VtkDataTypes.DOUBLE,
|
|
161
155
|
empty: true
|
|
162
156
|
});
|
|
@@ -164,39 +158,48 @@ function vtkContourTriangulator(publicAPI, model) {
|
|
|
164
158
|
output.setPoints(input.getPoints());
|
|
165
159
|
output.getPointData().passData(input.getPointData());
|
|
166
160
|
triangulationError = !triangulateContours(input, input.getNumberOfVerts(), lines.getNumberOfCells(), polysArray, null, model.triangulatePolys);
|
|
167
|
-
|
|
168
161
|
if (triangulationError && TRIANGULATION_ERROR_DISPLAY) {
|
|
169
162
|
vtkErrorMacro('Triangulation failed, output might have holes.');
|
|
170
163
|
}
|
|
171
|
-
|
|
172
164
|
return true;
|
|
173
165
|
};
|
|
174
|
-
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// ----------------------------------------------------------------------------
|
|
175
169
|
// Object factory
|
|
176
170
|
// ----------------------------------------------------------------------------
|
|
177
171
|
|
|
178
|
-
|
|
179
|
-
var DEFAULT_VALUES = {
|
|
172
|
+
const DEFAULT_VALUES = {
|
|
180
173
|
triangulatePolys: true
|
|
181
|
-
};
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
// ----------------------------------------------------------------------------
|
|
182
177
|
|
|
183
178
|
function extend(publicAPI, model) {
|
|
184
|
-
|
|
185
|
-
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
179
|
+
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
180
|
+
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
186
181
|
|
|
187
|
-
|
|
182
|
+
// Make this a VTK object
|
|
183
|
+
macro.obj(publicAPI, model);
|
|
188
184
|
|
|
185
|
+
// Also make it an algorithm with one input and one output
|
|
189
186
|
macro.algo(publicAPI, model, 1, 1);
|
|
190
|
-
macro.setGet(publicAPI, model, ['triangulatePolys']);
|
|
187
|
+
macro.setGet(publicAPI, model, ['triangulatePolys']);
|
|
191
188
|
|
|
189
|
+
// Object specific methods
|
|
192
190
|
vtkContourTriangulator(publicAPI, model);
|
|
193
|
-
}
|
|
191
|
+
}
|
|
194
192
|
|
|
195
|
-
|
|
193
|
+
// ----------------------------------------------------------------------------
|
|
194
|
+
|
|
195
|
+
const newInstance = macro.newInstance(extend, 'vtkContourTriangulator');
|
|
196
196
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
197
|
+
// ----------------------------------------------------------------------------
|
|
198
|
+
|
|
199
|
+
var vtkContourTriangulator$1 = {
|
|
200
|
+
newInstance,
|
|
201
|
+
extend,
|
|
202
|
+
...STATIC
|
|
203
|
+
};
|
|
201
204
|
|
|
202
205
|
export { STATIC, vtkContourTriangulator$1 as default, extend, newInstance };
|
|
@@ -1,158 +1,157 @@
|
|
|
1
|
-
import
|
|
2
|
-
import macro from '../../macros.js';
|
|
1
|
+
import { m as macro } from '../../macros2.js';
|
|
3
2
|
import vtkImageData from '../../Common/DataModel/ImageData.js';
|
|
4
3
|
import vtkDataArray from '../../Common/Core/DataArray.js';
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
const {
|
|
6
|
+
vtkErrorMacro
|
|
7
|
+
} = macro;
|
|
8
|
+
|
|
9
|
+
// ----------------------------------------------------------------------------
|
|
7
10
|
// vtkImageCropFilter methods
|
|
8
11
|
// ----------------------------------------------------------------------------
|
|
9
12
|
|
|
10
13
|
function vtkImageCropFilter(publicAPI, model) {
|
|
11
14
|
// Set our className
|
|
12
|
-
model.classHierarchy.push('vtkImageCropFilter');
|
|
15
|
+
model.classHierarchy.push('vtkImageCropFilter');
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
var data = publicAPI.getInputData();
|
|
17
|
+
// --------------------------------------------------------------------------
|
|
16
18
|
|
|
19
|
+
publicAPI.reset = () => {
|
|
20
|
+
const data = publicAPI.getInputData();
|
|
17
21
|
if (data) {
|
|
18
|
-
publicAPI.setCroppingPlanes
|
|
22
|
+
publicAPI.setCroppingPlanes(...data.getExtent());
|
|
19
23
|
}
|
|
20
|
-
};
|
|
24
|
+
};
|
|
21
25
|
|
|
26
|
+
// --------------------------------------------------------------------------
|
|
22
27
|
|
|
23
|
-
publicAPI.requestData =
|
|
28
|
+
publicAPI.requestData = (inData, outData) => {
|
|
24
29
|
// implement requestData
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
const input = inData[0];
|
|
27
31
|
if (!input) {
|
|
28
32
|
vtkErrorMacro('Invalid or missing input');
|
|
29
33
|
return;
|
|
30
34
|
}
|
|
31
|
-
|
|
32
|
-
var scalars = input.getPointData().getScalars();
|
|
33
|
-
|
|
35
|
+
const scalars = input.getPointData().getScalars();
|
|
34
36
|
if (!scalars) {
|
|
35
37
|
vtkErrorMacro('No scalars from input');
|
|
36
38
|
return;
|
|
37
39
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var cropped = model.croppingPlanes && model.croppingPlanes.length === 6 ? extent.map(function (e, i) {
|
|
40
|
+
const extent = input.getExtent();
|
|
41
|
+
const cropped = model.croppingPlanes && model.croppingPlanes.length === 6 ? extent.map((e, i) => {
|
|
41
42
|
if (i % 2 === 0) {
|
|
42
43
|
// min plane
|
|
43
44
|
return Math.max(e, Math.round(model.croppingPlanes[i]));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
}
|
|
46
|
+
// max plane
|
|
47
47
|
return Math.min(e, Math.round(model.croppingPlanes[i]));
|
|
48
48
|
}) : extent.slice();
|
|
49
|
-
|
|
50
49
|
if (cropped[0] === extent[0] && cropped[1] === extent[1] && cropped[2] === extent[2] && cropped[3] === extent[3] && cropped[4] === extent[4] && cropped[5] === extent[5]) {
|
|
51
|
-
|
|
50
|
+
const sameAsInput = vtkImageData.newInstance();
|
|
52
51
|
sameAsInput.shallowCopy(input); // Force new mtime
|
|
53
|
-
|
|
54
52
|
outData[0] = sameAsInput;
|
|
55
53
|
return;
|
|
56
|
-
}
|
|
57
|
-
|
|
54
|
+
}
|
|
58
55
|
|
|
59
|
-
|
|
56
|
+
// reorder if needed
|
|
57
|
+
for (let i = 0; i < 3; ++i) {
|
|
60
58
|
if (cropped[i * 2] > cropped[i * 2 + 1]) {
|
|
61
|
-
|
|
62
|
-
cropped[i * 2] = _ref[0];
|
|
63
|
-
cropped[i * 2 + 1] = _ref[1];
|
|
59
|
+
[cropped[i * 2], cropped[i * 2 + 1]] = [cropped[i * 2 + 1], cropped[i * 2]];
|
|
64
60
|
}
|
|
65
|
-
}
|
|
66
|
-
|
|
61
|
+
}
|
|
67
62
|
|
|
68
|
-
|
|
63
|
+
// restrict crop bounds based on extent bounds
|
|
64
|
+
for (let i = 0; i < 6; i += 2) {
|
|
69
65
|
// min case
|
|
70
|
-
cropped[
|
|
71
|
-
|
|
72
|
-
cropped[
|
|
66
|
+
cropped[i] = Math.max(cropped[i], extent[i]);
|
|
67
|
+
// max case
|
|
68
|
+
cropped[i + 1] = Math.min(cropped[i + 1], extent[i + 1]);
|
|
73
69
|
}
|
|
70
|
+
const numberOfComponents = scalars.getNumberOfComponents();
|
|
71
|
+
const componentSize = (cropped[1] - cropped[0] + 1) * (cropped[3] - cropped[2] + 1) * (cropped[5] - cropped[4] + 1) * numberOfComponents;
|
|
72
|
+
const scalarsData = scalars.getData();
|
|
73
|
+
const dims = input.getDimensions();
|
|
74
|
+
const jStride = numberOfComponents * dims[0];
|
|
75
|
+
const kStride = numberOfComponents * dims[0] * dims[1];
|
|
76
|
+
const beginOffset = (cropped[0] - extent[0]) * numberOfComponents;
|
|
77
|
+
const stripSize = (cropped[1] - cropped[0] + 1) * numberOfComponents; // +1 because subarray end is exclusive
|
|
74
78
|
|
|
75
|
-
var numberOfComponents = scalars.getNumberOfComponents();
|
|
76
|
-
var componentSize = (cropped[1] - cropped[0] + 1) * (cropped[3] - cropped[2] + 1) * (cropped[5] - cropped[4] + 1) * numberOfComponents;
|
|
77
|
-
var scalarsData = scalars.getData();
|
|
78
|
-
var dims = input.getDimensions();
|
|
79
|
-
var jStride = numberOfComponents * dims[0];
|
|
80
|
-
var kStride = numberOfComponents * dims[0] * dims[1];
|
|
81
|
-
var beginOffset = (cropped[0] - extent[0]) * numberOfComponents;
|
|
82
|
-
var stripSize = (cropped[1] - cropped[0] + 1) * numberOfComponents; // +1 because subarray end is exclusive
|
|
83
79
|
// crop image
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
var end = begin + stripSize;
|
|
92
|
-
var slice = scalarsData.subarray(begin, end);
|
|
80
|
+
const croppedArray = new scalarsData.constructor(componentSize);
|
|
81
|
+
let index = 0;
|
|
82
|
+
for (let k = cropped[4]; k <= cropped[5]; ++k) {
|
|
83
|
+
for (let j = cropped[2]; j <= cropped[3]; ++j) {
|
|
84
|
+
const begin = beginOffset + (j - extent[2]) * jStride + (k - extent[4]) * kStride;
|
|
85
|
+
const end = begin + stripSize;
|
|
86
|
+
const slice = scalarsData.subarray(begin, end);
|
|
93
87
|
croppedArray.set(slice, index);
|
|
94
88
|
index += slice.length;
|
|
95
89
|
}
|
|
96
90
|
}
|
|
97
|
-
|
|
98
|
-
var outImage = vtkImageData.newInstance({
|
|
91
|
+
const outImage = vtkImageData.newInstance({
|
|
99
92
|
extent: cropped,
|
|
100
93
|
origin: input.getOrigin(),
|
|
101
94
|
direction: input.getDirection(),
|
|
102
95
|
spacing: input.getSpacing()
|
|
103
96
|
});
|
|
104
|
-
|
|
97
|
+
const croppedScalars = vtkDataArray.newInstance({
|
|
105
98
|
name: scalars.getName(),
|
|
106
|
-
numberOfComponents
|
|
99
|
+
numberOfComponents,
|
|
107
100
|
values: croppedArray
|
|
108
101
|
});
|
|
109
102
|
outImage.getPointData().setScalars(croppedScalars);
|
|
110
103
|
outData[0] = outImage;
|
|
111
104
|
};
|
|
112
|
-
|
|
113
|
-
publicAPI.isResetAvailable = function () {
|
|
105
|
+
publicAPI.isResetAvailable = () => {
|
|
114
106
|
if (model.croppingPlanes == null || model.croppingPlanes.length === 0) {
|
|
115
107
|
return false;
|
|
116
108
|
}
|
|
117
|
-
|
|
118
|
-
var data = publicAPI.getInputData();
|
|
119
|
-
|
|
109
|
+
const data = publicAPI.getInputData();
|
|
120
110
|
if (data) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return Math.abs(model.croppingPlanes[i] - v) > Number.EPSILON;
|
|
124
|
-
});
|
|
111
|
+
const originalExtent = data.getExtent();
|
|
112
|
+
const findDifference = originalExtent.find((v, i) => Math.abs(model.croppingPlanes[i] - v) > Number.EPSILON);
|
|
125
113
|
return findDifference !== undefined;
|
|
126
114
|
}
|
|
127
|
-
|
|
128
115
|
return false;
|
|
129
116
|
};
|
|
130
|
-
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// ----------------------------------------------------------------------------
|
|
131
120
|
// Object factory
|
|
132
121
|
// ----------------------------------------------------------------------------
|
|
133
122
|
|
|
123
|
+
const DEFAULT_VALUES = {
|
|
124
|
+
// croppingPlanes: null,
|
|
125
|
+
};
|
|
134
126
|
|
|
135
|
-
|
|
136
|
-
}; // ----------------------------------------------------------------------------
|
|
127
|
+
// ----------------------------------------------------------------------------
|
|
137
128
|
|
|
138
129
|
function extend(publicAPI, model) {
|
|
139
|
-
|
|
140
|
-
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
130
|
+
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
131
|
+
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
141
132
|
|
|
142
|
-
|
|
133
|
+
// Make this a VTK object
|
|
134
|
+
macro.obj(publicAPI, model);
|
|
143
135
|
|
|
144
|
-
|
|
136
|
+
// Also make it an algorithm with one input and one output
|
|
137
|
+
macro.algo(publicAPI, model, 1, 1);
|
|
145
138
|
|
|
146
|
-
|
|
139
|
+
// no orientation support yet
|
|
140
|
+
macro.setGetArray(publicAPI, model, ['croppingPlanes'], 6);
|
|
147
141
|
|
|
142
|
+
// Object specific methods
|
|
148
143
|
vtkImageCropFilter(publicAPI, model);
|
|
149
|
-
}
|
|
144
|
+
}
|
|
150
145
|
|
|
151
|
-
|
|
146
|
+
// ----------------------------------------------------------------------------
|
|
147
|
+
|
|
148
|
+
const newInstance = macro.newInstance(extend, 'vtkImageCropFilter');
|
|
149
|
+
|
|
150
|
+
// ----------------------------------------------------------------------------
|
|
152
151
|
|
|
153
152
|
var vtkImageCropFilter$1 = {
|
|
154
|
-
newInstance
|
|
155
|
-
extend
|
|
153
|
+
newInstance,
|
|
154
|
+
extend
|
|
156
155
|
};
|
|
157
156
|
|
|
158
157
|
export { vtkImageCropFilter$1 as default, extend, newInstance };
|
|
@@ -1,82 +1,88 @@
|
|
|
1
|
-
import
|
|
2
|
-
import macro from '../../macros.js';
|
|
1
|
+
import { m as macro } from '../../macros2.js';
|
|
3
2
|
import vtkCubeSource from '../Sources/CubeSource.js';
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
const {
|
|
5
|
+
vtkErrorMacro
|
|
6
|
+
} = macro;
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
var vtkErrorMacro = macro.vtkErrorMacro; // ----------------------------------------------------------------------------
|
|
8
|
+
// ----------------------------------------------------------------------------
|
|
9
9
|
// vtkImageDataOutlineFilter methods
|
|
10
10
|
// ----------------------------------------------------------------------------
|
|
11
11
|
|
|
12
12
|
function vtkImageDataOutlineFilter(publicAPI, model) {
|
|
13
13
|
// Set our className
|
|
14
|
-
model.classHierarchy.push('vtkImageDataOutlineFilter');
|
|
15
|
-
|
|
16
|
-
var superClass = _objectSpread({}, publicAPI);
|
|
14
|
+
model.classHierarchy.push('vtkImageDataOutlineFilter');
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
// Capture "parentClass" api for internal use
|
|
17
|
+
const superClass = {
|
|
18
|
+
...publicAPI
|
|
19
|
+
};
|
|
20
|
+
publicAPI.requestData = (inData, outData) => {
|
|
19
21
|
// implement requestData
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
const input = inData[0];
|
|
22
23
|
if (!input || !input.isA('vtkImageData')) {
|
|
23
24
|
vtkErrorMacro('Invalid or missing input');
|
|
24
25
|
return;
|
|
25
|
-
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// First create a cube polydata in the index-space of the image.
|
|
26
29
|
// The benefit of using `getSpatialExtent` call is that it automatically
|
|
27
30
|
// takes care of 0.5 voxel padding as required by an vtkImageData representation.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var spatialExt = input.getSpatialExtent();
|
|
31
|
-
|
|
31
|
+
const spatialExt = input.getSpatialExtent();
|
|
32
32
|
if (!spatialExt) {
|
|
33
33
|
vtkErrorMacro('Unable to fetch spatial extents of input image.');
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
+
model._cubeSource.setBounds(spatialExt);
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
// Then apply index-to-world transform to the cube to create the outline.
|
|
40
39
|
model._cubeSource.setMatrix(input.getIndexToWorld());
|
|
41
|
-
|
|
42
40
|
outData[0] = model._cubeSource.getOutputData();
|
|
43
41
|
};
|
|
42
|
+
publicAPI.getMTime = () => Math.max(superClass.getMTime(), model._cubeSource.getMTime());
|
|
44
43
|
|
|
45
|
-
|
|
46
|
-
return Math.max(superClass.getMTime(), model._cubeSource.getMTime());
|
|
47
|
-
}; // Forward calls for [set/get]Generate[Faces/Lines] functions to cubeSource:
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
// Forward calls for [set/get]Generate[Faces/Lines] functions to cubeSource:
|
|
50
45
|
publicAPI.setGenerateFaces = model._cubeSource.setGenerateFaces;
|
|
51
46
|
publicAPI.setGenerateLines = model._cubeSource.setGenerateLines;
|
|
52
47
|
publicAPI.getGenerateFaces = model._cubeSource.getGenerateFaces;
|
|
53
48
|
publicAPI.getGenerateLines = model._cubeSource.getGenerateLines;
|
|
54
|
-
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// ----------------------------------------------------------------------------
|
|
55
52
|
// Object factory
|
|
56
53
|
// ----------------------------------------------------------------------------
|
|
57
54
|
|
|
55
|
+
const DEFAULT_VALUES = {};
|
|
58
56
|
|
|
59
|
-
|
|
57
|
+
// ----------------------------------------------------------------------------
|
|
60
58
|
|
|
61
59
|
function extend(publicAPI, model) {
|
|
62
|
-
|
|
63
|
-
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
60
|
+
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
61
|
+
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
64
62
|
|
|
65
|
-
|
|
63
|
+
// Make this a VTK object
|
|
64
|
+
macro.obj(publicAPI, model);
|
|
66
65
|
|
|
67
|
-
|
|
66
|
+
// Also make it an algorithm with one input and one output
|
|
67
|
+
macro.algo(publicAPI, model, 1, 1);
|
|
68
68
|
|
|
69
|
+
// Internal persistent objects
|
|
69
70
|
model._cubeSource = vtkCubeSource.newInstance();
|
|
70
|
-
macro.moveToProtected(publicAPI, model, ['cubeSource', 'tmpOut']);
|
|
71
|
+
macro.moveToProtected(publicAPI, model, ['cubeSource', 'tmpOut']);
|
|
71
72
|
|
|
73
|
+
// Object specific methods
|
|
72
74
|
vtkImageDataOutlineFilter(publicAPI, model);
|
|
73
|
-
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// ----------------------------------------------------------------------------
|
|
74
78
|
|
|
75
|
-
|
|
79
|
+
const newInstance = macro.newInstance(extend, 'vtkImageDataOutlineFilter');
|
|
80
|
+
|
|
81
|
+
// ----------------------------------------------------------------------------
|
|
76
82
|
|
|
77
83
|
var vtkImageDataOutlineFilter$1 = {
|
|
78
|
-
newInstance
|
|
79
|
-
extend
|
|
84
|
+
newInstance,
|
|
85
|
+
extend
|
|
80
86
|
};
|
|
81
87
|
|
|
82
88
|
export { vtkImageDataOutlineFilter$1 as default, extend, newInstance };
|