@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,210 +1,196 @@
|
|
|
1
|
-
import
|
|
2
|
-
import macro from '../../macros.js';
|
|
1
|
+
import { m as macro } from '../../macros2.js';
|
|
3
2
|
import vtkCell from './Cell.js';
|
|
4
3
|
import { d as dot, j as cross, l as normalize, m as multiplyAccumulate, e as distance2BetweenPoints, o as determinant2x2 } from '../Core/Math/index.js';
|
|
5
4
|
import vtkLine from './Line.js';
|
|
6
5
|
import vtkPlane from './Plane.js';
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
|
+
// ----------------------------------------------------------------------------
|
|
11
8
|
// Global methods
|
|
12
9
|
// ----------------------------------------------------------------------------
|
|
13
10
|
|
|
14
11
|
function computeNormalDirection(v1, v2, v3, n) {
|
|
15
12
|
// order is important!!! maintain consistency with triangle vertex order
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
const ax = v3[0] - v2[0];
|
|
14
|
+
const ay = v3[1] - v2[1];
|
|
15
|
+
const az = v3[2] - v2[2];
|
|
16
|
+
const bx = v1[0] - v2[0];
|
|
17
|
+
const by = v1[1] - v2[1];
|
|
18
|
+
const bz = v1[2] - v2[2];
|
|
22
19
|
n[0] = ay * bz - az * by;
|
|
23
20
|
n[1] = az * bx - ax * bz;
|
|
24
21
|
n[2] = ax * by - ay * bx;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
function computeNormal(v1, v2, v3, n) {
|
|
28
24
|
computeNormalDirection(v1, v2, v3, n);
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
const length = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]);
|
|
31
26
|
if (length !== 0.0) {
|
|
32
27
|
n[0] /= length;
|
|
33
28
|
n[1] /= length;
|
|
34
29
|
n[2] /= length;
|
|
35
30
|
}
|
|
36
31
|
}
|
|
37
|
-
|
|
38
32
|
function intersectWithTriangle(p1, q1, r1, p2, q2, r2) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
33
|
+
let tolerance = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1e-6;
|
|
34
|
+
let coplanar = false;
|
|
35
|
+
const pt1 = [];
|
|
36
|
+
const pt2 = [];
|
|
37
|
+
const surfaceId = [];
|
|
38
|
+
const n1 = [];
|
|
39
|
+
const n2 = [];
|
|
40
|
+
|
|
41
|
+
// Compute supporting plane normals.
|
|
47
42
|
computeNormal(p1, q1, r1, n1);
|
|
48
43
|
computeNormal(p2, q2, r2, n2);
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
const s1 = -dot(n1, p1);
|
|
45
|
+
const s2 = -dot(n2, p2);
|
|
46
|
+
|
|
47
|
+
// Compute signed distances of points p1, q1, r1 from supporting
|
|
51
48
|
// plane of second triangle.
|
|
49
|
+
const dist1 = [dot(n2, p1) + s2, dot(n2, q1) + s2, dot(n2, r1) + s2];
|
|
52
50
|
|
|
53
|
-
|
|
51
|
+
// If signs of all points are the same, all the points lie on the
|
|
54
52
|
// same side of the supporting plane, and we can exit early.
|
|
55
|
-
|
|
56
53
|
if (dist1[0] * dist1[1] > tolerance && dist1[0] * dist1[2] > tolerance) {
|
|
57
54
|
// vtkDebugMacro(<<"Same side supporting plane 1!");
|
|
58
55
|
return {
|
|
59
56
|
intersect: false,
|
|
60
|
-
coplanar
|
|
61
|
-
pt1
|
|
62
|
-
pt2
|
|
63
|
-
surfaceId
|
|
57
|
+
coplanar,
|
|
58
|
+
pt1,
|
|
59
|
+
pt2,
|
|
60
|
+
surfaceId
|
|
64
61
|
};
|
|
65
|
-
}
|
|
62
|
+
}
|
|
63
|
+
// Do the same for p2, q2, r2 and supporting plane of first
|
|
66
64
|
// triangle.
|
|
65
|
+
const dist2 = [dot(n1, p2) + s1, dot(n1, q2) + s1, dot(n1, r2) + s1];
|
|
67
66
|
|
|
68
|
-
|
|
69
|
-
var dist2 = [dot(n1, p2) + s1, dot(n1, q2) + s1, dot(n1, r2) + s1]; // If signs of all points are the same, all the points lie on the
|
|
67
|
+
// If signs of all points are the same, all the points lie on the
|
|
70
68
|
// same side of the supporting plane, and we can exit early.
|
|
71
|
-
|
|
72
69
|
if (dist2[0] * dist2[1] > tolerance && dist2[0] * dist2[2] > tolerance) {
|
|
73
70
|
// vtkDebugMacro(<<"Same side supporting plane 2!");
|
|
74
71
|
return {
|
|
75
72
|
intersect: false,
|
|
76
|
-
coplanar
|
|
77
|
-
pt1
|
|
78
|
-
pt2
|
|
79
|
-
surfaceId
|
|
73
|
+
coplanar,
|
|
74
|
+
pt1,
|
|
75
|
+
pt2,
|
|
76
|
+
surfaceId
|
|
80
77
|
};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
}
|
|
79
|
+
// Check for coplanarity of the supporting planes.
|
|
84
80
|
if (Math.abs(n1[0] - n2[0]) < 1e-9 && Math.abs(n1[1] - n2[1]) < 1e-9 && Math.abs(n1[2] - n2[2]) < 1e-9 && Math.abs(s1 - s2) < 1e-9) {
|
|
85
|
-
coplanar = true;
|
|
86
|
-
|
|
81
|
+
coplanar = true;
|
|
82
|
+
// vtkDebugMacro(<<"Coplanar!");
|
|
87
83
|
return {
|
|
88
84
|
intersect: false,
|
|
89
|
-
coplanar
|
|
90
|
-
pt1
|
|
91
|
-
pt2
|
|
92
|
-
surfaceId
|
|
85
|
+
coplanar,
|
|
86
|
+
pt1,
|
|
87
|
+
pt2,
|
|
88
|
+
surfaceId
|
|
93
89
|
};
|
|
94
|
-
}
|
|
95
|
-
// it exists), but this is clear enough.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
var pts1 = [p1, q1, r1];
|
|
99
|
-
var pts2 = [p2, q2, r2]; // Find line of intersection (L = p + t*v) between two planes.
|
|
90
|
+
}
|
|
100
91
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
92
|
+
// There are more efficient ways to find the intersection line (if
|
|
93
|
+
// it exists), but this is clear enough.
|
|
94
|
+
const pts1 = [p1, q1, r1];
|
|
95
|
+
const pts2 = [p2, q2, r2];
|
|
96
|
+
|
|
97
|
+
// Find line of intersection (L = p + t*v) between two planes.
|
|
98
|
+
const n1n2 = dot(n1, n2);
|
|
99
|
+
const a = (s1 - s2 * n1n2) / (n1n2 * n1n2 - 1.0);
|
|
100
|
+
const b = (s2 - s1 * n1n2) / (n1n2 * n1n2 - 1.0);
|
|
101
|
+
const p = [a * n1[0] + b * n2[0], a * n1[1] + b * n2[1], a * n1[2] + b * n2[2]];
|
|
102
|
+
const v = cross(n1, n2, []);
|
|
106
103
|
normalize(v);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
104
|
+
let index1 = 0;
|
|
105
|
+
let index2 = 0;
|
|
106
|
+
const t1 = [];
|
|
107
|
+
const t2 = [];
|
|
108
|
+
let ts1 = 50;
|
|
109
|
+
let ts2 = 50;
|
|
110
|
+
for (let i = 0; i < 3; i++) {
|
|
111
|
+
const id1 = i;
|
|
112
|
+
const id2 = (i + 1) % 3;
|
|
113
|
+
|
|
114
|
+
// Find t coordinate on line of intersection between two planes.
|
|
115
|
+
const val1 = vtkPlane.intersectWithLine(pts1[id1], pts1[id2], p2, n2);
|
|
120
116
|
if (val1.intersection && val1.t > 0 - tolerance && val1.t < 1 + tolerance) {
|
|
121
117
|
if (val1.t < 1 + tolerance && val1.t > 1 - tolerance) {
|
|
122
118
|
ts1 = index1;
|
|
123
119
|
}
|
|
124
|
-
|
|
125
120
|
t1[index1++] = dot(val1.x, v) - dot(p, v);
|
|
126
121
|
}
|
|
127
|
-
|
|
128
|
-
var val2 = vtkPlane.intersectWithLine(pts2[id1], pts2[id2], p1, n1);
|
|
129
|
-
|
|
122
|
+
const val2 = vtkPlane.intersectWithLine(pts2[id1], pts2[id2], p1, n1);
|
|
130
123
|
if (val2.intersection && val2.t > 0 - tolerance && val2.t < 1 + tolerance) {
|
|
131
124
|
if (val2.t < 1 + tolerance && val2.t > 1 - tolerance) {
|
|
132
125
|
ts2 = index2;
|
|
133
126
|
}
|
|
134
|
-
|
|
135
127
|
t2[index2++] = dot(val2.x, v) - dot(p, v);
|
|
136
128
|
}
|
|
137
|
-
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// If the value of the index is greater than 2, the intersecting point
|
|
138
132
|
// actually is intersected by all three edges. In this case, set the two
|
|
139
133
|
// edges to the two edges where the intersecting point is not the end point
|
|
140
|
-
|
|
141
|
-
|
|
142
134
|
if (index1 > 2) {
|
|
143
|
-
index1--;
|
|
144
|
-
|
|
145
|
-
|
|
135
|
+
index1--;
|
|
136
|
+
// swap
|
|
137
|
+
const t12 = t1[2];
|
|
146
138
|
t1[2] = t1[ts1];
|
|
147
139
|
t1[ts1] = t12;
|
|
148
140
|
}
|
|
149
|
-
|
|
150
141
|
if (index2 > 2) {
|
|
151
142
|
index2--;
|
|
152
|
-
|
|
143
|
+
const t22 = t2[2];
|
|
153
144
|
t2[2] = t2[ts2];
|
|
154
145
|
t2[ts2] = t22;
|
|
155
|
-
}
|
|
146
|
+
}
|
|
147
|
+
// Check if only one edge or all edges intersect the supporting
|
|
156
148
|
// planes intersection.
|
|
157
|
-
|
|
158
|
-
|
|
159
149
|
if (index1 !== 2 || index2 !== 2) {
|
|
160
150
|
// vtkDebugMacro(<<"Only one edge intersecting!");
|
|
161
151
|
return {
|
|
162
152
|
intersect: false,
|
|
163
|
-
coplanar
|
|
164
|
-
pt1
|
|
165
|
-
pt2
|
|
166
|
-
surfaceId
|
|
153
|
+
coplanar,
|
|
154
|
+
pt1,
|
|
155
|
+
pt2,
|
|
156
|
+
surfaceId
|
|
167
157
|
};
|
|
168
|
-
}
|
|
169
|
-
|
|
158
|
+
}
|
|
170
159
|
|
|
160
|
+
// Check for NaNs
|
|
171
161
|
if (Number.isNaN(t1[0]) || Number.isNaN(t1[1]) || Number.isNaN(t2[0]) || Number.isNaN(t2[1])) {
|
|
172
162
|
// vtkWarningMacro(<<"NaNs!");
|
|
173
163
|
return {
|
|
174
164
|
intersect: false,
|
|
175
|
-
coplanar
|
|
176
|
-
pt1
|
|
177
|
-
pt2
|
|
178
|
-
surfaceId
|
|
165
|
+
coplanar,
|
|
166
|
+
pt1,
|
|
167
|
+
pt2,
|
|
168
|
+
surfaceId
|
|
179
169
|
};
|
|
180
170
|
}
|
|
181
|
-
|
|
182
171
|
if (t1[0] > t1[1]) {
|
|
183
172
|
// swap
|
|
184
|
-
|
|
173
|
+
const t11 = t1[1];
|
|
185
174
|
t1[1] = t1[0];
|
|
186
175
|
t1[0] = t11;
|
|
187
176
|
}
|
|
188
|
-
|
|
189
177
|
if (t2[0] > t2[1]) {
|
|
190
178
|
// swap
|
|
191
|
-
|
|
179
|
+
const t21 = t2[1];
|
|
192
180
|
t2[1] = t2[0];
|
|
193
181
|
t2[0] = t21;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
var tt2;
|
|
199
|
-
|
|
182
|
+
}
|
|
183
|
+
// Handle the different interval configuration cases.
|
|
184
|
+
let tt1;
|
|
185
|
+
let tt2;
|
|
200
186
|
if (t1[1] < t2[0] || t2[1] < t1[0]) {
|
|
201
187
|
// vtkDebugMacro(<<"No Overlap!");
|
|
202
188
|
return {
|
|
203
189
|
intersect: false,
|
|
204
|
-
coplanar
|
|
205
|
-
pt1
|
|
206
|
-
pt2
|
|
207
|
-
surfaceId
|
|
190
|
+
coplanar,
|
|
191
|
+
pt1,
|
|
192
|
+
pt2,
|
|
193
|
+
surfaceId
|
|
208
194
|
}; // No overlap
|
|
209
195
|
}
|
|
210
196
|
|
|
@@ -235,101 +221,95 @@ function intersectWithTriangle(p1, q1, r1, p2, q2, r2) {
|
|
|
235
221
|
surfaceId[1] = 2;
|
|
236
222
|
tt1 = t1[0];
|
|
237
223
|
tt2 = t2[1];
|
|
238
|
-
}
|
|
239
|
-
|
|
224
|
+
}
|
|
240
225
|
|
|
226
|
+
// Create actual intersection points.
|
|
241
227
|
multiplyAccumulate(p, v, tt1, pt1);
|
|
242
228
|
multiplyAccumulate(p, v, tt2, pt2);
|
|
243
229
|
return {
|
|
244
230
|
intersect: true,
|
|
245
|
-
coplanar
|
|
246
|
-
pt1
|
|
247
|
-
pt2
|
|
248
|
-
surfaceId
|
|
231
|
+
coplanar,
|
|
232
|
+
pt1,
|
|
233
|
+
pt2,
|
|
234
|
+
surfaceId
|
|
249
235
|
};
|
|
250
|
-
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// ----------------------------------------------------------------------------
|
|
251
239
|
// Static API
|
|
252
240
|
// ----------------------------------------------------------------------------
|
|
253
241
|
|
|
242
|
+
const STATIC = {
|
|
243
|
+
computeNormalDirection,
|
|
244
|
+
computeNormal,
|
|
245
|
+
intersectWithTriangle
|
|
246
|
+
};
|
|
254
247
|
|
|
255
|
-
|
|
256
|
-
computeNormalDirection: computeNormalDirection,
|
|
257
|
-
computeNormal: computeNormal,
|
|
258
|
-
intersectWithTriangle: intersectWithTriangle
|
|
259
|
-
}; // ----------------------------------------------------------------------------
|
|
248
|
+
// ----------------------------------------------------------------------------
|
|
260
249
|
// vtkTriangle methods
|
|
261
250
|
// ----------------------------------------------------------------------------
|
|
262
251
|
|
|
263
252
|
function vtkTriangle(publicAPI, model) {
|
|
264
253
|
// Set our className
|
|
265
254
|
model.classHierarchy.push('vtkTriangle');
|
|
266
|
-
|
|
267
|
-
publicAPI.
|
|
268
|
-
|
|
269
|
-
};
|
|
270
|
-
|
|
271
|
-
publicAPI.intersectWithLine = function (p1, p2, tol, x, pcoords) {
|
|
272
|
-
var outObj = {
|
|
255
|
+
publicAPI.getCellDimension = () => 2;
|
|
256
|
+
publicAPI.intersectWithLine = (p1, p2, tol, x, pcoords) => {
|
|
257
|
+
const outObj = {
|
|
273
258
|
subId: 0,
|
|
274
259
|
t: Number.MAX_VALUE,
|
|
275
260
|
intersect: 0,
|
|
276
261
|
betweenPoints: false
|
|
277
262
|
};
|
|
278
263
|
pcoords[2] = 0.0;
|
|
279
|
-
|
|
280
|
-
|
|
264
|
+
const closestPoint = [];
|
|
265
|
+
const tol2 = tol * tol;
|
|
281
266
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
267
|
+
// Get normal for triangle
|
|
268
|
+
const pt1 = [];
|
|
269
|
+
const pt2 = [];
|
|
270
|
+
const pt3 = [];
|
|
285
271
|
model.points.getPoint(0, pt1);
|
|
286
272
|
model.points.getPoint(1, pt2);
|
|
287
273
|
model.points.getPoint(2, pt3);
|
|
288
|
-
|
|
289
|
-
|
|
274
|
+
const n = [];
|
|
275
|
+
const weights = [];
|
|
290
276
|
computeNormal(pt1, pt2, pt3, n);
|
|
291
|
-
|
|
292
277
|
if (n[0] !== 0 || n[1] !== 0 || n[2] !== 0) {
|
|
293
278
|
// Intersect plane of triangle with line
|
|
294
|
-
|
|
279
|
+
const plane = vtkPlane.intersectWithLine(p1, p2, pt1, n);
|
|
295
280
|
outObj.betweenPoints = plane.betweenPoints;
|
|
296
281
|
outObj.t = plane.t;
|
|
297
282
|
x[0] = plane.x[0];
|
|
298
283
|
x[1] = plane.x[1];
|
|
299
284
|
x[2] = plane.x[2];
|
|
300
|
-
|
|
301
285
|
if (!plane.intersection) {
|
|
302
286
|
pcoords[0] = 0.0;
|
|
303
287
|
pcoords[1] = 0.0;
|
|
304
288
|
outObj.intersect = 0;
|
|
305
289
|
return outObj;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
var inside = publicAPI.evaluatePosition(x, closestPoint, pcoords, weights);
|
|
290
|
+
}
|
|
310
291
|
|
|
292
|
+
// Evaluate position
|
|
293
|
+
const inside = publicAPI.evaluatePosition(x, closestPoint, pcoords, weights);
|
|
311
294
|
if (inside.evaluation >= 0) {
|
|
312
295
|
if (inside.dist2 <= tol2) {
|
|
313
296
|
outObj.intersect = 1;
|
|
314
297
|
return outObj;
|
|
315
298
|
}
|
|
316
|
-
|
|
317
299
|
outObj.intersect = inside.evaluation;
|
|
318
300
|
return outObj;
|
|
319
301
|
}
|
|
320
|
-
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// Normals are null, so the triangle is degenerated and
|
|
321
305
|
// we still need to check intersection between line and
|
|
322
306
|
// the longest edge.
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
var dist2Pt2Pt3 = distance2BetweenPoints(pt2, pt3);
|
|
327
|
-
var dist2Pt3Pt1 = distance2BetweenPoints(pt3, pt1);
|
|
328
|
-
|
|
307
|
+
const dist2Pt1Pt2 = distance2BetweenPoints(pt1, pt2);
|
|
308
|
+
const dist2Pt2Pt3 = distance2BetweenPoints(pt2, pt3);
|
|
309
|
+
const dist2Pt3Pt1 = distance2BetweenPoints(pt3, pt1);
|
|
329
310
|
if (!model.line) {
|
|
330
311
|
model.line = vtkLine.newInstance();
|
|
331
312
|
}
|
|
332
|
-
|
|
333
313
|
if (dist2Pt1Pt2 > dist2Pt2Pt3 && dist2Pt1Pt2 > dist2Pt3Pt1) {
|
|
334
314
|
model.line.getPoints().setPoint(0, pt1);
|
|
335
315
|
model.line.getPoints().setPoint(1, pt2);
|
|
@@ -340,77 +320,74 @@ function vtkTriangle(publicAPI, model) {
|
|
|
340
320
|
model.line.getPoints().setPoint(0, pt3);
|
|
341
321
|
model.line.getPoints().setPoint(1, pt1);
|
|
342
322
|
}
|
|
343
|
-
|
|
344
|
-
var intersectLine = model.line.intersectWithLine(p1, p2, tol, x, pcoords);
|
|
323
|
+
const intersectLine = model.line.intersectWithLine(p1, p2, tol, x, pcoords);
|
|
345
324
|
outObj.betweenPoints = intersectLine.betweenPoints;
|
|
346
325
|
outObj.t = intersectLine.t;
|
|
347
|
-
|
|
348
326
|
if (intersectLine.intersect) {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
for (
|
|
327
|
+
const pt3Pt1 = [];
|
|
328
|
+
const pt3Pt2 = [];
|
|
329
|
+
const pt3X = [];
|
|
330
|
+
// Compute r and s manually, using dot and norm.
|
|
331
|
+
for (let i = 0; i < 3; i++) {
|
|
354
332
|
pt3Pt1[i] = pt1[i] - pt3[i];
|
|
355
333
|
pt3Pt2[i] = pt2[i] - pt3[i];
|
|
356
334
|
pt3X[i] = x[i] - pt3[i];
|
|
357
335
|
}
|
|
358
|
-
|
|
359
336
|
pcoords[0] = dot(pt3X, pt3Pt1) / dist2Pt3Pt1;
|
|
360
337
|
pcoords[1] = dot(pt3X, pt3Pt2) / dist2Pt2Pt3;
|
|
361
338
|
outObj.intersect = 1;
|
|
362
339
|
return outObj;
|
|
363
340
|
}
|
|
364
|
-
|
|
365
341
|
pcoords[0] = 0.0;
|
|
366
342
|
pcoords[1] = 0.0;
|
|
367
343
|
outObj.intersect = 0;
|
|
368
344
|
return outObj;
|
|
369
345
|
};
|
|
370
|
-
|
|
371
|
-
publicAPI.evaluatePosition = function (x, closestPoint, pcoords, weights) {
|
|
346
|
+
publicAPI.evaluatePosition = (x, closestPoint, pcoords, weights) => {
|
|
372
347
|
// will return obj
|
|
373
|
-
|
|
348
|
+
const outObj = {
|
|
374
349
|
subId: 0,
|
|
375
350
|
dist2: 0,
|
|
376
351
|
evaluation: -1
|
|
377
352
|
};
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
353
|
+
let i;
|
|
354
|
+
let j;
|
|
355
|
+
const pt1 = [];
|
|
356
|
+
const pt2 = [];
|
|
357
|
+
const pt3 = [];
|
|
358
|
+
const n = [];
|
|
359
|
+
let fabsn;
|
|
360
|
+
const rhs = [];
|
|
361
|
+
const c1 = [];
|
|
362
|
+
const c2 = [];
|
|
363
|
+
let det = 0;
|
|
364
|
+
let idx = 0;
|
|
365
|
+
const indices = [];
|
|
366
|
+
let dist2Point;
|
|
367
|
+
let dist2Line1;
|
|
368
|
+
let dist2Line2;
|
|
369
|
+
let closest = [];
|
|
370
|
+
const closestPoint1 = [];
|
|
371
|
+
const closestPoint2 = [];
|
|
372
|
+
const cp = [];
|
|
398
373
|
outObj.subId = 0;
|
|
399
|
-
pcoords[2] = 0.0;
|
|
374
|
+
pcoords[2] = 0.0;
|
|
375
|
+
|
|
376
|
+
// Get normal for triangle, only the normal direction is needed, i.e. the
|
|
400
377
|
// normal need not be normalized (unit length)
|
|
401
378
|
//
|
|
402
|
-
|
|
403
379
|
model.points.getPoint(1, pt1);
|
|
404
380
|
model.points.getPoint(2, pt2);
|
|
405
381
|
model.points.getPoint(0, pt3);
|
|
406
|
-
computeNormalDirection(pt1, pt2, pt3, n);
|
|
382
|
+
computeNormalDirection(pt1, pt2, pt3, n);
|
|
383
|
+
|
|
384
|
+
// Project point to plane
|
|
385
|
+
vtkPlane.generalizedProjectPoint(x, pt1, n, cp);
|
|
407
386
|
|
|
408
|
-
|
|
387
|
+
// Construct matrices. Since we have over determined system, need to find
|
|
409
388
|
// which 2 out of 3 equations to use to develop equations. (Any 2 should
|
|
410
389
|
// work since we've projected point to plane.)
|
|
411
|
-
|
|
412
|
-
var maxComponent = 0.0;
|
|
413
|
-
|
|
390
|
+
let maxComponent = 0.0;
|
|
414
391
|
for (i = 0; i < 3; i++) {
|
|
415
392
|
// trying to avoid an expensive call to fabs()
|
|
416
393
|
if (n[i] < 0) {
|
|
@@ -418,41 +395,35 @@ function vtkTriangle(publicAPI, model) {
|
|
|
418
395
|
} else {
|
|
419
396
|
fabsn = n[i];
|
|
420
397
|
}
|
|
421
|
-
|
|
422
398
|
if (fabsn > maxComponent) {
|
|
423
399
|
maxComponent = fabsn;
|
|
424
400
|
idx = i;
|
|
425
401
|
}
|
|
426
402
|
}
|
|
427
|
-
|
|
428
403
|
for (j = 0, i = 0; i < 3; i++) {
|
|
429
404
|
if (i !== idx) {
|
|
430
405
|
indices[j++] = i;
|
|
431
406
|
}
|
|
432
407
|
}
|
|
433
|
-
|
|
434
408
|
for (i = 0; i < 2; i++) {
|
|
435
409
|
rhs[i] = cp[indices[i]] - pt3[indices[i]];
|
|
436
410
|
c1[i] = pt1[indices[i]] - pt3[indices[i]];
|
|
437
411
|
c2[i] = pt2[indices[i]] - pt3[indices[i]];
|
|
438
412
|
}
|
|
439
|
-
|
|
440
413
|
det = determinant2x2(c1, c2);
|
|
441
|
-
|
|
442
414
|
if (det === 0.0) {
|
|
443
415
|
pcoords[0] = 0.0;
|
|
444
416
|
pcoords[1] = 0.0;
|
|
445
417
|
outObj.evaluation = -1;
|
|
446
418
|
return outObj;
|
|
447
419
|
}
|
|
448
|
-
|
|
449
420
|
pcoords[0] = determinant2x2(rhs, c2) / det;
|
|
450
|
-
pcoords[1] = determinant2x2(c1, rhs) / det;
|
|
421
|
+
pcoords[1] = determinant2x2(c1, rhs) / det;
|
|
451
422
|
|
|
423
|
+
// Okay, now find closest point to element
|
|
452
424
|
weights[0] = 1 - (pcoords[0] + pcoords[1]);
|
|
453
425
|
weights[1] = pcoords[0];
|
|
454
426
|
weights[2] = pcoords[1];
|
|
455
|
-
|
|
456
427
|
if (weights[0] >= 0.0 && weights[0] <= 1.0 && weights[1] >= 0.0 && weights[1] <= 1.0 && weights[2] >= 0.0 && weights[2] <= 1.0) {
|
|
457
428
|
// projection distance
|
|
458
429
|
if (closestPoint) {
|
|
@@ -461,17 +432,14 @@ function vtkTriangle(publicAPI, model) {
|
|
|
461
432
|
closestPoint[1] = cp[1];
|
|
462
433
|
closestPoint[2] = cp[2];
|
|
463
434
|
}
|
|
464
|
-
|
|
465
435
|
outObj.evaluation = 1;
|
|
466
436
|
} else {
|
|
467
|
-
|
|
468
|
-
|
|
437
|
+
let t;
|
|
469
438
|
if (closestPoint) {
|
|
470
439
|
if (weights[1] < 0.0 && weights[2] < 0.0) {
|
|
471
440
|
dist2Point = distance2BetweenPoints(x, pt3);
|
|
472
441
|
dist2Line1 = vtkLine.distanceToLine(x, pt1, pt3, t, closestPoint1);
|
|
473
442
|
dist2Line2 = vtkLine.distanceToLine(x, pt3, pt2, t, closestPoint2);
|
|
474
|
-
|
|
475
443
|
if (dist2Point < dist2Line1) {
|
|
476
444
|
outObj.dist2 = dist2Point;
|
|
477
445
|
closest = pt3;
|
|
@@ -479,12 +447,10 @@ function vtkTriangle(publicAPI, model) {
|
|
|
479
447
|
outObj.dist2 = dist2Line1;
|
|
480
448
|
closest = closestPoint1;
|
|
481
449
|
}
|
|
482
|
-
|
|
483
450
|
if (dist2Line2 < outObj.dist2) {
|
|
484
451
|
outObj.dist2 = dist2Line2;
|
|
485
452
|
closest = closestPoint2;
|
|
486
453
|
}
|
|
487
|
-
|
|
488
454
|
for (i = 0; i < 3; i++) {
|
|
489
455
|
closestPoint[i] = closest[i];
|
|
490
456
|
}
|
|
@@ -492,7 +458,6 @@ function vtkTriangle(publicAPI, model) {
|
|
|
492
458
|
dist2Point = distance2BetweenPoints(x, pt1);
|
|
493
459
|
dist2Line1 = vtkLine.distanceToLine(x, pt1, pt3, t, closestPoint1);
|
|
494
460
|
dist2Line2 = vtkLine.distanceToLine(x, pt1, pt2, t, closestPoint2);
|
|
495
|
-
|
|
496
461
|
if (dist2Point < dist2Line1) {
|
|
497
462
|
outObj.dist2 = dist2Point;
|
|
498
463
|
closest = pt1;
|
|
@@ -500,12 +465,10 @@ function vtkTriangle(publicAPI, model) {
|
|
|
500
465
|
outObj.dist2 = dist2Line1;
|
|
501
466
|
closest = closestPoint1;
|
|
502
467
|
}
|
|
503
|
-
|
|
504
468
|
if (dist2Line2 < outObj.dist2) {
|
|
505
469
|
outObj.dist2 = dist2Line2;
|
|
506
470
|
closest = closestPoint2;
|
|
507
471
|
}
|
|
508
|
-
|
|
509
472
|
for (i = 0; i < 3; i++) {
|
|
510
473
|
closestPoint[i] = closest[i];
|
|
511
474
|
}
|
|
@@ -513,7 +476,6 @@ function vtkTriangle(publicAPI, model) {
|
|
|
513
476
|
dist2Point = distance2BetweenPoints(x, pt2);
|
|
514
477
|
dist2Line1 = vtkLine.distanceToLine(x, pt2, pt3, t, closestPoint1);
|
|
515
478
|
dist2Line2 = vtkLine.distanceToLine(x, pt1, pt2, t, closestPoint2);
|
|
516
|
-
|
|
517
479
|
if (dist2Point < dist2Line1) {
|
|
518
480
|
outObj.dist2 = dist2Point;
|
|
519
481
|
closest = pt2;
|
|
@@ -521,62 +483,51 @@ function vtkTriangle(publicAPI, model) {
|
|
|
521
483
|
outObj.dist2 = dist2Line1;
|
|
522
484
|
closest = closestPoint1;
|
|
523
485
|
}
|
|
524
|
-
|
|
525
486
|
if (dist2Line2 < outObj.dist2) {
|
|
526
487
|
outObj.dist2 = dist2Line2;
|
|
527
488
|
closest = closestPoint2;
|
|
528
489
|
}
|
|
529
|
-
|
|
530
490
|
for (i = 0; i < 3; i++) {
|
|
531
491
|
closestPoint[i] = closest[i];
|
|
532
492
|
}
|
|
533
493
|
} else if (weights[0] < 0.0) {
|
|
534
|
-
|
|
494
|
+
const lineDistance = vtkLine.distanceToLine(x, pt1, pt2, closestPoint);
|
|
535
495
|
outObj.dist2 = lineDistance.distance;
|
|
536
496
|
} else if (weights[1] < 0.0) {
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
outObj.dist2 = _lineDistance.distance;
|
|
497
|
+
const lineDistance = vtkLine.distanceToLine(x, pt2, pt3, closestPoint);
|
|
498
|
+
outObj.dist2 = lineDistance.distance;
|
|
540
499
|
} else if (weights[2] < 0.0) {
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
outObj.dist2 = _lineDistance2.distance;
|
|
500
|
+
const lineDistance = vtkLine.distanceToLine(x, pt1, pt3, closestPoint);
|
|
501
|
+
outObj.dist2 = lineDistance.distance;
|
|
544
502
|
}
|
|
545
503
|
}
|
|
546
|
-
|
|
547
504
|
outObj.evaluation = 0;
|
|
548
505
|
}
|
|
549
|
-
|
|
550
506
|
return outObj;
|
|
551
507
|
};
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
var p2 = [];
|
|
508
|
+
publicAPI.evaluateLocation = (pcoords, x, weights) => {
|
|
509
|
+
const p0 = [];
|
|
510
|
+
const p1 = [];
|
|
511
|
+
const p2 = [];
|
|
557
512
|
model.points.getPoint(0, p0);
|
|
558
513
|
model.points.getPoint(1, p1);
|
|
559
514
|
model.points.getPoint(2, p2);
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
for (var i = 0; i < 3; i++) {
|
|
515
|
+
const u3 = 1.0 - pcoords[0] - pcoords[1];
|
|
516
|
+
for (let i = 0; i < 3; i++) {
|
|
563
517
|
x[i] = p0[i] * u3 + p1[i] * pcoords[0] + p2[i] * pcoords[1];
|
|
564
518
|
}
|
|
565
|
-
|
|
566
519
|
weights[0] = u3;
|
|
567
520
|
weights[1] = pcoords[0];
|
|
568
521
|
weights[2] = pcoords[1];
|
|
569
522
|
};
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
var pc = [];
|
|
523
|
+
publicAPI.getParametricDistance = pcoords => {
|
|
524
|
+
let pDist;
|
|
525
|
+
let pDistMax = 0.0;
|
|
526
|
+
const pc = [];
|
|
575
527
|
pc[0] = pcoords[0];
|
|
576
528
|
pc[1] = pcoords[1];
|
|
577
529
|
pc[2] = 1.0 - pcoords[0] - pcoords[1];
|
|
578
|
-
|
|
579
|
-
for (var i = 0; i < 3; i++) {
|
|
530
|
+
for (let i = 0; i < 3; i++) {
|
|
580
531
|
if (pc[i] < 0.0) {
|
|
581
532
|
pDist = -pc[i];
|
|
582
533
|
} else if (pc[i] > 1.0) {
|
|
@@ -585,33 +536,39 @@ function vtkTriangle(publicAPI, model) {
|
|
|
585
536
|
// inside the cell in the parametric direction
|
|
586
537
|
pDist = 0.0;
|
|
587
538
|
}
|
|
588
|
-
|
|
589
539
|
if (pDist > pDistMax) {
|
|
590
540
|
pDistMax = pDist;
|
|
591
541
|
}
|
|
592
542
|
}
|
|
593
|
-
|
|
594
543
|
return pDistMax;
|
|
595
544
|
};
|
|
596
|
-
}
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
// ----------------------------------------------------------------------------
|
|
597
548
|
// Object factory
|
|
598
549
|
// ----------------------------------------------------------------------------
|
|
599
550
|
|
|
551
|
+
const DEFAULT_VALUES = {};
|
|
600
552
|
|
|
601
|
-
|
|
553
|
+
// ----------------------------------------------------------------------------
|
|
602
554
|
|
|
603
555
|
function extend(publicAPI, model) {
|
|
604
|
-
|
|
556
|
+
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
605
557
|
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
606
558
|
vtkCell.extend(publicAPI, model, initialValues);
|
|
607
559
|
vtkTriangle(publicAPI, model);
|
|
608
|
-
}
|
|
560
|
+
}
|
|
609
561
|
|
|
610
|
-
|
|
562
|
+
// ----------------------------------------------------------------------------
|
|
563
|
+
|
|
564
|
+
const newInstance = macro.newInstance(extend, 'vtkTriangle');
|
|
565
|
+
|
|
566
|
+
// ----------------------------------------------------------------------------
|
|
611
567
|
|
|
612
|
-
var vtkTriangle$1 =
|
|
613
|
-
newInstance
|
|
614
|
-
extend
|
|
615
|
-
|
|
568
|
+
var vtkTriangle$1 = {
|
|
569
|
+
newInstance,
|
|
570
|
+
extend,
|
|
571
|
+
...STATIC
|
|
572
|
+
};
|
|
616
573
|
|
|
617
574
|
export { STATIC, vtkTriangle$1 as default, extend, newInstance };
|