@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,31 +1,25 @@
|
|
|
1
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
-
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
3
|
-
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
5
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
6
1
|
import { d as dot } from '../Core/Math/index.js';
|
|
7
2
|
import { vec3 } from 'gl-matrix';
|
|
8
3
|
import vtkPlane from './Plane.js';
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Number.MAX_VALUE, -Number.MAX_VALUE, // Y
|
|
5
|
+
const INIT_BOUNDS = [Number.MAX_VALUE, -Number.MAX_VALUE,
|
|
6
|
+
// X
|
|
7
|
+
Number.MAX_VALUE, -Number.MAX_VALUE,
|
|
8
|
+
// Y
|
|
15
9
|
Number.MAX_VALUE, -Number.MAX_VALUE // Z
|
|
16
|
-
];
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
// ----------------------------------------------------------------------------
|
|
17
13
|
// Global methods
|
|
18
14
|
// ----------------------------------------------------------------------------
|
|
19
15
|
|
|
20
|
-
function
|
|
16
|
+
function equals(a, b) {
|
|
21
17
|
return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5];
|
|
22
18
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return (bounds === null || bounds === void 0 ? void 0 : bounds.length) >= 6 && bounds[0] <= bounds[1] && bounds[2] <= bounds[3] && bounds[4] <= bounds[5];
|
|
19
|
+
function isValid(bounds) {
|
|
20
|
+
return bounds?.length >= 6 && bounds[0] <= bounds[1] && bounds[2] <= bounds[3] && bounds[4] <= bounds[5];
|
|
26
21
|
}
|
|
27
|
-
|
|
28
|
-
function _setBounds(bounds, otherBounds) {
|
|
22
|
+
function setBounds(bounds, otherBounds) {
|
|
29
23
|
bounds[0] = otherBounds[0];
|
|
30
24
|
bounds[1] = otherBounds[1];
|
|
31
25
|
bounds[2] = otherBounds[2];
|
|
@@ -34,20 +28,11 @@ function _setBounds(bounds, otherBounds) {
|
|
|
34
28
|
bounds[5] = otherBounds[5];
|
|
35
29
|
return bounds;
|
|
36
30
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return _setBounds(bounds, INIT_BOUNDS);
|
|
31
|
+
function reset(bounds) {
|
|
32
|
+
return setBounds(bounds, INIT_BOUNDS);
|
|
40
33
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var _bounds = _slicedToArray(bounds, 6),
|
|
44
|
-
xMin = _bounds[0],
|
|
45
|
-
xMax = _bounds[1],
|
|
46
|
-
yMin = _bounds[2],
|
|
47
|
-
yMax = _bounds[3],
|
|
48
|
-
zMin = _bounds[4],
|
|
49
|
-
zMax = _bounds[5];
|
|
50
|
-
|
|
34
|
+
function addPoint(bounds, x, y, z) {
|
|
35
|
+
const [xMin, xMax, yMin, yMax, zMin, zMax] = bounds;
|
|
51
36
|
bounds[0] = xMin < x ? xMin : x;
|
|
52
37
|
bounds[1] = xMax > x ? xMax : x;
|
|
53
38
|
bounds[2] = yMin < y ? yMin : y;
|
|
@@ -56,34 +41,23 @@ function _addPoint(bounds, x, y, z) {
|
|
|
56
41
|
bounds[5] = zMax > z ? zMax : z;
|
|
57
42
|
return bounds;
|
|
58
43
|
}
|
|
59
|
-
|
|
60
|
-
function _addPoints(bounds, points) {
|
|
44
|
+
function addPoints(bounds, points) {
|
|
61
45
|
if (points.length === 0) {
|
|
62
46
|
return bounds;
|
|
63
47
|
}
|
|
64
|
-
|
|
65
48
|
if (Array.isArray(points[0])) {
|
|
66
|
-
for (
|
|
67
|
-
|
|
49
|
+
for (let i = 0; i < points.length; ++i) {
|
|
50
|
+
addPoint(bounds, ...points[i]);
|
|
68
51
|
}
|
|
69
52
|
} else {
|
|
70
|
-
for (
|
|
71
|
-
|
|
53
|
+
for (let i = 0; i < points.length; i += 3) {
|
|
54
|
+
addPoint(bounds, ...points.slice(i, i + 3));
|
|
72
55
|
}
|
|
73
56
|
}
|
|
74
|
-
|
|
75
57
|
return bounds;
|
|
76
58
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
var _bounds2 = _slicedToArray(bounds, 6),
|
|
80
|
-
_xMin = _bounds2[0],
|
|
81
|
-
_xMax = _bounds2[1],
|
|
82
|
-
_yMin = _bounds2[2],
|
|
83
|
-
_yMax = _bounds2[3],
|
|
84
|
-
_zMin = _bounds2[4],
|
|
85
|
-
_zMax = _bounds2[5];
|
|
86
|
-
|
|
59
|
+
function addBounds(bounds, xMin, xMax, yMin, yMax, zMin, zMax) {
|
|
60
|
+
const [_xMin, _xMax, _yMin, _yMax, _zMin, _zMax] = bounds;
|
|
87
61
|
if (zMax === undefined) {
|
|
88
62
|
bounds[0] = Math.min(xMin[0], _xMin);
|
|
89
63
|
bounds[1] = Math.max(xMin[1], _xMax);
|
|
@@ -99,19 +73,10 @@ function _addBounds(bounds, xMin, xMax, yMin, yMax, zMin, zMax) {
|
|
|
99
73
|
bounds[4] = Math.min(zMin, _zMin);
|
|
100
74
|
bounds[5] = Math.max(zMax, _zMax);
|
|
101
75
|
}
|
|
102
|
-
|
|
103
76
|
return bounds;
|
|
104
77
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
var _bounds3 = _slicedToArray(bounds, 6),
|
|
108
|
-
xMin = _bounds3[0],
|
|
109
|
-
xMax = _bounds3[1],
|
|
110
|
-
yMin = _bounds3[2],
|
|
111
|
-
yMax = _bounds3[3],
|
|
112
|
-
zMin = _bounds3[4],
|
|
113
|
-
zMax = _bounds3[5];
|
|
114
|
-
|
|
78
|
+
function setMinPoint(bounds, x, y, z) {
|
|
79
|
+
const [xMin, xMax, yMin, yMax, zMin, zMax] = bounds;
|
|
115
80
|
bounds[0] = x;
|
|
116
81
|
bounds[1] = x > xMax ? x : xMax;
|
|
117
82
|
bounds[2] = y;
|
|
@@ -120,16 +85,8 @@ function _setMinPoint(bounds, x, y, z) {
|
|
|
120
85
|
bounds[5] = z > zMax ? z : zMax;
|
|
121
86
|
return xMin !== x || yMin !== y || zMin !== z;
|
|
122
87
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
var _bounds4 = _slicedToArray(bounds, 6),
|
|
126
|
-
xMin = _bounds4[0],
|
|
127
|
-
xMax = _bounds4[1],
|
|
128
|
-
yMin = _bounds4[2],
|
|
129
|
-
yMax = _bounds4[3],
|
|
130
|
-
zMin = _bounds4[4],
|
|
131
|
-
zMax = _bounds4[5];
|
|
132
|
-
|
|
88
|
+
function setMaxPoint(bounds, x, y, z) {
|
|
89
|
+
const [xMin, xMax, yMin, yMax, zMin, zMax] = bounds;
|
|
133
90
|
bounds[0] = x < xMin ? x : xMin;
|
|
134
91
|
bounds[1] = x;
|
|
135
92
|
bounds[2] = y < yMin ? y : yMin;
|
|
@@ -138,8 +95,7 @@ function _setMaxPoint(bounds, x, y, z) {
|
|
|
138
95
|
bounds[5] = z;
|
|
139
96
|
return xMax !== x || yMax !== y || zMax !== z;
|
|
140
97
|
}
|
|
141
|
-
|
|
142
|
-
function _inflate(bounds, delta) {
|
|
98
|
+
function inflate(bounds, delta) {
|
|
143
99
|
bounds[0] -= delta;
|
|
144
100
|
bounds[1] += delta;
|
|
145
101
|
bounds[2] -= delta;
|
|
@@ -148,12 +104,10 @@ function _inflate(bounds, delta) {
|
|
|
148
104
|
bounds[5] += delta;
|
|
149
105
|
return bounds;
|
|
150
106
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
if (!_isValid(bounds)) {
|
|
107
|
+
function scale(bounds, sx, sy, sz) {
|
|
108
|
+
if (!isValid(bounds)) {
|
|
154
109
|
return false;
|
|
155
110
|
}
|
|
156
|
-
|
|
157
111
|
if (sx >= 0.0) {
|
|
158
112
|
bounds[0] *= sx;
|
|
159
113
|
bounds[1] *= sx;
|
|
@@ -161,7 +115,6 @@ function _scale(bounds, sx, sy, sz) {
|
|
|
161
115
|
bounds[0] = sx * bounds[1];
|
|
162
116
|
bounds[1] = sx * bounds[0];
|
|
163
117
|
}
|
|
164
|
-
|
|
165
118
|
if (sy >= 0.0) {
|
|
166
119
|
bounds[2] *= sy;
|
|
167
120
|
bounds[3] *= sy;
|
|
@@ -169,7 +122,6 @@ function _scale(bounds, sx, sy, sz) {
|
|
|
169
122
|
bounds[2] = sy * bounds[3];
|
|
170
123
|
bounds[3] = sy * bounds[2];
|
|
171
124
|
}
|
|
172
|
-
|
|
173
125
|
if (sz >= 0.0) {
|
|
174
126
|
bounds[4] *= sz;
|
|
175
127
|
bounds[5] *= sz;
|
|
@@ -177,29 +129,23 @@ function _scale(bounds, sx, sy, sz) {
|
|
|
177
129
|
bounds[4] = sz * bounds[5];
|
|
178
130
|
bounds[5] = sz * bounds[4];
|
|
179
131
|
}
|
|
180
|
-
|
|
181
132
|
return true;
|
|
182
133
|
}
|
|
183
|
-
|
|
184
|
-
function _getCenter(bounds) {
|
|
134
|
+
function getCenter(bounds) {
|
|
185
135
|
return [0.5 * (bounds[0] + bounds[1]), 0.5 * (bounds[2] + bounds[3]), 0.5 * (bounds[4] + bounds[5])];
|
|
186
136
|
}
|
|
187
137
|
function scaleAboutCenter(bounds, sx, sy, sz) {
|
|
188
|
-
if (!
|
|
138
|
+
if (!isValid(bounds)) {
|
|
189
139
|
return false;
|
|
190
140
|
}
|
|
191
|
-
|
|
192
|
-
var center = _getCenter(bounds);
|
|
193
|
-
|
|
141
|
+
const center = getCenter(bounds);
|
|
194
142
|
bounds[0] -= center[0];
|
|
195
143
|
bounds[1] -= center[0];
|
|
196
144
|
bounds[2] -= center[1];
|
|
197
145
|
bounds[3] -= center[1];
|
|
198
146
|
bounds[4] -= center[2];
|
|
199
147
|
bounds[5] -= center[2];
|
|
200
|
-
|
|
201
|
-
_scale(bounds, sx, sy, sz);
|
|
202
|
-
|
|
148
|
+
scale(bounds, sx, sy, sz);
|
|
203
149
|
bounds[0] += center[0];
|
|
204
150
|
bounds[1] += center[0];
|
|
205
151
|
bounds[2] += center[1];
|
|
@@ -208,82 +154,64 @@ function scaleAboutCenter(bounds, sx, sy, sz) {
|
|
|
208
154
|
bounds[5] += center[2];
|
|
209
155
|
return true;
|
|
210
156
|
}
|
|
211
|
-
|
|
212
|
-
function _getLength(bounds, index) {
|
|
157
|
+
function getLength(bounds, index) {
|
|
213
158
|
return bounds[index * 2 + 1] - bounds[index * 2];
|
|
214
159
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
return [_getLength(bounds, 0), _getLength(bounds, 1), _getLength(bounds, 2)];
|
|
160
|
+
function getLengths(bounds) {
|
|
161
|
+
return [getLength(bounds, 0), getLength(bounds, 1), getLength(bounds, 2)];
|
|
218
162
|
}
|
|
219
|
-
|
|
220
|
-
function _getXRange(bounds) {
|
|
163
|
+
function getXRange(bounds) {
|
|
221
164
|
return bounds.slice(0, 2);
|
|
222
165
|
}
|
|
223
|
-
|
|
224
|
-
function _getYRange(bounds) {
|
|
166
|
+
function getYRange(bounds) {
|
|
225
167
|
return bounds.slice(2, 4);
|
|
226
168
|
}
|
|
227
|
-
|
|
228
|
-
function _getZRange(bounds) {
|
|
169
|
+
function getZRange(bounds) {
|
|
229
170
|
return bounds.slice(4, 6);
|
|
230
171
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
var l = _getLengths(bounds);
|
|
234
|
-
|
|
172
|
+
function getMaxLength(bounds) {
|
|
173
|
+
const l = getLengths(bounds);
|
|
235
174
|
if (l[0] > l[1]) {
|
|
236
175
|
if (l[0] > l[2]) {
|
|
237
176
|
return l[0];
|
|
238
177
|
}
|
|
239
|
-
|
|
240
178
|
return l[2];
|
|
241
179
|
}
|
|
242
|
-
|
|
243
180
|
if (l[1] > l[2]) {
|
|
244
181
|
return l[1];
|
|
245
182
|
}
|
|
246
|
-
|
|
247
183
|
return l[2];
|
|
248
184
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
var l = _getLengths(bounds);
|
|
253
|
-
|
|
185
|
+
function getDiagonalLength(bounds) {
|
|
186
|
+
if (isValid(bounds)) {
|
|
187
|
+
const l = getLengths(bounds);
|
|
254
188
|
return Math.sqrt(l[0] * l[0] + l[1] * l[1] + l[2] * l[2]);
|
|
255
189
|
}
|
|
256
|
-
|
|
257
190
|
return null;
|
|
258
191
|
}
|
|
259
|
-
|
|
260
|
-
function _getMinPoint(bounds) {
|
|
192
|
+
function getMinPoint(bounds) {
|
|
261
193
|
return [bounds[0], bounds[2], bounds[4]];
|
|
262
194
|
}
|
|
263
|
-
|
|
264
|
-
function _getMaxPoint(bounds) {
|
|
195
|
+
function getMaxPoint(bounds) {
|
|
265
196
|
return [bounds[1], bounds[3], bounds[5]];
|
|
266
197
|
}
|
|
267
|
-
|
|
268
198
|
function oppositeSign(a, b) {
|
|
269
199
|
return a <= 0 && b >= 0 || a >= 0 && b <= 0;
|
|
270
200
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
for (var iy = 2; iy < 4; iy++) {
|
|
277
|
-
for (var iz = 4; iz < 6; iz++) {
|
|
201
|
+
function getCorners(bounds, corners) {
|
|
202
|
+
let count = 0;
|
|
203
|
+
for (let ix = 0; ix < 2; ix++) {
|
|
204
|
+
for (let iy = 2; iy < 4; iy++) {
|
|
205
|
+
for (let iz = 4; iz < 6; iz++) {
|
|
278
206
|
corners[count++] = [bounds[ix], bounds[iy], bounds[iz]];
|
|
279
207
|
}
|
|
280
208
|
}
|
|
281
209
|
}
|
|
282
|
-
|
|
283
210
|
return corners;
|
|
284
|
-
}
|
|
211
|
+
}
|
|
285
212
|
|
|
286
|
-
|
|
213
|
+
// Computes the two corners with minimal and miximal coordinates
|
|
214
|
+
function computeCornerPoints(bounds, point1, point2) {
|
|
287
215
|
point1[0] = bounds[0];
|
|
288
216
|
point1[1] = bounds[2];
|
|
289
217
|
point1[2] = bounds[4];
|
|
@@ -292,60 +220,66 @@ function _computeCornerPoints(bounds, point1, point2) {
|
|
|
292
220
|
point2[2] = bounds[5];
|
|
293
221
|
return point1;
|
|
294
222
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
var corners = _getCorners(bounds, []);
|
|
300
|
-
|
|
301
|
-
for (var i = 0; i < corners.length; ++i) {
|
|
223
|
+
function transformBounds(bounds, transform) {
|
|
224
|
+
let out = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
225
|
+
const corners = getCorners(bounds, []);
|
|
226
|
+
for (let i = 0; i < corners.length; ++i) {
|
|
302
227
|
vec3.transformMat4(corners[i], corners[i], transform);
|
|
303
228
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
return _addPoints(out, corners);
|
|
229
|
+
reset(out);
|
|
230
|
+
return addPoints(out, corners);
|
|
308
231
|
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
var scale3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
232
|
+
function computeScale3(bounds) {
|
|
233
|
+
let scale3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
312
234
|
scale3[0] = 0.5 * (bounds[1] - bounds[0]);
|
|
313
235
|
scale3[1] = 0.5 * (bounds[3] - bounds[2]);
|
|
314
236
|
scale3[2] = 0.5 * (bounds[5] - bounds[4]);
|
|
315
237
|
return scale3;
|
|
316
238
|
}
|
|
317
239
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
240
|
+
/**
|
|
241
|
+
* Compute local bounds.
|
|
242
|
+
* Not as fast as vtkPoints.getBounds() if u, v, w form a natural basis.
|
|
243
|
+
* @param {vtkPoints} points
|
|
244
|
+
* @param {array} u first vector
|
|
245
|
+
* @param {array} v second vector
|
|
246
|
+
* @param {array} w third vector
|
|
247
|
+
*/
|
|
248
|
+
function computeLocalBounds(points, u, v, w) {
|
|
249
|
+
const bounds = [].concat(INIT_BOUNDS);
|
|
250
|
+
const pointsData = points.getData();
|
|
251
|
+
for (let i = 0; i < pointsData.length; i += 3) {
|
|
252
|
+
const point = [pointsData[i], pointsData[i + 1], pointsData[i + 2]];
|
|
253
|
+
const du = dot(point, u);
|
|
325
254
|
bounds[0] = Math.min(du, bounds[0]);
|
|
326
255
|
bounds[1] = Math.max(du, bounds[1]);
|
|
327
|
-
|
|
256
|
+
const dv = dot(point, v);
|
|
328
257
|
bounds[2] = Math.min(dv, bounds[2]);
|
|
329
258
|
bounds[3] = Math.max(dv, bounds[3]);
|
|
330
|
-
|
|
259
|
+
const dw = dot(point, w);
|
|
331
260
|
bounds[4] = Math.min(dw, bounds[4]);
|
|
332
261
|
bounds[5] = Math.max(dw, bounds[5]);
|
|
333
262
|
}
|
|
334
|
-
|
|
335
263
|
return bounds;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
function _intersectBox(bounds, origin, dir, coord, tolerance) {
|
|
339
|
-
var inside = true;
|
|
340
|
-
var quadrant = [];
|
|
341
|
-
var whichPlane = 0;
|
|
342
|
-
var maxT = [];
|
|
343
|
-
var candidatePlane = [0.0, 0.0, 0.0];
|
|
344
|
-
var RIGHT = 0;
|
|
345
|
-
var LEFT = 1;
|
|
346
|
-
var MIDDLE = 2; // First find closest planes
|
|
264
|
+
}
|
|
347
265
|
|
|
348
|
-
|
|
266
|
+
// The method returns a non-zero value if the bounding box is hit.
|
|
267
|
+
// Origin[3] starts the ray, dir[3] is the vector components of the ray in the x-y-z
|
|
268
|
+
// directions, coord[3] is the location of hit, and t is the parametric
|
|
269
|
+
// coordinate along line. (Notes: the intersection ray dir[3] is NOT
|
|
270
|
+
// normalized. Valid intersections will only occur between 0<=t<=1.)
|
|
271
|
+
function intersectBox(bounds, origin, dir, coord, tolerance) {
|
|
272
|
+
let inside = true;
|
|
273
|
+
const quadrant = [];
|
|
274
|
+
let whichPlane = 0;
|
|
275
|
+
const maxT = [];
|
|
276
|
+
const candidatePlane = [0.0, 0.0, 0.0];
|
|
277
|
+
const RIGHT = 0;
|
|
278
|
+
const LEFT = 1;
|
|
279
|
+
const MIDDLE = 2;
|
|
280
|
+
|
|
281
|
+
// First find closest planes
|
|
282
|
+
for (let i = 0; i < 3; i++) {
|
|
349
283
|
if (origin[i] < bounds[2 * i]) {
|
|
350
284
|
quadrant[i] = LEFT;
|
|
351
285
|
candidatePlane[i] = bounds[2 * i];
|
|
@@ -357,97 +291,92 @@ function _intersectBox(bounds, origin, dir, coord, tolerance) {
|
|
|
357
291
|
} else {
|
|
358
292
|
quadrant[i] = MIDDLE;
|
|
359
293
|
}
|
|
360
|
-
}
|
|
361
|
-
|
|
294
|
+
}
|
|
362
295
|
|
|
296
|
+
// Check whether origin of ray is inside bbox
|
|
363
297
|
if (inside) {
|
|
364
298
|
coord[0] = origin[0];
|
|
365
299
|
coord[1] = origin[1];
|
|
366
300
|
coord[2] = origin[2];
|
|
367
301
|
tolerance[0] = 0;
|
|
368
302
|
return 1;
|
|
369
|
-
}
|
|
370
|
-
|
|
303
|
+
}
|
|
371
304
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
305
|
+
// Calculate parametric distance to plane
|
|
306
|
+
for (let i = 0; i < 3; i++) {
|
|
307
|
+
if (quadrant[i] !== MIDDLE && dir[i] !== 0.0) {
|
|
308
|
+
maxT[i] = (candidatePlane[i] - origin[i]) / dir[i];
|
|
375
309
|
} else {
|
|
376
|
-
maxT[
|
|
310
|
+
maxT[i] = -1.0;
|
|
377
311
|
}
|
|
378
|
-
}
|
|
379
|
-
|
|
312
|
+
}
|
|
380
313
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
314
|
+
// Find the largest parametric value of intersection
|
|
315
|
+
for (let i = 0; i < 3; i++) {
|
|
316
|
+
if (maxT[whichPlane] < maxT[i]) {
|
|
317
|
+
whichPlane = i;
|
|
384
318
|
}
|
|
385
|
-
}
|
|
386
|
-
|
|
319
|
+
}
|
|
387
320
|
|
|
321
|
+
// Check for valie intersection along line
|
|
388
322
|
if (maxT[whichPlane] > 1.0 || maxT[whichPlane] < 0.0) {
|
|
389
323
|
return 0;
|
|
390
324
|
}
|
|
325
|
+
tolerance[0] = maxT[whichPlane];
|
|
391
326
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
coord[
|
|
397
|
-
|
|
398
|
-
if (coord[_i4] < bounds[2 * _i4] || coord[_i4] > bounds[2 * _i4 + 1]) {
|
|
327
|
+
// Intersection point along line is okay. Check bbox.
|
|
328
|
+
for (let i = 0; i < 3; i++) {
|
|
329
|
+
if (whichPlane !== i) {
|
|
330
|
+
coord[i] = origin[i] + maxT[whichPlane] * dir[i];
|
|
331
|
+
if (coord[i] < bounds[2 * i] || coord[i] > bounds[2 * i + 1]) {
|
|
399
332
|
return 0;
|
|
400
333
|
}
|
|
401
334
|
} else {
|
|
402
|
-
coord[
|
|
335
|
+
coord[i] = candidatePlane[i];
|
|
403
336
|
}
|
|
404
337
|
}
|
|
405
|
-
|
|
406
338
|
return 1;
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
function _intersectPlane(bounds, origin, normal) {
|
|
410
|
-
var p = [];
|
|
411
|
-
var d = 0;
|
|
412
|
-
var sign = 1;
|
|
413
|
-
var firstOne = 1; // Evaluate the eight points. If there is a sign change, there is an intersection
|
|
339
|
+
}
|
|
414
340
|
|
|
415
|
-
|
|
341
|
+
// Plane intersection with box
|
|
342
|
+
// The plane is infinite in extent and defined by an origin and normal.The function indicates
|
|
343
|
+
// whether the plane intersects, not the particulars of intersection points and such
|
|
344
|
+
// The function returns non-zero if the plane and box intersect; zero otherwise.
|
|
345
|
+
function intersectPlane(bounds, origin, normal) {
|
|
346
|
+
const p = [];
|
|
347
|
+
let d = 0;
|
|
348
|
+
let sign = 1;
|
|
349
|
+
let firstOne = 1;
|
|
350
|
+
|
|
351
|
+
// Evaluate the eight points. If there is a sign change, there is an intersection
|
|
352
|
+
for (let z = 4; z <= 5; ++z) {
|
|
416
353
|
p[2] = bounds[z];
|
|
417
|
-
|
|
418
|
-
for (var y = 2; y <= 3; ++y) {
|
|
354
|
+
for (let y = 2; y <= 3; ++y) {
|
|
419
355
|
p[1] = bounds[y];
|
|
420
|
-
|
|
421
|
-
for (var x = 0; x <= 1; ++x) {
|
|
356
|
+
for (let x = 0; x <= 1; ++x) {
|
|
422
357
|
p[0] = bounds[x];
|
|
423
358
|
d = vtkPlane.evaluate(normal, origin, p);
|
|
424
|
-
|
|
425
359
|
if (firstOne) {
|
|
426
360
|
sign = d >= 0 ? 1 : -1;
|
|
427
361
|
firstOne = 0;
|
|
428
362
|
}
|
|
429
|
-
|
|
430
363
|
if (d === 0.0 || sign > 0 && d < 0.0 || sign < 0 && d > 0.0) {
|
|
431
364
|
return 1;
|
|
432
365
|
}
|
|
433
366
|
}
|
|
434
367
|
}
|
|
435
368
|
}
|
|
436
|
-
|
|
437
369
|
return 0; // no intersection
|
|
438
370
|
}
|
|
439
371
|
|
|
440
|
-
function
|
|
441
|
-
if (!(
|
|
372
|
+
function intersect(bounds, bBounds) {
|
|
373
|
+
if (!(isValid(bounds) && isValid(bBounds))) {
|
|
442
374
|
return false;
|
|
443
375
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
for (var i = 0; i < 3; i++) {
|
|
376
|
+
const newBounds = [0, 0, 0, 0, 0, 0];
|
|
377
|
+
let intersection;
|
|
378
|
+
for (let i = 0; i < 3; i++) {
|
|
449
379
|
intersection = false;
|
|
450
|
-
|
|
451
380
|
if (bBounds[i * 2] >= bounds[i * 2] && bBounds[i * 2] <= bounds[i * 2 + 1]) {
|
|
452
381
|
intersection = true;
|
|
453
382
|
newBounds[i * 2] = bBounds[i * 2];
|
|
@@ -455,7 +384,6 @@ function _intersect(bounds, bBounds) {
|
|
|
455
384
|
intersection = true;
|
|
456
385
|
newBounds[i * 2] = bounds[i * 2];
|
|
457
386
|
}
|
|
458
|
-
|
|
459
387
|
if (bBounds[i * 2 + 1] >= bounds[i * 2] && bBounds[i * 2 + 1] <= bounds[i * 2 + 1]) {
|
|
460
388
|
intersection = true;
|
|
461
389
|
newBounds[i * 2 + 1] = bBounds[2 * i + 1];
|
|
@@ -463,13 +391,12 @@ function _intersect(bounds, bBounds) {
|
|
|
463
391
|
intersection = true;
|
|
464
392
|
newBounds[i * 2 + 1] = bounds[i * 2 + 1];
|
|
465
393
|
}
|
|
466
|
-
|
|
467
394
|
if (!intersection) {
|
|
468
395
|
return false;
|
|
469
396
|
}
|
|
470
|
-
}
|
|
471
|
-
|
|
397
|
+
}
|
|
472
398
|
|
|
399
|
+
// OK they did intersect - set the box to be the result
|
|
473
400
|
bounds[0] = newBounds[0];
|
|
474
401
|
bounds[1] = newBounds[1];
|
|
475
402
|
bounds[2] = newBounds[2];
|
|
@@ -478,92 +405,77 @@ function _intersect(bounds, bBounds) {
|
|
|
478
405
|
bounds[5] = newBounds[5];
|
|
479
406
|
return true;
|
|
480
407
|
}
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
if (!(_isValid(bounds) && _isValid(bBounds))) {
|
|
408
|
+
function intersects(bounds, bBounds) {
|
|
409
|
+
if (!(isValid(bounds) && isValid(bBounds))) {
|
|
484
410
|
return false;
|
|
485
411
|
}
|
|
486
412
|
/* eslint-disable no-continue */
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
for (var i = 0; i < 3; i++) {
|
|
413
|
+
for (let i = 0; i < 3; i++) {
|
|
490
414
|
if (bBounds[i * 2] >= bounds[i * 2] && bBounds[i * 2] <= bounds[i * 2 + 1]) {
|
|
491
415
|
continue;
|
|
492
416
|
} else if (bounds[i * 2] >= bBounds[i * 2] && bounds[i * 2] <= bBounds[i * 2 + 1]) {
|
|
493
417
|
continue;
|
|
494
418
|
}
|
|
495
|
-
|
|
496
419
|
if (bBounds[i * 2 + 1] >= bounds[i * 2] && bBounds[i * 2 + 1] <= bounds[i * 2 + 1]) {
|
|
497
420
|
continue;
|
|
498
421
|
} else if (bounds[i * 2 + 1] >= bBounds[i * 2] && bounds[i * 2 + 1] <= bBounds[i * 2 + 1]) {
|
|
499
422
|
continue;
|
|
500
423
|
}
|
|
501
|
-
|
|
502
424
|
return false;
|
|
503
425
|
}
|
|
504
426
|
/* eslint-enable no-continue */
|
|
505
427
|
|
|
506
|
-
|
|
507
428
|
return true;
|
|
508
429
|
}
|
|
509
|
-
|
|
510
|
-
function _containsPoint(bounds, x, y, z) {
|
|
430
|
+
function containsPoint(bounds, x, y, z) {
|
|
511
431
|
if (x < bounds[0] || x > bounds[1]) {
|
|
512
432
|
return false;
|
|
513
433
|
}
|
|
514
|
-
|
|
515
434
|
if (y < bounds[2] || y > bounds[3]) {
|
|
516
435
|
return false;
|
|
517
436
|
}
|
|
518
|
-
|
|
519
437
|
if (z < bounds[4] || z > bounds[5]) {
|
|
520
438
|
return false;
|
|
521
439
|
}
|
|
522
|
-
|
|
523
440
|
return true;
|
|
524
441
|
}
|
|
525
442
|
function contains(bounds, otherBounds) {
|
|
526
443
|
// if either box is not valid or they don't intersect
|
|
527
|
-
if (!
|
|
444
|
+
if (!intersects(bounds, otherBounds)) {
|
|
528
445
|
return false;
|
|
529
446
|
}
|
|
530
|
-
|
|
531
|
-
if (!_containsPoint.apply(void 0, [bounds].concat(_toConsumableArray(_getMinPoint(otherBounds))))) {
|
|
447
|
+
if (!containsPoint(bounds, ...getMinPoint(otherBounds))) {
|
|
532
448
|
return false;
|
|
533
449
|
}
|
|
534
|
-
|
|
535
|
-
if (!_containsPoint.apply(void 0, [bounds].concat(_toConsumableArray(_getMaxPoint(otherBounds))))) {
|
|
450
|
+
if (!containsPoint(bounds, ...getMaxPoint(otherBounds))) {
|
|
536
451
|
return false;
|
|
537
452
|
}
|
|
538
|
-
|
|
539
453
|
return true;
|
|
540
454
|
}
|
|
455
|
+
|
|
541
456
|
/**
|
|
542
457
|
* Returns true if plane intersects bounding box.
|
|
543
458
|
* If so, the box is cut by the plane
|
|
544
459
|
* @param {array} origin
|
|
545
460
|
* @param {array} normal
|
|
546
461
|
*/
|
|
547
|
-
|
|
548
|
-
function _cutWithPlane(bounds, origin, normal) {
|
|
462
|
+
function cutWithPlane(bounds, origin, normal) {
|
|
549
463
|
// Index[0..2] represents the order of traversing the corners of a cube
|
|
550
464
|
// in (x,y,z), (y,x,z) and (z,x,y) ordering, respectively
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
for (
|
|
557
|
-
for (
|
|
558
|
-
for (
|
|
559
|
-
|
|
465
|
+
const index = [[0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 4, 5, 2, 3, 6, 7], [0, 2, 4, 6, 1, 3, 5, 7]];
|
|
466
|
+
|
|
467
|
+
// stores the signed distance to a plane
|
|
468
|
+
const d = [0, 0, 0, 0, 0, 0, 0, 0];
|
|
469
|
+
let idx = 0;
|
|
470
|
+
for (let ix = 0; ix < 2; ix++) {
|
|
471
|
+
for (let iy = 2; iy < 4; iy++) {
|
|
472
|
+
for (let iz = 4; iz < 6; iz++) {
|
|
473
|
+
const x = [bounds[ix], bounds[iy], bounds[iz]];
|
|
560
474
|
d[idx++] = vtkPlane.evaluate(normal, origin, x);
|
|
561
475
|
}
|
|
562
476
|
}
|
|
563
477
|
}
|
|
564
|
-
|
|
565
|
-
var dir = 2;
|
|
566
|
-
|
|
478
|
+
let dir = 2;
|
|
567
479
|
while (dir--) {
|
|
568
480
|
// in each direction, we test if the vertices of two orthogonal faces
|
|
569
481
|
// are on either side of the plane
|
|
@@ -571,283 +483,203 @@ function _cutWithPlane(bounds, origin, normal) {
|
|
|
571
483
|
break;
|
|
572
484
|
}
|
|
573
485
|
}
|
|
574
|
-
|
|
575
486
|
if (dir < 0) {
|
|
576
487
|
return false;
|
|
577
488
|
}
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
var t = sign > 0 ? 1 : 0;
|
|
489
|
+
const sign = Math.sign(normal[dir]);
|
|
490
|
+
const size = Math.abs((bounds[dir * 2 + 1] - bounds[dir * 2]) * normal[dir]);
|
|
491
|
+
let t = sign > 0 ? 1 : 0;
|
|
582
492
|
/* eslint-disable no-continue */
|
|
583
|
-
|
|
584
|
-
for (var i = 0; i < 4; i++) {
|
|
493
|
+
for (let i = 0; i < 4; i++) {
|
|
585
494
|
if (size === 0) {
|
|
586
495
|
continue; // shouldn't happen
|
|
587
496
|
}
|
|
588
497
|
|
|
589
|
-
|
|
590
|
-
|
|
498
|
+
const ti = Math.abs(d[index[dir][i]]) / size;
|
|
591
499
|
if (sign > 0 && ti < t) {
|
|
592
500
|
t = ti;
|
|
593
501
|
}
|
|
594
|
-
|
|
595
502
|
if (sign < 0 && ti > t) {
|
|
596
503
|
t = ti;
|
|
597
504
|
}
|
|
598
505
|
}
|
|
599
506
|
/* eslint-enable no-continue */
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
var bound = (1.0 - t) * bounds[dir * 2] + t * bounds[dir * 2 + 1];
|
|
603
|
-
|
|
507
|
+
const bound = (1.0 - t) * bounds[dir * 2] + t * bounds[dir * 2 + 1];
|
|
604
508
|
if (sign > 0) {
|
|
605
509
|
bounds[dir * 2] = bound;
|
|
606
510
|
} else {
|
|
607
511
|
bounds[dir * 2 + 1] = bound;
|
|
608
512
|
}
|
|
609
|
-
|
|
610
513
|
return true;
|
|
611
|
-
}
|
|
514
|
+
}
|
|
612
515
|
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
516
|
+
// ----------------------------------------------------------------------------
|
|
517
|
+
// Light Weight class
|
|
518
|
+
// ----------------------------------------------------------------------------
|
|
616
519
|
|
|
520
|
+
class BoundingBox {
|
|
521
|
+
constructor(refBounds) {
|
|
617
522
|
this.bounds = refBounds;
|
|
618
|
-
|
|
619
523
|
if (!this.bounds) {
|
|
620
524
|
this.bounds = new Float64Array(INIT_BOUNDS);
|
|
621
525
|
}
|
|
622
526
|
}
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
}
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
value: function setBounds(otherBounds) {
|
|
642
|
-
return _setBounds(this.bounds, otherBounds);
|
|
643
|
-
}
|
|
644
|
-
}, {
|
|
645
|
-
key: "reset",
|
|
646
|
-
value: function reset() {
|
|
647
|
-
return _reset(this.bounds);
|
|
648
|
-
}
|
|
649
|
-
}, {
|
|
650
|
-
key: "addPoint",
|
|
651
|
-
value: function addPoint() {
|
|
652
|
-
for (var _len = arguments.length, xyz = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
653
|
-
xyz[_key] = arguments[_key];
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
return _addPoint.apply(void 0, [this.bounds].concat(xyz));
|
|
657
|
-
}
|
|
658
|
-
}, {
|
|
659
|
-
key: "addPoints",
|
|
660
|
-
value: function addPoints(points) {
|
|
661
|
-
return _addPoints(this.bounds, points);
|
|
662
|
-
}
|
|
663
|
-
}, {
|
|
664
|
-
key: "addBounds",
|
|
665
|
-
value: function addBounds(xMin, xMax, yMin, yMax, zMin, zMax) {
|
|
666
|
-
return _addBounds(this.bounds, xMin, xMax, yMin, yMax, zMin, zMax);
|
|
667
|
-
}
|
|
668
|
-
}, {
|
|
669
|
-
key: "setMinPoint",
|
|
670
|
-
value: function setMinPoint(x, y, z) {
|
|
671
|
-
return _setMinPoint(this.bounds, x, y, z);
|
|
672
|
-
}
|
|
673
|
-
}, {
|
|
674
|
-
key: "setMaxPoint",
|
|
675
|
-
value: function setMaxPoint(x, y, z) {
|
|
676
|
-
return _setMaxPoint(this.bounds, x, y, z);
|
|
677
|
-
}
|
|
678
|
-
}, {
|
|
679
|
-
key: "inflate",
|
|
680
|
-
value: function inflate(delta) {
|
|
681
|
-
return _inflate(this.bounds, delta);
|
|
682
|
-
}
|
|
683
|
-
}, {
|
|
684
|
-
key: "scale",
|
|
685
|
-
value: function scale(sx, sy, sz) {
|
|
686
|
-
return _scale(this.bounds, sx, sy, sz);
|
|
687
|
-
}
|
|
688
|
-
}, {
|
|
689
|
-
key: "getCenter",
|
|
690
|
-
value: function getCenter() {
|
|
691
|
-
return _getCenter(this.bounds);
|
|
692
|
-
}
|
|
693
|
-
}, {
|
|
694
|
-
key: "getLength",
|
|
695
|
-
value: function getLength(index) {
|
|
696
|
-
return _getLength(this.bounds, index);
|
|
697
|
-
}
|
|
698
|
-
}, {
|
|
699
|
-
key: "getLengths",
|
|
700
|
-
value: function getLengths() {
|
|
701
|
-
return _getLengths(this.bounds);
|
|
702
|
-
}
|
|
703
|
-
}, {
|
|
704
|
-
key: "getMaxLength",
|
|
705
|
-
value: function getMaxLength() {
|
|
706
|
-
return _getMaxLength(this.bounds);
|
|
707
|
-
}
|
|
708
|
-
}, {
|
|
709
|
-
key: "getDiagonalLength",
|
|
710
|
-
value: function getDiagonalLength() {
|
|
711
|
-
return _getDiagonalLength(this.bounds);
|
|
712
|
-
}
|
|
713
|
-
}, {
|
|
714
|
-
key: "getMinPoint",
|
|
715
|
-
value: function getMinPoint() {
|
|
716
|
-
return _getMinPoint(this.bounds);
|
|
717
|
-
}
|
|
718
|
-
}, {
|
|
719
|
-
key: "getMaxPoint",
|
|
720
|
-
value: function getMaxPoint() {
|
|
721
|
-
return _getMaxPoint(this.bounds);
|
|
722
|
-
}
|
|
723
|
-
}, {
|
|
724
|
-
key: "getXRange",
|
|
725
|
-
value: function getXRange() {
|
|
726
|
-
return _getXRange(this.bounds);
|
|
727
|
-
}
|
|
728
|
-
}, {
|
|
729
|
-
key: "getYRange",
|
|
730
|
-
value: function getYRange() {
|
|
731
|
-
return _getYRange(this.bounds);
|
|
732
|
-
}
|
|
733
|
-
}, {
|
|
734
|
-
key: "getZRange",
|
|
735
|
-
value: function getZRange() {
|
|
736
|
-
return _getZRange(this.bounds);
|
|
737
|
-
}
|
|
738
|
-
}, {
|
|
739
|
-
key: "getCorners",
|
|
740
|
-
value: function getCorners(corners) {
|
|
741
|
-
return _getCorners(this.bounds, corners);
|
|
742
|
-
}
|
|
743
|
-
}, {
|
|
744
|
-
key: "computeCornerPoints",
|
|
745
|
-
value: function computeCornerPoints(point1, point2) {
|
|
746
|
-
return _computeCornerPoints(this.bounds, point1, point2);
|
|
747
|
-
}
|
|
748
|
-
}, {
|
|
749
|
-
key: "computeLocalBounds",
|
|
750
|
-
value: function computeLocalBounds(u, v, w) {
|
|
751
|
-
return _computeLocalBounds(this.bounds, u, v, w);
|
|
752
|
-
}
|
|
753
|
-
}, {
|
|
754
|
-
key: "transformBounds",
|
|
755
|
-
value: function transformBounds(transform) {
|
|
756
|
-
var out = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
757
|
-
return _transformBounds(this.bounds, transform, out);
|
|
758
|
-
}
|
|
759
|
-
}, {
|
|
760
|
-
key: "computeScale3",
|
|
761
|
-
value: function computeScale3(scale3) {
|
|
762
|
-
return _computeScale(this.bounds, scale3);
|
|
763
|
-
}
|
|
764
|
-
}, {
|
|
765
|
-
key: "cutWithPlane",
|
|
766
|
-
value: function cutWithPlane(origin, normal) {
|
|
767
|
-
return _cutWithPlane(this.bounds, origin, normal);
|
|
768
|
-
}
|
|
769
|
-
}, {
|
|
770
|
-
key: "intersectBox",
|
|
771
|
-
value: function intersectBox(origin, dir, coord, tolerance) {
|
|
772
|
-
return _intersectBox(this.bounds, origin, dir, coord, tolerance);
|
|
773
|
-
}
|
|
774
|
-
}, {
|
|
775
|
-
key: "intersectPlane",
|
|
776
|
-
value: function intersectPlane(origin, normal) {
|
|
777
|
-
return _intersectPlane(this.bounds, origin, normal);
|
|
778
|
-
}
|
|
779
|
-
}, {
|
|
780
|
-
key: "intersect",
|
|
781
|
-
value: function intersect(otherBounds) {
|
|
782
|
-
return _intersect(this.bounds, otherBounds);
|
|
783
|
-
}
|
|
784
|
-
}, {
|
|
785
|
-
key: "intersects",
|
|
786
|
-
value: function intersects(otherBounds) {
|
|
787
|
-
return _intersects(this.bounds, otherBounds);
|
|
788
|
-
}
|
|
789
|
-
}, {
|
|
790
|
-
key: "containsPoint",
|
|
791
|
-
value: function containsPoint(x, y, z) {
|
|
792
|
-
return _containsPoint(this.bounds, x, y, z);
|
|
793
|
-
}
|
|
794
|
-
}, {
|
|
795
|
-
key: "contains",
|
|
796
|
-
value: function contains(otherBounds) {
|
|
797
|
-
return _intersects(this.bounds, otherBounds);
|
|
527
|
+
getBounds() {
|
|
528
|
+
return this.bounds;
|
|
529
|
+
}
|
|
530
|
+
equals(otherBounds) {
|
|
531
|
+
return equals(this.bounds, otherBounds);
|
|
532
|
+
}
|
|
533
|
+
isValid() {
|
|
534
|
+
return isValid(this.bounds);
|
|
535
|
+
}
|
|
536
|
+
setBounds(otherBounds) {
|
|
537
|
+
return setBounds(this.bounds, otherBounds);
|
|
538
|
+
}
|
|
539
|
+
reset() {
|
|
540
|
+
return reset(this.bounds);
|
|
541
|
+
}
|
|
542
|
+
addPoint() {
|
|
543
|
+
for (var _len = arguments.length, xyz = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
544
|
+
xyz[_key] = arguments[_key];
|
|
798
545
|
}
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
546
|
+
return addPoint(this.bounds, ...xyz);
|
|
547
|
+
}
|
|
548
|
+
addPoints(points) {
|
|
549
|
+
return addPoints(this.bounds, points);
|
|
550
|
+
}
|
|
551
|
+
addBounds(xMin, xMax, yMin, yMax, zMin, zMax) {
|
|
552
|
+
return addBounds(this.bounds, xMin, xMax, yMin, yMax, zMin, zMax);
|
|
553
|
+
}
|
|
554
|
+
setMinPoint(x, y, z) {
|
|
555
|
+
return setMinPoint(this.bounds, x, y, z);
|
|
556
|
+
}
|
|
557
|
+
setMaxPoint(x, y, z) {
|
|
558
|
+
return setMaxPoint(this.bounds, x, y, z);
|
|
559
|
+
}
|
|
560
|
+
inflate(delta) {
|
|
561
|
+
return inflate(this.bounds, delta);
|
|
562
|
+
}
|
|
563
|
+
scale(sx, sy, sz) {
|
|
564
|
+
return scale(this.bounds, sx, sy, sz);
|
|
565
|
+
}
|
|
566
|
+
getCenter() {
|
|
567
|
+
return getCenter(this.bounds);
|
|
568
|
+
}
|
|
569
|
+
getLength(index) {
|
|
570
|
+
return getLength(this.bounds, index);
|
|
571
|
+
}
|
|
572
|
+
getLengths() {
|
|
573
|
+
return getLengths(this.bounds);
|
|
574
|
+
}
|
|
575
|
+
getMaxLength() {
|
|
576
|
+
return getMaxLength(this.bounds);
|
|
577
|
+
}
|
|
578
|
+
getDiagonalLength() {
|
|
579
|
+
return getDiagonalLength(this.bounds);
|
|
580
|
+
}
|
|
581
|
+
getMinPoint() {
|
|
582
|
+
return getMinPoint(this.bounds);
|
|
583
|
+
}
|
|
584
|
+
getMaxPoint() {
|
|
585
|
+
return getMaxPoint(this.bounds);
|
|
586
|
+
}
|
|
587
|
+
getXRange() {
|
|
588
|
+
return getXRange(this.bounds);
|
|
589
|
+
}
|
|
590
|
+
getYRange() {
|
|
591
|
+
return getYRange(this.bounds);
|
|
592
|
+
}
|
|
593
|
+
getZRange() {
|
|
594
|
+
return getZRange(this.bounds);
|
|
595
|
+
}
|
|
596
|
+
getCorners(corners) {
|
|
597
|
+
return getCorners(this.bounds, corners);
|
|
598
|
+
}
|
|
599
|
+
computeCornerPoints(point1, point2) {
|
|
600
|
+
return computeCornerPoints(this.bounds, point1, point2);
|
|
601
|
+
}
|
|
602
|
+
computeLocalBounds(u, v, w) {
|
|
603
|
+
return computeLocalBounds(this.bounds, u, v, w);
|
|
604
|
+
}
|
|
605
|
+
transformBounds(transform) {
|
|
606
|
+
let out = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
607
|
+
return transformBounds(this.bounds, transform, out);
|
|
608
|
+
}
|
|
609
|
+
computeScale3(scale3) {
|
|
610
|
+
return computeScale3(this.bounds, scale3);
|
|
611
|
+
}
|
|
612
|
+
cutWithPlane(origin, normal) {
|
|
613
|
+
return cutWithPlane(this.bounds, origin, normal);
|
|
614
|
+
}
|
|
615
|
+
intersectBox(origin, dir, coord, tolerance) {
|
|
616
|
+
return intersectBox(this.bounds, origin, dir, coord, tolerance);
|
|
617
|
+
}
|
|
618
|
+
intersectPlane(origin, normal) {
|
|
619
|
+
return intersectPlane(this.bounds, origin, normal);
|
|
620
|
+
}
|
|
621
|
+
intersect(otherBounds) {
|
|
622
|
+
return intersect(this.bounds, otherBounds);
|
|
623
|
+
}
|
|
624
|
+
intersects(otherBounds) {
|
|
625
|
+
return intersects(this.bounds, otherBounds);
|
|
626
|
+
}
|
|
627
|
+
containsPoint(x, y, z) {
|
|
628
|
+
return containsPoint(this.bounds, x, y, z);
|
|
629
|
+
}
|
|
630
|
+
contains(otherBounds) {
|
|
631
|
+
return intersects(this.bounds, otherBounds);
|
|
632
|
+
}
|
|
633
|
+
}
|
|
804
634
|
function newInstance(initialValues) {
|
|
805
|
-
|
|
635
|
+
const bounds = initialValues && initialValues.bounds;
|
|
806
636
|
return new BoundingBox(bounds);
|
|
807
|
-
}
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
// ----------------------------------------------------------------------------
|
|
808
640
|
// Static API
|
|
809
641
|
// ----------------------------------------------------------------------------
|
|
810
642
|
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
643
|
+
const STATIC = {
|
|
644
|
+
equals,
|
|
645
|
+
isValid,
|
|
646
|
+
setBounds,
|
|
647
|
+
reset,
|
|
648
|
+
addPoint,
|
|
649
|
+
addPoints,
|
|
650
|
+
addBounds,
|
|
651
|
+
setMinPoint,
|
|
652
|
+
setMaxPoint,
|
|
653
|
+
inflate,
|
|
654
|
+
scale,
|
|
655
|
+
scaleAboutCenter,
|
|
656
|
+
getCenter,
|
|
657
|
+
getLength,
|
|
658
|
+
getLengths,
|
|
659
|
+
getMaxLength,
|
|
660
|
+
getDiagonalLength,
|
|
661
|
+
getMinPoint,
|
|
662
|
+
getMaxPoint,
|
|
663
|
+
getXRange,
|
|
664
|
+
getYRange,
|
|
665
|
+
getZRange,
|
|
666
|
+
getCorners,
|
|
667
|
+
computeCornerPoints,
|
|
668
|
+
computeLocalBounds,
|
|
669
|
+
transformBounds,
|
|
670
|
+
computeScale3,
|
|
671
|
+
cutWithPlane,
|
|
672
|
+
intersectBox,
|
|
673
|
+
intersectPlane,
|
|
674
|
+
intersect,
|
|
675
|
+
intersects,
|
|
676
|
+
containsPoint,
|
|
677
|
+
contains,
|
|
678
|
+
INIT_BOUNDS
|
|
679
|
+
};
|
|
680
|
+
var vtkBoundingBox = {
|
|
681
|
+
newInstance,
|
|
682
|
+
...STATIC
|
|
848
683
|
};
|
|
849
|
-
var vtkBoundingBox = _objectSpread({
|
|
850
|
-
newInstance: newInstance
|
|
851
|
-
}, STATIC);
|
|
852
684
|
|
|
853
|
-
export { STATIC,
|
|
685
|
+
export { STATIC, addBounds, addPoint, addPoints, computeCornerPoints, computeLocalBounds, computeScale3, contains, containsPoint, cutWithPlane, vtkBoundingBox as default, equals, getCenter, getCorners, getDiagonalLength, getLength, getLengths, getMaxLength, getMaxPoint, getMinPoint, getXRange, getYRange, getZRange, inflate, intersect, intersectBox, intersectPlane, intersects, isValid, reset, scale, scaleAboutCenter, setBounds, setMaxPoint, setMinPoint, transformBounds };
|