@kitware/vtk.js 28.10.2 → 28.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +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/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,16 +1,21 @@
|
|
|
1
|
-
import macro from '../../
|
|
1
|
+
import { m as macro } from '../../macros2.js';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const {
|
|
4
|
+
vtkErrorMacro
|
|
5
|
+
} = macro;
|
|
6
|
+
|
|
7
|
+
// ----------------------------------------------------------------------------
|
|
4
8
|
// vtkPiecewiseFunction methods
|
|
5
9
|
// ----------------------------------------------------------------------------
|
|
6
10
|
|
|
7
11
|
function vtkPiecewiseFunction(publicAPI, model) {
|
|
8
12
|
// Set our className
|
|
9
|
-
model.classHierarchy.push('vtkPiecewiseFunction');
|
|
13
|
+
model.classHierarchy.push('vtkPiecewiseFunction');
|
|
14
|
+
|
|
15
|
+
// Return the number of points which specify this function
|
|
16
|
+
publicAPI.getSize = () => model.nodes.length;
|
|
10
17
|
|
|
11
|
-
|
|
12
|
-
return model.nodes.length;
|
|
13
|
-
}; // Return the type of function stored in object:
|
|
18
|
+
// Return the type of function stored in object:
|
|
14
19
|
// Function Types:
|
|
15
20
|
// 0 : Constant (No change in slope between end points)
|
|
16
21
|
// 1 : NonDecreasing (Always increasing or zero slope)
|
|
@@ -18,20 +23,17 @@ function vtkPiecewiseFunction(publicAPI, model) {
|
|
|
18
23
|
// 3 : Varied (Contains both decreasing and increasing slopes)
|
|
19
24
|
// 4 : Unknown (Error condition)
|
|
20
25
|
//
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var prevValue = 0.0;
|
|
26
|
-
var functionType = 0;
|
|
27
|
-
|
|
26
|
+
publicAPI.getType = () => {
|
|
27
|
+
let value;
|
|
28
|
+
let prevValue = 0.0;
|
|
29
|
+
let functionType = 0;
|
|
28
30
|
if (model.nodes.length > 0) {
|
|
29
31
|
prevValue = model.nodes[0].y;
|
|
30
32
|
}
|
|
33
|
+
for (let i = 1; i < model.nodes.length; i++) {
|
|
34
|
+
value = model.nodes[i].y;
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
value = model.nodes[i].y; // Do not change the function type if equal
|
|
34
|
-
|
|
36
|
+
// Do not change the function type if equal
|
|
35
37
|
if (value !== prevValue) {
|
|
36
38
|
if (value > prevValue) {
|
|
37
39
|
switch (functionType) {
|
|
@@ -40,7 +42,6 @@ function vtkPiecewiseFunction(publicAPI, model) {
|
|
|
40
42
|
// NonDecreasing
|
|
41
43
|
functionType = 1;
|
|
42
44
|
break;
|
|
43
|
-
|
|
44
45
|
case 2:
|
|
45
46
|
default:
|
|
46
47
|
// Varied
|
|
@@ -55,7 +56,6 @@ function vtkPiecewiseFunction(publicAPI, model) {
|
|
|
55
56
|
// NonIncreasing
|
|
56
57
|
functionType = 2;
|
|
57
58
|
break;
|
|
58
|
-
|
|
59
59
|
case 1:
|
|
60
60
|
default:
|
|
61
61
|
// Varied
|
|
@@ -64,70 +64,61 @@ function vtkPiecewiseFunction(publicAPI, model) {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
+
prevValue = value;
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
// Exit loop if we find a Varied function
|
|
70
70
|
if (functionType === 3) {
|
|
71
71
|
break;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
|
|
75
74
|
switch (functionType) {
|
|
76
75
|
case 0:
|
|
77
76
|
return 'Constant';
|
|
78
|
-
|
|
79
77
|
case 1:
|
|
80
78
|
return 'NonDecreasing';
|
|
81
|
-
|
|
82
79
|
case 2:
|
|
83
80
|
return 'NonIncreasing';
|
|
84
|
-
|
|
85
81
|
case 3:
|
|
86
82
|
default:
|
|
87
83
|
return 'Varied';
|
|
88
84
|
}
|
|
89
|
-
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// Since we no longer store the data in an array, we must
|
|
90
88
|
// copy out of the vector into an array. No modified check -
|
|
91
89
|
// could be added if performance is a problem
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
publicAPI.getDataPointer = function () {
|
|
95
|
-
var size = model.nodes.length;
|
|
90
|
+
publicAPI.getDataPointer = () => {
|
|
91
|
+
const size = model.nodes.length;
|
|
96
92
|
model.function = null;
|
|
97
|
-
|
|
98
93
|
if (size > 0) {
|
|
99
94
|
model.function = [];
|
|
100
|
-
|
|
101
|
-
for (var i = 0; i < size; i++) {
|
|
95
|
+
for (let i = 0; i < size; i++) {
|
|
102
96
|
model.function[2 * i] = model.nodes[i].x;
|
|
103
97
|
model.function[2 * i + 1] = model.nodes[i].y;
|
|
104
98
|
}
|
|
105
99
|
}
|
|
106
|
-
|
|
107
100
|
return model.function;
|
|
108
|
-
};
|
|
109
|
-
// function. Note that the value at this point may be zero.
|
|
110
|
-
|
|
101
|
+
};
|
|
111
102
|
|
|
112
|
-
|
|
103
|
+
// Returns the first point location which starts a non-zero segment of the
|
|
104
|
+
// function. Note that the value at this point may be zero.
|
|
105
|
+
publicAPI.getFirstNonZeroValue = () => {
|
|
113
106
|
// Check if no points specified
|
|
114
107
|
if (model.nodes.length === 0) {
|
|
115
108
|
return 0;
|
|
116
109
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
var i = 0;
|
|
121
|
-
|
|
110
|
+
let allZero = 1;
|
|
111
|
+
let x = 0.0;
|
|
112
|
+
let i = 0;
|
|
122
113
|
for (; i < model.nodes.length; i++) {
|
|
123
114
|
if (model.nodes[i].y !== 0.0) {
|
|
124
115
|
allZero = 0;
|
|
125
116
|
break;
|
|
126
117
|
}
|
|
127
|
-
}
|
|
128
|
-
// a large value
|
|
129
|
-
|
|
118
|
+
}
|
|
130
119
|
|
|
120
|
+
// If every specified point has a zero value then return
|
|
121
|
+
// a large value
|
|
131
122
|
if (allZero) {
|
|
132
123
|
x = Number.MAX_VALUE;
|
|
133
124
|
} else if (i > 0) {
|
|
@@ -142,348 +133,320 @@ function vtkPiecewiseFunction(publicAPI, model) {
|
|
|
142
133
|
} else {
|
|
143
134
|
x = model.nodes[0].x;
|
|
144
135
|
}
|
|
145
|
-
|
|
146
136
|
return x;
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
publicAPI.getNodeValue = function (index, val) {
|
|
151
|
-
var size = model.nodes.length;
|
|
137
|
+
};
|
|
152
138
|
|
|
139
|
+
// For a specified index value, get the node parameters
|
|
140
|
+
publicAPI.getNodeValue = (index, val) => {
|
|
141
|
+
const size = model.nodes.length;
|
|
153
142
|
if (index < 0 || index >= size) {
|
|
154
143
|
vtkErrorMacro('Index out of range!');
|
|
155
144
|
return -1;
|
|
156
145
|
}
|
|
157
|
-
|
|
158
146
|
val[0] = model.nodes[index].x;
|
|
159
147
|
val[1] = model.nodes[index].y;
|
|
160
148
|
val[2] = model.nodes[index].midpoint;
|
|
161
149
|
val[3] = model.nodes[index].sharpness;
|
|
162
150
|
return 1;
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
publicAPI.setNodeValue = function (index, val) {
|
|
167
|
-
var size = model.nodes.length;
|
|
151
|
+
};
|
|
168
152
|
|
|
153
|
+
// For a specified index value, get the node parameters
|
|
154
|
+
publicAPI.setNodeValue = (index, val) => {
|
|
155
|
+
const size = model.nodes.length;
|
|
169
156
|
if (index < 0 || index >= size) {
|
|
170
157
|
vtkErrorMacro('Index out of range!');
|
|
171
158
|
return -1;
|
|
172
159
|
}
|
|
173
|
-
|
|
174
|
-
var oldX = model.nodes[index].x;
|
|
160
|
+
const oldX = model.nodes[index].x;
|
|
175
161
|
model.nodes[index].x = val[0];
|
|
176
162
|
model.nodes[index].y = val[1];
|
|
177
163
|
model.nodes[index].midpoint = val[2];
|
|
178
164
|
model.nodes[index].sharpness = val[3];
|
|
179
|
-
|
|
180
165
|
if (oldX !== val[0]) {
|
|
181
166
|
// The point has been moved, the order of points or the range might have
|
|
182
167
|
// been modified.
|
|
183
|
-
publicAPI.sortAndUpdateRange();
|
|
168
|
+
publicAPI.sortAndUpdateRange();
|
|
169
|
+
// No need to call Modified() here because SortAndUpdateRange() has done it
|
|
184
170
|
// already.
|
|
185
171
|
} else {
|
|
186
172
|
publicAPI.modified();
|
|
187
173
|
}
|
|
188
|
-
|
|
189
174
|
return 1;
|
|
190
|
-
};
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
// Adds a point to the function. If a duplicate point is inserted
|
|
191
178
|
// then the function value at that location is set to the new value.
|
|
192
179
|
// This is the legacy version that assumes midpoint = 0.5 and
|
|
193
180
|
// sharpness = 0.0
|
|
181
|
+
publicAPI.addPoint = (x, y) => publicAPI.addPointLong(x, y, 0.5, 0.0);
|
|
194
182
|
|
|
195
|
-
|
|
196
|
-
publicAPI.
|
|
197
|
-
return publicAPI.addPointLong(x, y, 0.5, 0.0);
|
|
198
|
-
}; // Adds a point to the function and returns the array index of the point.
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
publicAPI.addPointLong = function (x, y, midpoint, sharpness) {
|
|
183
|
+
// Adds a point to the function and returns the array index of the point.
|
|
184
|
+
publicAPI.addPointLong = (x, y, midpoint, sharpness) => {
|
|
202
185
|
// Error check
|
|
203
186
|
if (midpoint < 0.0 || midpoint > 1.0) {
|
|
204
187
|
vtkErrorMacro('Midpoint outside range [0.0, 1.0]');
|
|
205
188
|
return -1;
|
|
206
189
|
}
|
|
207
|
-
|
|
208
190
|
if (sharpness < 0.0 || sharpness > 1.0) {
|
|
209
191
|
vtkErrorMacro('Sharpness outside range [0.0, 1.0]');
|
|
210
192
|
return -1;
|
|
211
|
-
}
|
|
212
|
-
|
|
193
|
+
}
|
|
213
194
|
|
|
195
|
+
// remove any node already at this X location
|
|
214
196
|
if (!model.allowDuplicateScalars) {
|
|
215
197
|
publicAPI.removePoint(x);
|
|
216
|
-
}
|
|
217
|
-
|
|
198
|
+
}
|
|
218
199
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
200
|
+
// Create the new node
|
|
201
|
+
const node = {
|
|
202
|
+
x,
|
|
203
|
+
y,
|
|
204
|
+
midpoint,
|
|
205
|
+
sharpness
|
|
206
|
+
};
|
|
225
207
|
|
|
208
|
+
// Add it, then sort to get everything in order
|
|
226
209
|
model.nodes.push(node);
|
|
227
|
-
publicAPI.sortAndUpdateRange();
|
|
228
|
-
|
|
229
|
-
var i;
|
|
210
|
+
publicAPI.sortAndUpdateRange();
|
|
230
211
|
|
|
212
|
+
// Now find this node so we can return the index
|
|
213
|
+
let i;
|
|
231
214
|
for (i = 0; i < model.nodes.length; i++) {
|
|
232
215
|
if (model.nodes[i].x === x) {
|
|
233
216
|
break;
|
|
234
217
|
}
|
|
235
|
-
}
|
|
236
|
-
// return -1
|
|
237
|
-
|
|
218
|
+
}
|
|
238
219
|
|
|
220
|
+
// If we didn't find it, something went horribly wrong so
|
|
221
|
+
// return -1
|
|
239
222
|
if (i < model.nodes.length) {
|
|
240
223
|
return i;
|
|
241
224
|
}
|
|
242
|
-
|
|
243
225
|
return -1;
|
|
244
226
|
};
|
|
245
|
-
|
|
246
|
-
publicAPI.setNodes = function (nodes) {
|
|
227
|
+
publicAPI.setNodes = nodes => {
|
|
247
228
|
if (model.nodes !== nodes) {
|
|
248
229
|
model.nodes = nodes;
|
|
249
230
|
publicAPI.sortAndUpdateRange();
|
|
250
231
|
}
|
|
251
|
-
};
|
|
252
|
-
// the Range
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
publicAPI.sortAndUpdateRange = function () {
|
|
256
|
-
model.nodes.sort(function (a, b) {
|
|
257
|
-
return a.x - b.x;
|
|
258
|
-
});
|
|
259
|
-
var modifiedInvoked = publicAPI.updateRange(); // If range is updated, Modified() has been called, don't call it again.
|
|
232
|
+
};
|
|
260
233
|
|
|
234
|
+
// Sort the vector in increasing order, then fill in
|
|
235
|
+
// the Range
|
|
236
|
+
publicAPI.sortAndUpdateRange = () => {
|
|
237
|
+
model.nodes.sort((a, b) => a.x - b.x);
|
|
238
|
+
const modifiedInvoked = publicAPI.updateRange();
|
|
239
|
+
// If range is updated, Modified() has been called, don't call it again.
|
|
261
240
|
if (!modifiedInvoked) {
|
|
262
241
|
publicAPI.modified();
|
|
263
242
|
}
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
publicAPI.updateRange = function () {
|
|
268
|
-
var oldRange = model.range.slice();
|
|
269
|
-
var size = model.nodes.length;
|
|
243
|
+
};
|
|
270
244
|
|
|
245
|
+
//----------------------------------------------------------------------------
|
|
246
|
+
publicAPI.updateRange = () => {
|
|
247
|
+
const oldRange = model.range.slice();
|
|
248
|
+
const size = model.nodes.length;
|
|
271
249
|
if (size) {
|
|
272
250
|
model.range[0] = model.nodes[0].x;
|
|
273
251
|
model.range[1] = model.nodes[size - 1].x;
|
|
274
252
|
} else {
|
|
275
253
|
model.range[0] = 0;
|
|
276
254
|
model.range[1] = 0;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
|
|
255
|
+
}
|
|
256
|
+
// If the rage is the same, then no need to call Modified()
|
|
280
257
|
if (oldRange[0] === model.range[0] && oldRange[1] === model.range[1]) {
|
|
281
258
|
return false;
|
|
282
259
|
}
|
|
283
|
-
|
|
284
260
|
publicAPI.modified();
|
|
285
261
|
return true;
|
|
286
|
-
};
|
|
287
|
-
// remains the same.
|
|
288
|
-
|
|
262
|
+
};
|
|
289
263
|
|
|
290
|
-
|
|
264
|
+
// Removes a point from the function. If no point is found then function
|
|
265
|
+
// remains the same.
|
|
266
|
+
publicAPI.removePoint = x => {
|
|
291
267
|
// First find the node since we need to know its
|
|
292
268
|
// index as our return value
|
|
293
|
-
|
|
294
|
-
|
|
269
|
+
let i;
|
|
295
270
|
for (i = 0; i < model.nodes.length; i++) {
|
|
296
271
|
if (model.nodes[i].x === x) {
|
|
297
272
|
break;
|
|
298
273
|
}
|
|
299
|
-
}
|
|
300
|
-
|
|
274
|
+
}
|
|
301
275
|
|
|
276
|
+
// If the node doesn't exist, we return -1
|
|
302
277
|
if (i >= model.nodes.length) {
|
|
303
278
|
return -1;
|
|
304
279
|
}
|
|
280
|
+
const retVal = i;
|
|
305
281
|
|
|
306
|
-
|
|
282
|
+
// If the first or last point has been removed, then we update the range
|
|
307
283
|
// No need to sort here as the order of points hasn't changed.
|
|
308
|
-
|
|
309
|
-
var modifiedInvoked = false;
|
|
284
|
+
let modifiedInvoked = false;
|
|
310
285
|
model.nodes.splice(i, 1);
|
|
311
|
-
|
|
312
286
|
if (i === 0 || i === model.nodes.length) {
|
|
313
287
|
modifiedInvoked = publicAPI.updateRange();
|
|
314
288
|
}
|
|
315
|
-
|
|
316
289
|
if (!modifiedInvoked) {
|
|
317
290
|
publicAPI.modified();
|
|
318
291
|
}
|
|
319
|
-
|
|
320
292
|
return retVal;
|
|
321
|
-
};
|
|
322
|
-
|
|
293
|
+
};
|
|
323
294
|
|
|
324
|
-
|
|
295
|
+
// Removes all points from the function.
|
|
296
|
+
publicAPI.removeAllPoints = () => {
|
|
325
297
|
model.nodes = [];
|
|
326
298
|
publicAPI.sortAndUpdateRange();
|
|
327
|
-
};
|
|
328
|
-
// Legacy method with no way to specify midpoint and sharpness
|
|
329
|
-
|
|
299
|
+
};
|
|
330
300
|
|
|
331
|
-
|
|
301
|
+
// Add in end points of line and remove any points between them
|
|
302
|
+
// Legacy method with no way to specify midpoint and sharpness
|
|
303
|
+
publicAPI.addSegment = (x1, y1, x2, y2) => {
|
|
332
304
|
// First, find all points in this range and remove them
|
|
333
305
|
publicAPI.sortAndUpdateRange();
|
|
334
|
-
|
|
335
|
-
for (var i = 0; i < model.nodes.length;) {
|
|
306
|
+
for (let i = 0; i < model.nodes.length;) {
|
|
336
307
|
if (model.nodes[i].x >= x1 && model.nodes[i].x <= x2) {
|
|
337
308
|
model.nodes.splice(i, 1);
|
|
338
309
|
} else {
|
|
339
310
|
i++;
|
|
340
311
|
}
|
|
341
|
-
}
|
|
342
|
-
|
|
312
|
+
}
|
|
343
313
|
|
|
314
|
+
// Now add the points
|
|
344
315
|
publicAPI.addPoint(x1, y1, 0.5, 0.0);
|
|
345
316
|
publicAPI.addPoint(x2, y2, 0.5, 0.0);
|
|
346
|
-
};
|
|
347
|
-
|
|
317
|
+
};
|
|
348
318
|
|
|
349
|
-
|
|
350
|
-
|
|
319
|
+
// Return the value of the function at a position
|
|
320
|
+
publicAPI.getValue = x => {
|
|
321
|
+
const table = [];
|
|
351
322
|
publicAPI.getTable(x, x, 1, table);
|
|
352
323
|
return table[0];
|
|
353
|
-
};
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
// Remove all points outside the range, and make sure a point
|
|
354
327
|
// exists at each end of the range. Used as a convenience method
|
|
355
328
|
// for transfer function editors
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
publicAPI.adjustRange = function (range) {
|
|
329
|
+
publicAPI.adjustRange = range => {
|
|
359
330
|
if (range.length < 2) {
|
|
360
331
|
return 0;
|
|
361
332
|
}
|
|
333
|
+
const functionRange = publicAPI.getRange();
|
|
362
334
|
|
|
363
|
-
|
|
364
|
-
|
|
335
|
+
// Make sure we have points at each end of the range
|
|
365
336
|
if (functionRange[0] < range[0]) {
|
|
366
337
|
publicAPI.addPoint(range[0], publicAPI.getValue(range[0]));
|
|
367
338
|
} else {
|
|
368
339
|
publicAPI.addPoint(range[0], publicAPI.getValue(functionRange[0]));
|
|
369
340
|
}
|
|
370
|
-
|
|
371
341
|
if (functionRange[1] > range[1]) {
|
|
372
342
|
publicAPI.addPoint(range[1], publicAPI.getValue(range[1]));
|
|
373
343
|
} else {
|
|
374
344
|
publicAPI.addPoint(range[1], publicAPI.getValue(functionRange[1]));
|
|
375
|
-
}
|
|
376
|
-
|
|
345
|
+
}
|
|
377
346
|
|
|
347
|
+
// Remove all points out-of-range
|
|
378
348
|
publicAPI.sortAndUpdateRange();
|
|
379
|
-
|
|
380
|
-
for (var i = 0; i < model.nodes.length;) {
|
|
349
|
+
for (let i = 0; i < model.nodes.length;) {
|
|
381
350
|
if (model.nodes[i].x >= range[0] && model.nodes[i].x <= range[1]) {
|
|
382
351
|
model.nodes.splice(i, 1);
|
|
383
352
|
} else {
|
|
384
353
|
++i;
|
|
385
354
|
}
|
|
386
355
|
}
|
|
387
|
-
|
|
388
356
|
publicAPI.sortAndUpdateRange();
|
|
389
357
|
return 1;
|
|
390
|
-
};
|
|
391
|
-
|
|
358
|
+
};
|
|
392
359
|
|
|
393
|
-
|
|
394
|
-
|
|
360
|
+
//--------------------------------------------------------------------------
|
|
361
|
+
publicAPI.estimateMinNumberOfSamples = (x1, x2) => {
|
|
362
|
+
const d = publicAPI.findMinimumXDistance();
|
|
395
363
|
return Math.ceil((x2 - x1) / d);
|
|
396
|
-
};
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
publicAPI.findMinimumXDistance = function () {
|
|
400
|
-
var size = model.nodes.length;
|
|
364
|
+
};
|
|
401
365
|
|
|
366
|
+
//----------------------------------------------------------------------------
|
|
367
|
+
publicAPI.findMinimumXDistance = () => {
|
|
368
|
+
const size = model.nodes.length;
|
|
402
369
|
if (size < 2) {
|
|
403
370
|
return -1.0;
|
|
404
371
|
}
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
for (var i = 0; i < size - 1; i++) {
|
|
409
|
-
var currentDist = model.nodes[i + 1].x - model.nodes[i].x;
|
|
410
|
-
|
|
372
|
+
let distance = model.nodes[1].x - model.nodes[0].x;
|
|
373
|
+
for (let i = 0; i < size - 1; i++) {
|
|
374
|
+
const currentDist = model.nodes[i + 1].x - model.nodes[i].x;
|
|
411
375
|
if (currentDist < distance) {
|
|
412
376
|
distance = currentDist;
|
|
413
377
|
}
|
|
414
378
|
}
|
|
415
|
-
|
|
416
379
|
return distance;
|
|
417
|
-
};
|
|
380
|
+
};
|
|
418
381
|
|
|
382
|
+
// Returns a table of function values evaluated at regular intervals
|
|
419
383
|
/* eslint-disable prefer-destructuring */
|
|
420
|
-
|
|
421
384
|
/* eslint-disable no-continue */
|
|
422
|
-
|
|
423
|
-
|
|
424
385
|
publicAPI.getTable = function (xStart, xEnd, size, table) {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
386
|
+
let stride = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
|
387
|
+
let i;
|
|
388
|
+
let idx = 0;
|
|
389
|
+
const numNodes = model.nodes.length;
|
|
390
|
+
|
|
391
|
+
// Need to keep track of the last value so that
|
|
429
392
|
// we can fill in table locations past this with
|
|
430
393
|
// this value if Clamping is On.
|
|
431
|
-
|
|
432
|
-
var lastValue = 0.0;
|
|
433
|
-
|
|
394
|
+
let lastValue = 0.0;
|
|
434
395
|
if (numNodes !== 0) {
|
|
435
396
|
lastValue = model.nodes[numNodes - 1].y;
|
|
436
397
|
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
398
|
+
let x = 0.0;
|
|
399
|
+
let x1 = 0.0;
|
|
400
|
+
let x2 = 0.0;
|
|
401
|
+
let y1 = 0.0;
|
|
402
|
+
let y2 = 0.0;
|
|
403
|
+
let midpoint = 0.0;
|
|
404
|
+
let sharpness = 0.0;
|
|
405
|
+
|
|
406
|
+
// For each table entry
|
|
446
407
|
for (i = 0; i < size; i++) {
|
|
447
408
|
// Find our location in the table
|
|
448
|
-
|
|
409
|
+
const tidx = stride * i;
|
|
410
|
+
|
|
411
|
+
// Find our X location. If we are taking only 1 sample, make
|
|
449
412
|
// it halfway between start and end (usually start and end will
|
|
450
413
|
// be the same in this case)
|
|
451
|
-
|
|
452
414
|
if (size > 1) {
|
|
453
415
|
x = xStart + i / (size - 1.0) * (xEnd - xStart);
|
|
454
416
|
} else {
|
|
455
417
|
x = 0.5 * (xStart + xEnd);
|
|
456
|
-
}
|
|
457
|
-
|
|
418
|
+
}
|
|
458
419
|
|
|
420
|
+
// Do we need to move to the next node?
|
|
459
421
|
while (idx < numNodes && x > model.nodes[idx].x) {
|
|
460
|
-
idx++;
|
|
422
|
+
idx++;
|
|
423
|
+
// If we are at a valid point index, fill in
|
|
461
424
|
// the value at this node, and the one before (the
|
|
462
425
|
// two that surround our current sample location)
|
|
463
426
|
// idx cannot be 0 since we just incremented it.
|
|
464
|
-
|
|
465
427
|
if (idx < numNodes) {
|
|
466
428
|
x1 = model.nodes[idx - 1].x;
|
|
467
429
|
x2 = model.nodes[idx].x;
|
|
468
430
|
y1 = model.nodes[idx - 1].y;
|
|
469
|
-
y2 = model.nodes[idx].y;
|
|
470
|
-
// since these control this region
|
|
431
|
+
y2 = model.nodes[idx].y;
|
|
471
432
|
|
|
433
|
+
// We only need the previous midpoint and sharpness
|
|
434
|
+
// since these control this region
|
|
472
435
|
midpoint = model.nodes[idx - 1].midpoint;
|
|
473
|
-
sharpness = model.nodes[idx - 1].sharpness;
|
|
474
|
-
// degenerate math
|
|
436
|
+
sharpness = model.nodes[idx - 1].sharpness;
|
|
475
437
|
|
|
438
|
+
// Move midpoint away from extreme ends of range to avoid
|
|
439
|
+
// degenerate math
|
|
476
440
|
if (midpoint < 0.00001) {
|
|
477
441
|
midpoint = 0.00001;
|
|
478
442
|
}
|
|
479
|
-
|
|
480
443
|
if (midpoint > 0.99999) {
|
|
481
444
|
midpoint = 0.99999;
|
|
482
445
|
}
|
|
483
446
|
}
|
|
484
|
-
}
|
|
485
|
-
|
|
447
|
+
}
|
|
486
448
|
|
|
449
|
+
// Are we at the end? If so, just use the last value
|
|
487
450
|
if (idx >= numNodes) {
|
|
488
451
|
table[tidx] = model.clamping ? lastValue : 0.0;
|
|
489
452
|
} else if (idx === 0) {
|
|
@@ -495,16 +458,17 @@ function vtkPiecewiseFunction(publicAPI, model) {
|
|
|
495
458
|
// we will be modifying this based on midpoint and
|
|
496
459
|
// sharpness to get the curve shape we want and to have
|
|
497
460
|
// it pass through (y1+y2)/2 at the midpoint.
|
|
498
|
-
|
|
461
|
+
let s = (x - x1) / (x2 - x1);
|
|
499
462
|
|
|
463
|
+
// Readjust based on the midpoint - linear adjustment
|
|
500
464
|
if (s < midpoint) {
|
|
501
465
|
s = 0.5 * s / midpoint;
|
|
502
466
|
} else {
|
|
503
467
|
s = 0.5 + 0.5 * (s - midpoint) / (1.0 - midpoint);
|
|
504
|
-
}
|
|
505
|
-
// In this case we just want piecewise constant
|
|
506
|
-
|
|
468
|
+
}
|
|
507
469
|
|
|
470
|
+
// override for sharpness > 0.99
|
|
471
|
+
// In this case we just want piecewise constant
|
|
508
472
|
if (sharpness > 0.99) {
|
|
509
473
|
// Use the first value since we are below the midpoint
|
|
510
474
|
if (s < 0.5) {
|
|
@@ -515,44 +479,48 @@ function vtkPiecewiseFunction(publicAPI, model) {
|
|
|
515
479
|
table[tidx] = y2;
|
|
516
480
|
continue;
|
|
517
481
|
}
|
|
518
|
-
}
|
|
519
|
-
// In this case we want piecewise linear
|
|
520
|
-
|
|
482
|
+
}
|
|
521
483
|
|
|
484
|
+
// Override for sharpness < 0.01
|
|
485
|
+
// In this case we want piecewise linear
|
|
522
486
|
if (sharpness < 0.01) {
|
|
523
487
|
// Simple linear interpolation
|
|
524
488
|
table[tidx] = (1 - s) * y1 + s * y2;
|
|
525
489
|
continue;
|
|
526
|
-
}
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
// We have a sharpness between [0.01, 0.99] - we will
|
|
527
493
|
// used a modified hermite curve interpolation where we
|
|
528
494
|
// derive the slope based on the sharpness, and we compress
|
|
529
495
|
// the curve non-linearly based on the sharpness
|
|
496
|
+
|
|
530
497
|
// First, we will adjust our position based on sharpness in
|
|
531
498
|
// order to make the curve sharper (closer to piecewise constant)
|
|
532
|
-
|
|
533
|
-
|
|
534
499
|
if (s < 0.5) {
|
|
535
|
-
s = 0.5 *
|
|
500
|
+
s = 0.5 * (s * 2) ** (1.0 + 10 * sharpness);
|
|
536
501
|
} else if (s > 0.5) {
|
|
537
|
-
s = 1.0 - 0.5 *
|
|
538
|
-
}
|
|
502
|
+
s = 1.0 - 0.5 * ((1.0 - s) * 2) ** (1 + 10 * sharpness);
|
|
503
|
+
}
|
|
539
504
|
|
|
505
|
+
// Compute some coefficients we will need for the hermite curve
|
|
506
|
+
const ss = s * s;
|
|
507
|
+
const sss = ss * s;
|
|
508
|
+
const h1 = 2 * sss - 3 * ss + 1;
|
|
509
|
+
const h2 = -2 * sss + 3 * ss;
|
|
510
|
+
const h3 = sss - 2 * ss + s;
|
|
511
|
+
const h4 = sss - ss;
|
|
540
512
|
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
var h2 = -2 * sss + 3 * ss;
|
|
545
|
-
var h3 = sss - 2 * ss + s;
|
|
546
|
-
var h4 = sss - ss; // Use one slope for both end points
|
|
513
|
+
// Use one slope for both end points
|
|
514
|
+
const slope = y2 - y1;
|
|
515
|
+
const t = (1.0 - sharpness) * slope;
|
|
547
516
|
|
|
548
|
-
|
|
549
|
-
|
|
517
|
+
// Compute the value
|
|
518
|
+
table[tidx] = h1 * y1 + h2 * y2 + h3 * t + h4 * t;
|
|
550
519
|
|
|
551
|
-
|
|
520
|
+
// Final error check to make sure we don't go outside
|
|
552
521
|
// the Y range
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
var max = y1 > y2 ? y1 : y2;
|
|
522
|
+
const min = y1 < y2 ? y1 : y2;
|
|
523
|
+
const max = y1 > y2 ? y1 : y2;
|
|
556
524
|
table[tidx] = table[tidx] < min ? min : table[tidx];
|
|
557
525
|
table[tidx] = table[tidx] > max ? max : table[tidx];
|
|
558
526
|
}
|
|
@@ -560,42 +528,53 @@ function vtkPiecewiseFunction(publicAPI, model) {
|
|
|
560
528
|
};
|
|
561
529
|
}
|
|
562
530
|
/* eslint-enable prefer-destructuring */
|
|
563
|
-
|
|
564
531
|
/* eslint-enable no-continue */
|
|
532
|
+
|
|
565
533
|
// ----------------------------------------------------------------------------
|
|
566
534
|
// Object factory
|
|
567
535
|
// ----------------------------------------------------------------------------
|
|
568
536
|
|
|
569
|
-
|
|
570
|
-
var DEFAULT_VALUES = {
|
|
537
|
+
const DEFAULT_VALUES = {
|
|
571
538
|
// model.function = NULL;
|
|
572
539
|
range: [0, 0],
|
|
573
540
|
clamping: true,
|
|
574
541
|
allowDuplicateScalars: false
|
|
575
|
-
};
|
|
542
|
+
};
|
|
543
|
+
|
|
544
|
+
// ----------------------------------------------------------------------------
|
|
576
545
|
|
|
577
546
|
function extend(publicAPI, model) {
|
|
578
|
-
|
|
579
|
-
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
547
|
+
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
548
|
+
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
580
549
|
|
|
581
|
-
|
|
550
|
+
// Inheritance
|
|
551
|
+
macro.obj(publicAPI, model);
|
|
582
552
|
|
|
583
|
-
|
|
553
|
+
// Internal objects initialization
|
|
554
|
+
model.nodes = [];
|
|
584
555
|
|
|
556
|
+
// Create get-set macros
|
|
585
557
|
macro.setGet(publicAPI, model, ['allowDuplicateScalars', 'clamping']);
|
|
586
|
-
macro.setArray(publicAPI, model, ['range'], 2);
|
|
558
|
+
macro.setArray(publicAPI, model, ['range'], 2);
|
|
587
559
|
|
|
588
|
-
|
|
589
|
-
|
|
560
|
+
// Create get macros for array
|
|
561
|
+
macro.getArray(publicAPI, model, ['range']);
|
|
590
562
|
|
|
563
|
+
// For more macro methods, see "Sources/macros.js"
|
|
564
|
+
|
|
565
|
+
// Object specific methods
|
|
591
566
|
vtkPiecewiseFunction(publicAPI, model);
|
|
592
|
-
}
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
// ----------------------------------------------------------------------------
|
|
593
570
|
|
|
594
|
-
|
|
571
|
+
const newInstance = macro.newInstance(extend, 'vtkPiecewiseFunction');
|
|
572
|
+
|
|
573
|
+
// ----------------------------------------------------------------------------
|
|
595
574
|
|
|
596
575
|
var vtkPiecewiseFunction$1 = {
|
|
597
|
-
newInstance
|
|
598
|
-
extend
|
|
576
|
+
newInstance,
|
|
577
|
+
extend
|
|
599
578
|
};
|
|
600
579
|
|
|
601
580
|
export { vtkPiecewiseFunction$1 as default, extend, newInstance };
|