@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,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
3
|
-
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
|
-
import macro from '../../macros.js';
|
|
1
|
+
import { m as macro } from '../../macros2.js';
|
|
5
2
|
import Constants from './BufferManager/Constants.js';
|
|
6
3
|
import vtkProperty from '../Core/Property.js';
|
|
7
4
|
import vtkWebGPUBuffer from './Buffer.js';
|
|
8
5
|
|
|
9
|
-
|
|
6
|
+
const {
|
|
7
|
+
Representation
|
|
8
|
+
} = vtkProperty;
|
|
9
|
+
const {
|
|
10
|
+
PrimitiveTypes
|
|
11
|
+
} = Constants;
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
var Representation = vtkProperty.Representation;
|
|
13
|
-
var PrimitiveTypes = Constants.PrimitiveTypes; // Simulate a small map of pointId to flatId for a cell. The original code
|
|
13
|
+
// Simulate a small map of pointId to flatId for a cell. The original code
|
|
14
14
|
// used a map and was 2.6x slower (4.7 to 1.9 seconds). Using two fixed
|
|
15
15
|
// length arrays with a count is so much faster even with the required for
|
|
16
16
|
// loops and if statements. This only works as we know the usage is
|
|
@@ -21,80 +21,56 @@ var PrimitiveTypes = Constants.PrimitiveTypes; // Simulate a small map of pointI
|
|
|
21
21
|
// make sure there is room. Switching to test against vec.length -1 results
|
|
22
22
|
// in a small performance hit, so if you change 10, search for 9 in this
|
|
23
23
|
// small class and change those as well.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
function _LimitedMap() {
|
|
27
|
-
_classCallCheck(this, _LimitedMap);
|
|
28
|
-
|
|
24
|
+
class _LimitedMap {
|
|
25
|
+
constructor() {
|
|
29
26
|
this.keys = new Uint32Array(10);
|
|
30
27
|
this.values = new Uint32Array(10);
|
|
31
28
|
this.count = 0;
|
|
32
29
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
key: "has",
|
|
41
|
-
value: function has(key) {
|
|
42
|
-
for (var i = 0; i < this.count; i++) {
|
|
43
|
-
if (this.keys[i] === key) {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
30
|
+
clear() {
|
|
31
|
+
this.count = 0;
|
|
32
|
+
}
|
|
33
|
+
has(key) {
|
|
34
|
+
for (let i = 0; i < this.count; i++) {
|
|
35
|
+
if (this.keys[i] === key) {
|
|
36
|
+
return true;
|
|
46
37
|
}
|
|
47
|
-
|
|
48
|
-
return undefined;
|
|
49
38
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
get(key) {
|
|
42
|
+
for (let i = 0; i < this.count; i++) {
|
|
43
|
+
if (this.keys[i] === key) {
|
|
44
|
+
return this.values[i];
|
|
57
45
|
}
|
|
58
|
-
|
|
59
|
-
return undefined;
|
|
60
46
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
set(key, value) {
|
|
50
|
+
if (this.count < 9) {
|
|
51
|
+
this.keys[this.count] = key;
|
|
52
|
+
this.values[this.count++] = value;
|
|
68
53
|
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return _LimitedMap;
|
|
72
|
-
}();
|
|
73
|
-
|
|
54
|
+
}
|
|
55
|
+
}
|
|
74
56
|
function getPrimitiveName(primType) {
|
|
75
57
|
switch (primType) {
|
|
76
58
|
case PrimitiveTypes.Points:
|
|
77
59
|
return 'points';
|
|
78
|
-
|
|
79
60
|
case PrimitiveTypes.Lines:
|
|
80
61
|
return 'lines';
|
|
81
|
-
|
|
82
62
|
case PrimitiveTypes.Triangles:
|
|
83
63
|
case PrimitiveTypes.TriangleEdges:
|
|
84
64
|
return 'polys';
|
|
85
|
-
|
|
86
65
|
case PrimitiveTypes.TriangleStripEdges:
|
|
87
66
|
case PrimitiveTypes.TriangleStrips:
|
|
88
67
|
return 'strips';
|
|
89
|
-
|
|
90
68
|
default:
|
|
91
69
|
return '';
|
|
92
70
|
}
|
|
93
71
|
}
|
|
94
|
-
|
|
95
72
|
function _getOrAddFlatId(state, ptId, cellId) {
|
|
96
|
-
|
|
97
|
-
|
|
73
|
+
let flatId = state.pointIdToFlatId[ptId];
|
|
98
74
|
if (flatId < 0) {
|
|
99
75
|
flatId = state.flatId;
|
|
100
76
|
state.pointIdToFlatId[ptId] = flatId;
|
|
@@ -102,191 +78,178 @@ function _getOrAddFlatId(state, ptId, cellId) {
|
|
|
102
78
|
state.flatIdToCellId[state.flatId] = cellId;
|
|
103
79
|
state.flatId++;
|
|
104
80
|
}
|
|
105
|
-
|
|
106
81
|
return flatId;
|
|
107
82
|
}
|
|
108
|
-
|
|
109
83
|
function fillCell(ptIds, cellId, state) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
for (
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
for (
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
} // all done now
|
|
126
|
-
|
|
127
|
-
|
|
84
|
+
const numPtIds = ptIds.length;
|
|
85
|
+
// are any points already marked for this cell? If so use that as the provoking point
|
|
86
|
+
for (let ptIdx = 0; ptIdx < numPtIds; ptIdx++) {
|
|
87
|
+
let ptId = ptIds[ptIdx];
|
|
88
|
+
if (state.cellProvokedMap.has(ptId)) {
|
|
89
|
+
state.ibo[state.iboId++] = state.cellProvokedMap.get(ptId);
|
|
90
|
+
|
|
91
|
+
// insert remaining ptIds (they do not need to provoke)
|
|
92
|
+
for (let ptIdx2 = ptIdx + 1; ptIdx2 < ptIdx + numPtIds; ptIdx2++) {
|
|
93
|
+
ptId = ptIds[ptIdx2 % numPtIds];
|
|
94
|
+
const flatId = _getOrAddFlatId(state, ptId, cellId);
|
|
95
|
+
// add to ibo
|
|
96
|
+
state.ibo[state.iboId++] = flatId;
|
|
97
|
+
}
|
|
98
|
+
// all done now
|
|
128
99
|
return;
|
|
129
100
|
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
for (var _ptIdx = 0; _ptIdx < numPtIds; _ptIdx++) {
|
|
134
|
-
var _ptId2 = ptIds[_ptIdx];
|
|
135
|
-
|
|
136
|
-
if (!state.provokedPointIds[_ptId2]) {
|
|
137
|
-
var _flatId2 = _getOrAddFlatId(state, _ptId2, cellId); // mark provoking and add to ibo
|
|
138
|
-
|
|
101
|
+
}
|
|
139
102
|
|
|
140
|
-
|
|
141
|
-
|
|
103
|
+
// else have any of the points not been used yet? (not in provokedPointIds)
|
|
104
|
+
for (let ptIdx = 0; ptIdx < numPtIds; ptIdx++) {
|
|
105
|
+
let ptId = ptIds[ptIdx];
|
|
106
|
+
if (!state.provokedPointIds[ptId]) {
|
|
107
|
+
let flatId = _getOrAddFlatId(state, ptId, cellId);
|
|
108
|
+
// mark provoking and add to ibo
|
|
109
|
+
state.provokedPointIds[ptId] = 1;
|
|
110
|
+
state.cellProvokedMap.set(ptId, flatId);
|
|
111
|
+
// when provoking always set the cellId as an original non-provoking value
|
|
142
112
|
// will have been stored and we need to overwrite that
|
|
143
|
-
|
|
144
|
-
state.
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
for (
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
state.ibo[state.iboId++] =
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
113
|
+
state.flatIdToCellId[flatId] = cellId;
|
|
114
|
+
state.ibo[state.iboId++] = flatId;
|
|
115
|
+
|
|
116
|
+
// insert remaining ptIds (they do not need to provoke)
|
|
117
|
+
for (let ptIdx2 = ptIdx + 1; ptIdx2 < ptIdx + numPtIds; ptIdx2++) {
|
|
118
|
+
ptId = ptIds[ptIdx2 % numPtIds];
|
|
119
|
+
flatId = _getOrAddFlatId(state, ptId, cellId);
|
|
120
|
+
// add to ibo
|
|
121
|
+
state.ibo[state.iboId++] = flatId;
|
|
122
|
+
}
|
|
123
|
+
// all done now
|
|
155
124
|
return;
|
|
156
125
|
}
|
|
157
|
-
}
|
|
158
|
-
// so just duplicate the first one
|
|
159
|
-
|
|
126
|
+
}
|
|
160
127
|
|
|
161
|
-
|
|
162
|
-
|
|
128
|
+
// if we got here then none of the ptIds could be used to provoke
|
|
129
|
+
// so just duplicate the first one
|
|
130
|
+
let ptId = ptIds[0];
|
|
131
|
+
let flatId = state.flatId;
|
|
163
132
|
state.cellProvokedMap.set(ptId, flatId);
|
|
164
133
|
state.flatIdToPointId[state.flatId] = ptId;
|
|
165
134
|
state.flatIdToCellId[state.flatId] = cellId;
|
|
166
|
-
state.flatId++;
|
|
167
|
-
|
|
168
|
-
state.ibo[state.iboId++] = flatId; // insert remaining ptIds (they do not need to provoke)
|
|
135
|
+
state.flatId++;
|
|
169
136
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
flatId = _getOrAddFlatId(state, ptId, cellId); // add to ibo
|
|
137
|
+
// add to ibo
|
|
138
|
+
state.ibo[state.iboId++] = flatId;
|
|
173
139
|
|
|
140
|
+
// insert remaining ptIds (they do not need to provoke)
|
|
141
|
+
for (let ptIdx2 = 1; ptIdx2 < numPtIds; ptIdx2++) {
|
|
142
|
+
ptId = ptIds[ptIdx2];
|
|
143
|
+
flatId = _getOrAddFlatId(state, ptId, cellId);
|
|
144
|
+
// add to ibo
|
|
174
145
|
state.ibo[state.iboId++] = flatId;
|
|
175
146
|
}
|
|
176
147
|
}
|
|
177
|
-
|
|
178
148
|
function countCell(ptIds, cellId, state) {
|
|
179
|
-
|
|
180
|
-
state.iboSize += numPtIds;
|
|
181
|
-
|
|
182
|
-
for (var ptIdx = 0; ptIdx < numPtIds; ptIdx++) {
|
|
183
|
-
var ptId = ptIds[ptIdx];
|
|
149
|
+
const numPtIds = ptIds.length;
|
|
150
|
+
state.iboSize += numPtIds;
|
|
184
151
|
|
|
152
|
+
// are any points already marked for this cell? If so use that as the provoking point
|
|
153
|
+
for (let ptIdx = 0; ptIdx < numPtIds; ptIdx++) {
|
|
154
|
+
const ptId = ptIds[ptIdx];
|
|
185
155
|
if (state.cellProvokedMap.has(ptId)) {
|
|
186
156
|
return;
|
|
187
157
|
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
for (var _ptIdx4 = 0; _ptIdx4 < numPtIds; _ptIdx4++) {
|
|
192
|
-
var _ptId3 = ptIds[_ptIdx4];
|
|
158
|
+
}
|
|
193
159
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
160
|
+
// else have any of the points not been used yet? (not in provokedPointIds)
|
|
161
|
+
for (let ptIdx = 0; ptIdx < numPtIds; ptIdx++) {
|
|
162
|
+
const ptId = ptIds[ptIdx];
|
|
163
|
+
if (!state.provokedPointIds[ptId]) {
|
|
164
|
+
state.provokedPointIds[ptId] = 1;
|
|
165
|
+
state.cellProvokedMap.set(ptId, 1);
|
|
197
166
|
return;
|
|
198
167
|
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
168
|
+
}
|
|
169
|
+
// if we got here then none of the ptIds could be used to provoke
|
|
202
170
|
state.cellProvokedMap.set(ptIds[0], 1);
|
|
203
171
|
state.extraPoints++;
|
|
204
172
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
var _double = new Uint32Array(2);
|
|
211
|
-
|
|
212
|
-
var _triple = new Uint32Array(3);
|
|
213
|
-
|
|
214
|
-
var _indexCellBuilders = {
|
|
173
|
+
let processCell;
|
|
174
|
+
const _single = new Uint32Array(1);
|
|
175
|
+
const _double = new Uint32Array(2);
|
|
176
|
+
const _triple = new Uint32Array(3);
|
|
177
|
+
const _indexCellBuilders = {
|
|
215
178
|
// easy, every input point becomes an output point
|
|
216
|
-
anythingToPoints
|
|
217
|
-
for (
|
|
179
|
+
anythingToPoints(numPoints, cellPts, offset, cellId, state) {
|
|
180
|
+
for (let i = 0; i < numPoints; ++i) {
|
|
218
181
|
_single[0] = cellPts[offset + i];
|
|
219
182
|
processCell(_single, cellId, state);
|
|
220
183
|
}
|
|
221
184
|
},
|
|
222
|
-
linesToWireframe
|
|
185
|
+
linesToWireframe(numPoints, cellPts, offset, cellId, state) {
|
|
223
186
|
// for lines we add a bunch of segments
|
|
224
|
-
for (
|
|
187
|
+
for (let i = 0; i < numPoints - 1; ++i) {
|
|
225
188
|
_double[0] = cellPts[offset + i];
|
|
226
189
|
_double[1] = cellPts[offset + i + 1];
|
|
227
190
|
processCell(_double, cellId, state);
|
|
228
191
|
}
|
|
229
192
|
},
|
|
230
|
-
polysToWireframe
|
|
193
|
+
polysToWireframe(numPoints, cellPts, offset, cellId, state) {
|
|
231
194
|
// for polys we add a bunch of segments and close it
|
|
232
195
|
if (numPoints > 2) {
|
|
233
|
-
for (
|
|
196
|
+
for (let i = 0; i < numPoints; ++i) {
|
|
234
197
|
_double[0] = cellPts[offset + i];
|
|
235
198
|
_double[1] = cellPts[offset + (i + 1) % numPoints];
|
|
236
199
|
processCell(_double, cellId, state);
|
|
237
200
|
}
|
|
238
201
|
}
|
|
239
202
|
},
|
|
240
|
-
stripsToWireframe
|
|
203
|
+
stripsToWireframe(numPoints, cellPts, offset, cellId, state) {
|
|
241
204
|
if (numPoints > 2) {
|
|
242
205
|
// for strips we add a bunch of segments and close it
|
|
243
|
-
for (
|
|
206
|
+
for (let i = 0; i < numPoints - 1; ++i) {
|
|
244
207
|
_double[0] = cellPts[offset + i];
|
|
245
208
|
_double[1] = cellPts[offset + i + 1];
|
|
246
209
|
processCell(_double, cellId, state);
|
|
247
210
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
_double[
|
|
251
|
-
_double[1] = cellPts[offset + _i + 2];
|
|
211
|
+
for (let i = 0; i < numPoints - 2; i++) {
|
|
212
|
+
_double[0] = cellPts[offset + i];
|
|
213
|
+
_double[1] = cellPts[offset + i + 2];
|
|
252
214
|
processCell(_double, cellId, state);
|
|
253
215
|
}
|
|
254
216
|
}
|
|
255
217
|
},
|
|
256
|
-
polysToSurface
|
|
257
|
-
for (
|
|
218
|
+
polysToSurface(npts, cellPts, offset, cellId, state) {
|
|
219
|
+
for (let i = 0; i < npts - 2; i++) {
|
|
258
220
|
_triple[0] = cellPts[offset];
|
|
259
221
|
_triple[1] = cellPts[offset + i + 1];
|
|
260
222
|
_triple[2] = cellPts[offset + i + 2];
|
|
261
223
|
processCell(_triple, cellId, state);
|
|
262
224
|
}
|
|
263
225
|
},
|
|
264
|
-
stripsToSurface
|
|
265
|
-
for (
|
|
226
|
+
stripsToSurface(npts, cellPts, offset, cellId, state) {
|
|
227
|
+
for (let i = 0; i < npts - 2; i++) {
|
|
266
228
|
_triple[0] = cellPts[offset + i];
|
|
267
229
|
_triple[1] = cellPts[offset + i + 1 + i % 2];
|
|
268
230
|
_triple[2] = cellPts[offset + i + 1 + (i + 1) % 2];
|
|
269
231
|
processCell(_triple, cellId, state);
|
|
270
232
|
}
|
|
271
233
|
}
|
|
272
|
-
};
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
// ----------------------------------------------------------------------------
|
|
273
237
|
// vtkWebGPUIndexBufferManager methods
|
|
274
238
|
// ----------------------------------------------------------------------------
|
|
275
239
|
|
|
276
240
|
function vtkWebGPUIndexBuffer(publicAPI, model) {
|
|
277
241
|
// Set our className
|
|
278
242
|
model.classHierarchy.push('vtkWebGPUIndexBuffer');
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
var state = {
|
|
243
|
+
publicAPI.buildIndexBuffer = req => {
|
|
244
|
+
const cellArray = req.cells;
|
|
245
|
+
const primitiveType = req.primitiveType;
|
|
246
|
+
const representation = req.representation;
|
|
247
|
+
const cellOffset = req.cellOffset;
|
|
248
|
+
const array = cellArray.getData();
|
|
249
|
+
const cellArraySize = array.length;
|
|
250
|
+
const inRepName = getPrimitiveName(primitiveType);
|
|
251
|
+
const numPts = req.numberOfPoints;
|
|
252
|
+
const state = {
|
|
290
253
|
provokedPointIds: new Uint8Array(numPts),
|
|
291
254
|
// size is good
|
|
292
255
|
extraPoints: 0,
|
|
@@ -295,41 +258,37 @@ function vtkWebGPUIndexBuffer(publicAPI, model) {
|
|
|
295
258
|
iboId: 0,
|
|
296
259
|
cellProvokedMap: new _LimitedMap()
|
|
297
260
|
};
|
|
298
|
-
|
|
299
|
-
|
|
261
|
+
let func = null;
|
|
300
262
|
if (representation === Representation.POINTS || primitiveType === PrimitiveTypes.Points) {
|
|
301
263
|
func = _indexCellBuilders.anythingToPoints;
|
|
302
264
|
} else if (representation === Representation.WIREFRAME || primitiveType === PrimitiveTypes.Lines) {
|
|
303
|
-
func = _indexCellBuilders[
|
|
265
|
+
func = _indexCellBuilders[`${inRepName}ToWireframe`];
|
|
304
266
|
} else {
|
|
305
|
-
func = _indexCellBuilders[
|
|
306
|
-
}
|
|
307
|
-
|
|
267
|
+
func = _indexCellBuilders[`${inRepName}ToSurface`];
|
|
268
|
+
}
|
|
308
269
|
|
|
270
|
+
// first we count how many extra provoking points we need
|
|
309
271
|
processCell = countCell;
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
for (var cellArrayIndex = 0; cellArrayIndex < cellArraySize;) {
|
|
272
|
+
let cellId = cellOffset || 0;
|
|
273
|
+
for (let cellArrayIndex = 0; cellArrayIndex < cellArraySize;) {
|
|
313
274
|
state.cellProvokedMap.clear();
|
|
314
275
|
func(array[cellArrayIndex], array, cellArrayIndex + 1, cellId, state);
|
|
315
276
|
cellArrayIndex += array[cellArrayIndex] + 1;
|
|
316
277
|
cellId++;
|
|
317
|
-
}
|
|
318
|
-
// (we pick the best size to save space and transfer costs)
|
|
319
|
-
|
|
278
|
+
}
|
|
320
279
|
|
|
280
|
+
// then we allocate the remaining structures
|
|
281
|
+
// (we pick the best size to save space and transfer costs)
|
|
321
282
|
if (numPts <= 0xffff) {
|
|
322
283
|
state.flatIdToPointId = new Uint16Array(numPts + state.extraPoints);
|
|
323
284
|
} else {
|
|
324
285
|
state.flatIdToPointId = new Uint32Array(numPts + state.extraPoints);
|
|
325
286
|
}
|
|
326
|
-
|
|
327
287
|
if (numPts + state.extraPoints < 0x8fff) {
|
|
328
288
|
state.pointIdToFlatId = new Int16Array(numPts);
|
|
329
289
|
} else {
|
|
330
290
|
state.pointIdToFlatId = new Int32Array(numPts);
|
|
331
291
|
}
|
|
332
|
-
|
|
333
292
|
if (numPts + state.extraPoints <= 0xffff) {
|
|
334
293
|
state.ibo = new Uint16Array(state.iboSize);
|
|
335
294
|
req.format = 'uint16';
|
|
@@ -337,61 +296,68 @@ function vtkWebGPUIndexBuffer(publicAPI, model) {
|
|
|
337
296
|
state.ibo = new Uint32Array(state.iboSize);
|
|
338
297
|
req.format = 'uint32';
|
|
339
298
|
}
|
|
340
|
-
|
|
341
299
|
if (cellId <= 0xffff) {
|
|
342
300
|
state.flatIdToCellId = new Uint16Array(numPts + state.extraPoints);
|
|
343
301
|
} else {
|
|
344
302
|
state.flatIdToCellId = new Uint32Array(numPts + state.extraPoints);
|
|
345
303
|
}
|
|
346
|
-
|
|
347
304
|
state.pointIdToFlatId.fill(-1);
|
|
348
|
-
state.provokedPointIds.fill(0);
|
|
305
|
+
state.provokedPointIds.fill(0);
|
|
349
306
|
|
|
307
|
+
// and fill them in
|
|
350
308
|
processCell = fillCell;
|
|
351
309
|
cellId = cellOffset || 0;
|
|
352
|
-
|
|
353
|
-
for (var _cellArrayIndex = 0; _cellArrayIndex < cellArraySize;) {
|
|
310
|
+
for (let cellArrayIndex = 0; cellArrayIndex < cellArraySize;) {
|
|
354
311
|
state.cellProvokedMap.clear();
|
|
355
|
-
func(array[
|
|
356
|
-
|
|
312
|
+
func(array[cellArrayIndex], array, cellArrayIndex + 1, cellId, state);
|
|
313
|
+
cellArrayIndex += array[cellArrayIndex] + 1;
|
|
357
314
|
cellId++;
|
|
358
315
|
}
|
|
359
|
-
|
|
360
316
|
delete state.provokedPointIds;
|
|
361
|
-
delete state.pointIdToFlatId;
|
|
317
|
+
delete state.pointIdToFlatId;
|
|
362
318
|
|
|
319
|
+
// store the results we need
|
|
363
320
|
req.nativeArray = state.ibo;
|
|
364
321
|
model.flatIdToPointId = state.flatIdToPointId;
|
|
365
322
|
model.flatIdToCellId = state.flatIdToCellId;
|
|
366
323
|
model.flatSize = state.flatId;
|
|
367
324
|
model.indexCount = state.iboId;
|
|
368
325
|
};
|
|
369
|
-
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// ----------------------------------------------------------------------------
|
|
370
329
|
// Object factory
|
|
371
330
|
// ----------------------------------------------------------------------------
|
|
372
331
|
|
|
373
|
-
|
|
374
|
-
var DEFAULT_VALUES = {
|
|
332
|
+
const DEFAULT_VALUES = {
|
|
375
333
|
flatIdToPointId: null,
|
|
376
334
|
flatIdToCellId: null,
|
|
377
335
|
flatSize: 0,
|
|
378
336
|
indexCount: 0
|
|
379
|
-
};
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
// ----------------------------------------------------------------------------
|
|
380
340
|
|
|
381
341
|
function extend(publicAPI, model) {
|
|
382
|
-
|
|
383
|
-
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
342
|
+
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
343
|
+
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
384
344
|
|
|
345
|
+
// Inheritance
|
|
385
346
|
vtkWebGPUBuffer.extend(publicAPI, model, initialValues);
|
|
386
347
|
macro.setGet(publicAPI, model, ['flatIdToPointId', 'flatIdToCellId', 'flatSize', 'indexCount']);
|
|
387
348
|
vtkWebGPUIndexBuffer(publicAPI, model);
|
|
388
|
-
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// ----------------------------------------------------------------------------
|
|
389
352
|
|
|
390
|
-
|
|
353
|
+
const newInstance = macro.newInstance(extend);
|
|
354
|
+
|
|
355
|
+
// ----------------------------------------------------------------------------
|
|
391
356
|
|
|
392
|
-
var vtkWebGPUIndexBuffer$1 =
|
|
393
|
-
newInstance
|
|
394
|
-
extend
|
|
395
|
-
|
|
357
|
+
var vtkWebGPUIndexBuffer$1 = {
|
|
358
|
+
newInstance,
|
|
359
|
+
extend,
|
|
360
|
+
...Constants
|
|
361
|
+
};
|
|
396
362
|
|
|
397
363
|
export { vtkWebGPUIndexBuffer$1 as default, extend, newInstance };
|