@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,60 +1,59 @@
|
|
|
1
1
|
import { mat4, vec3 } from 'gl-matrix';
|
|
2
|
-
import {
|
|
2
|
+
import { n as newInstance$1, g as get, e as setGet, k as getArray, l as setGetArray, i as moveToProtected, c as macro } from '../../macros2.js';
|
|
3
3
|
import vtkCamera from './Camera.js';
|
|
4
4
|
import vtkLight from './Light.js';
|
|
5
5
|
import { Q as areBoundsInitialized, u as uninitializeBounds, r as radiansFromDegrees, d as dot, F as createUninitializedBounds } from '../../Common/Core/Math/index.js';
|
|
6
6
|
import vtkViewport from './Viewport.js';
|
|
7
7
|
import vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const {
|
|
10
|
+
vtkDebugMacro,
|
|
11
|
+
vtkErrorMacro,
|
|
12
|
+
vtkWarningMacro
|
|
13
|
+
} = macro;
|
|
13
14
|
function notImplemented(method) {
|
|
14
|
-
return
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
return () => vtkErrorMacro(`vtkRenderer::${method} - NOT IMPLEMENTED`);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// ----------------------------------------------------------------------------
|
|
18
19
|
// vtkRenderer methods
|
|
19
20
|
// ----------------------------------------------------------------------------
|
|
20
21
|
|
|
21
|
-
|
|
22
22
|
function vtkRenderer(publicAPI, model) {
|
|
23
23
|
// Set our className
|
|
24
|
-
model.classHierarchy.push('vtkRenderer');
|
|
24
|
+
model.classHierarchy.push('vtkRenderer');
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
// Events
|
|
27
|
+
const COMPUTE_VISIBLE_PROP_BOUNDS_EVENT = {
|
|
27
28
|
type: 'ComputeVisiblePropBoundsEvent',
|
|
28
29
|
renderer: publicAPI
|
|
29
30
|
};
|
|
30
|
-
|
|
31
|
+
const RESET_CAMERA_CLIPPING_RANGE_EVENT = {
|
|
31
32
|
type: 'ResetCameraClippingRangeEvent',
|
|
32
33
|
renderer: publicAPI
|
|
33
34
|
};
|
|
34
|
-
|
|
35
|
+
const RESET_CAMERA_EVENT = {
|
|
35
36
|
type: 'ResetCameraEvent',
|
|
36
37
|
renderer: publicAPI
|
|
37
38
|
};
|
|
38
|
-
|
|
39
|
-
publicAPI.updateCamera = function () {
|
|
39
|
+
publicAPI.updateCamera = () => {
|
|
40
40
|
if (!model.activeCamera) {
|
|
41
|
-
vtkDebugMacro('No cameras are on, creating one.');
|
|
41
|
+
vtkDebugMacro('No cameras are on, creating one.');
|
|
42
|
+
// the get method will automagically create a camera
|
|
42
43
|
// and reset it since one hasn't been specified yet.
|
|
43
|
-
|
|
44
44
|
publicAPI.getActiveCameraAndResetIfCreated();
|
|
45
|
-
}
|
|
46
|
-
|
|
45
|
+
}
|
|
47
46
|
|
|
47
|
+
// update the viewing transformation
|
|
48
48
|
model.activeCamera.render(publicAPI);
|
|
49
49
|
return true;
|
|
50
50
|
};
|
|
51
|
-
|
|
52
|
-
publicAPI.updateLightsGeometryToFollowCamera = function () {
|
|
51
|
+
publicAPI.updateLightsGeometryToFollowCamera = () => {
|
|
53
52
|
// only update the light's geometry if this Renderer is tracking
|
|
54
53
|
// this lights. That allows one renderer to view the lights that
|
|
55
54
|
// another renderer is setting up.
|
|
56
|
-
|
|
57
|
-
model.lights.forEach(
|
|
55
|
+
const camera = publicAPI.getActiveCameraAndResetIfCreated();
|
|
56
|
+
model.lights.forEach(light => {
|
|
58
57
|
if (light.lightTypeIsSceneLight()) ; else if (light.lightTypeIsHeadLight()) {
|
|
59
58
|
// update position and orientation of light to match camera.
|
|
60
59
|
light.setPositionFrom(camera.getPositionByReference());
|
|
@@ -67,354 +66,302 @@ function vtkRenderer(publicAPI, model) {
|
|
|
67
66
|
}
|
|
68
67
|
});
|
|
69
68
|
};
|
|
70
|
-
|
|
71
|
-
publicAPI.updateLightGeometry = function () {
|
|
69
|
+
publicAPI.updateLightGeometry = () => {
|
|
72
70
|
if (model.lightFollowCamera) {
|
|
73
71
|
// only update the light's geometry if this Renderer is tracking
|
|
74
72
|
// this lights. That allows one renderer to view the lights that
|
|
75
73
|
// another renderer is setting up.
|
|
76
74
|
return publicAPI.updateLightsGeometryToFollowCamera();
|
|
77
75
|
}
|
|
78
|
-
|
|
79
76
|
return true;
|
|
80
77
|
};
|
|
81
|
-
|
|
82
78
|
publicAPI.allocateTime = notImplemented('allocateTime');
|
|
83
79
|
publicAPI.updateGeometry = notImplemented('updateGeometry');
|
|
84
|
-
|
|
85
|
-
publicAPI.
|
|
86
|
-
return model._renderWindow;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
publicAPI.setLayer = function (layer) {
|
|
80
|
+
publicAPI.getVTKWindow = () => model._renderWindow;
|
|
81
|
+
publicAPI.setLayer = layer => {
|
|
90
82
|
vtkDebugMacro(publicAPI.getClassName(), publicAPI, 'setting Layer to ', layer);
|
|
91
|
-
|
|
92
83
|
if (model.layer !== layer) {
|
|
93
84
|
model.layer = layer;
|
|
94
85
|
publicAPI.modified();
|
|
95
86
|
}
|
|
96
|
-
|
|
97
87
|
publicAPI.setPreserveColorBuffer(!!layer);
|
|
98
88
|
};
|
|
99
|
-
|
|
100
|
-
publicAPI.setActiveCamera = function (camera) {
|
|
89
|
+
publicAPI.setActiveCamera = camera => {
|
|
101
90
|
if (model.activeCamera === camera) {
|
|
102
91
|
return false;
|
|
103
92
|
}
|
|
104
|
-
|
|
105
93
|
model.activeCamera = camera;
|
|
106
94
|
publicAPI.modified();
|
|
107
95
|
publicAPI.invokeEvent({
|
|
108
96
|
type: 'ActiveCameraEvent',
|
|
109
|
-
camera
|
|
97
|
+
camera
|
|
110
98
|
});
|
|
111
99
|
return true;
|
|
112
100
|
};
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
var camera = vtkCamera.newInstance();
|
|
101
|
+
publicAPI.makeCamera = () => {
|
|
102
|
+
const camera = vtkCamera.newInstance();
|
|
116
103
|
publicAPI.invokeEvent({
|
|
117
104
|
type: 'CreateCameraEvent',
|
|
118
|
-
camera
|
|
105
|
+
camera
|
|
119
106
|
});
|
|
120
107
|
return camera;
|
|
121
|
-
};
|
|
122
|
-
|
|
108
|
+
};
|
|
123
109
|
|
|
124
|
-
|
|
110
|
+
// Replace the set/get macro method
|
|
111
|
+
publicAPI.getActiveCamera = () => {
|
|
125
112
|
if (!model.activeCamera) {
|
|
126
113
|
model.activeCamera = publicAPI.makeCamera();
|
|
127
114
|
}
|
|
128
|
-
|
|
129
115
|
return model.activeCamera;
|
|
130
116
|
};
|
|
131
|
-
|
|
132
|
-
publicAPI.getActiveCameraAndResetIfCreated = function () {
|
|
117
|
+
publicAPI.getActiveCameraAndResetIfCreated = () => {
|
|
133
118
|
if (!model.activeCamera) {
|
|
134
119
|
publicAPI.getActiveCamera();
|
|
135
120
|
publicAPI.resetCamera();
|
|
136
121
|
}
|
|
137
|
-
|
|
138
122
|
return model.activeCamera;
|
|
139
123
|
};
|
|
140
|
-
|
|
141
|
-
publicAPI.getActors = function () {
|
|
124
|
+
publicAPI.getActors = () => {
|
|
142
125
|
model.actors = [];
|
|
143
|
-
model.props.forEach(
|
|
126
|
+
model.props.forEach(prop => {
|
|
144
127
|
model.actors = model.actors.concat(prop.getActors());
|
|
145
128
|
});
|
|
146
129
|
return model.actors;
|
|
147
130
|
};
|
|
148
|
-
|
|
149
131
|
publicAPI.addActor = publicAPI.addViewProp;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
model.actors = model.actors.filter(function (a) {
|
|
153
|
-
return a !== actor;
|
|
154
|
-
});
|
|
132
|
+
publicAPI.removeActor = actor => {
|
|
133
|
+
model.actors = model.actors.filter(a => a !== actor);
|
|
155
134
|
publicAPI.removeViewProp(actor);
|
|
156
135
|
publicAPI.modified();
|
|
157
136
|
};
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
actors.forEach(function (actor) {
|
|
137
|
+
publicAPI.removeAllActors = () => {
|
|
138
|
+
const actors = publicAPI.getActors();
|
|
139
|
+
actors.forEach(actor => {
|
|
162
140
|
publicAPI.removeViewProp(actor);
|
|
163
141
|
});
|
|
164
142
|
model.actors = [];
|
|
165
143
|
publicAPI.modified();
|
|
166
144
|
};
|
|
167
|
-
|
|
168
|
-
publicAPI.getVolumes = function () {
|
|
145
|
+
publicAPI.getVolumes = () => {
|
|
169
146
|
model.volumes = [];
|
|
170
|
-
model.props.forEach(
|
|
147
|
+
model.props.forEach(prop => {
|
|
171
148
|
model.volumes = model.volumes.concat(prop.getVolumes());
|
|
172
149
|
});
|
|
173
150
|
return model.volumes;
|
|
174
151
|
};
|
|
175
|
-
|
|
176
152
|
publicAPI.addVolume = publicAPI.addViewProp;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
model.volumes = model.volumes.filter(function (v) {
|
|
180
|
-
return v !== volume;
|
|
181
|
-
});
|
|
153
|
+
publicAPI.removeVolume = volume => {
|
|
154
|
+
model.volumes = model.volumes.filter(v => v !== volume);
|
|
182
155
|
publicAPI.removeViewProp(volume);
|
|
183
156
|
publicAPI.modified();
|
|
184
157
|
};
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
volumes.forEach(function (volume) {
|
|
158
|
+
publicAPI.removeAllVolumes = () => {
|
|
159
|
+
const volumes = publicAPI.getVolumes();
|
|
160
|
+
volumes.forEach(volume => {
|
|
189
161
|
publicAPI.removeViewProp(volume);
|
|
190
162
|
});
|
|
191
163
|
model.volumes = [];
|
|
192
164
|
publicAPI.modified();
|
|
193
165
|
};
|
|
194
|
-
|
|
195
|
-
publicAPI.
|
|
196
|
-
return model.lights.includes(light);
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
publicAPI.addLight = function (light) {
|
|
166
|
+
publicAPI.hasLight = light => model.lights.includes(light);
|
|
167
|
+
publicAPI.addLight = light => {
|
|
200
168
|
if (light && !publicAPI.hasLight(light)) {
|
|
201
169
|
model.lights.push(light);
|
|
202
170
|
publicAPI.modified();
|
|
203
171
|
}
|
|
204
172
|
};
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
model.lights = model.lights.filter(function (l) {
|
|
208
|
-
return l !== light;
|
|
209
|
-
});
|
|
173
|
+
publicAPI.removeLight = light => {
|
|
174
|
+
model.lights = model.lights.filter(l => l !== light);
|
|
210
175
|
publicAPI.modified();
|
|
211
176
|
};
|
|
212
|
-
|
|
213
|
-
publicAPI.removeAllLights = function () {
|
|
177
|
+
publicAPI.removeAllLights = () => {
|
|
214
178
|
model.lights = [];
|
|
215
179
|
publicAPI.modified();
|
|
216
180
|
};
|
|
217
|
-
|
|
218
|
-
publicAPI.setLightCollection = function (lights) {
|
|
181
|
+
publicAPI.setLightCollection = lights => {
|
|
219
182
|
model.lights = lights;
|
|
220
183
|
publicAPI.modified();
|
|
221
184
|
};
|
|
222
|
-
|
|
223
185
|
publicAPI.makeLight = vtkLight.newInstance;
|
|
224
|
-
|
|
225
|
-
publicAPI.createLight = function () {
|
|
186
|
+
publicAPI.createLight = () => {
|
|
226
187
|
if (!model.automaticLightCreation) {
|
|
227
188
|
return;
|
|
228
189
|
}
|
|
229
|
-
|
|
230
190
|
if (model._createdLight) {
|
|
231
191
|
publicAPI.removeLight(model._createdLight);
|
|
232
|
-
|
|
233
192
|
model._createdLight.delete();
|
|
234
|
-
|
|
235
193
|
model._createdLight = null;
|
|
236
194
|
}
|
|
237
|
-
|
|
238
195
|
model._createdLight = publicAPI.makeLight();
|
|
239
196
|
publicAPI.addLight(model._createdLight);
|
|
197
|
+
model._createdLight.setLightTypeToHeadLight();
|
|
240
198
|
|
|
241
|
-
|
|
199
|
+
// set these values just to have a good default should LightFollowCamera
|
|
242
200
|
// be turned off.
|
|
243
|
-
|
|
244
|
-
|
|
245
201
|
model._createdLight.setPosition(publicAPI.getActiveCamera().getPosition());
|
|
246
|
-
|
|
247
202
|
model._createdLight.setFocalPoint(publicAPI.getActiveCamera().getFocalPoint());
|
|
248
|
-
};
|
|
249
|
-
|
|
203
|
+
};
|
|
250
204
|
|
|
251
|
-
|
|
252
|
-
|
|
205
|
+
// requires the aspect ratio of the viewport as X/Y
|
|
206
|
+
publicAPI.normalizedDisplayToWorld = (x, y, z, aspect) => {
|
|
207
|
+
let vpd = publicAPI.normalizedDisplayToProjection(x, y, z);
|
|
253
208
|
vpd = publicAPI.projectionToView(vpd[0], vpd[1], vpd[2], aspect);
|
|
254
209
|
return publicAPI.viewToWorld(vpd[0], vpd[1], vpd[2]);
|
|
255
|
-
};
|
|
256
|
-
|
|
210
|
+
};
|
|
257
211
|
|
|
258
|
-
|
|
259
|
-
|
|
212
|
+
// requires the aspect ratio of the viewport as X/Y
|
|
213
|
+
publicAPI.worldToNormalizedDisplay = (x, y, z, aspect) => {
|
|
214
|
+
let vpd = publicAPI.worldToView(x, y, z);
|
|
260
215
|
vpd = publicAPI.viewToProjection(vpd[0], vpd[1], vpd[2], aspect);
|
|
261
216
|
return publicAPI.projectionToNormalizedDisplay(vpd[0], vpd[1], vpd[2]);
|
|
262
|
-
};
|
|
263
|
-
|
|
217
|
+
};
|
|
264
218
|
|
|
265
|
-
|
|
219
|
+
// requires the aspect ratio of the viewport as X/Y
|
|
220
|
+
publicAPI.viewToWorld = (x, y, z) => {
|
|
266
221
|
if (model.activeCamera === null) {
|
|
267
222
|
vtkErrorMacro('ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0');
|
|
268
223
|
return [0, 0, 0];
|
|
269
|
-
}
|
|
270
|
-
|
|
224
|
+
}
|
|
271
225
|
|
|
272
|
-
|
|
226
|
+
// get the view matrix from the active camera
|
|
227
|
+
const matrix = model.activeCamera.getViewMatrix();
|
|
273
228
|
mat4.invert(matrix, matrix);
|
|
274
|
-
mat4.transpose(matrix, matrix);
|
|
229
|
+
mat4.transpose(matrix, matrix);
|
|
275
230
|
|
|
276
|
-
|
|
231
|
+
// Transform point to world coordinates
|
|
232
|
+
const result = new Float64Array([x, y, z]);
|
|
277
233
|
vec3.transformMat4(result, result, matrix);
|
|
278
234
|
return result;
|
|
279
235
|
};
|
|
280
|
-
|
|
281
|
-
publicAPI.projectionToView = function (x, y, z, aspect) {
|
|
236
|
+
publicAPI.projectionToView = (x, y, z, aspect) => {
|
|
282
237
|
if (model.activeCamera === null) {
|
|
283
238
|
vtkErrorMacro('ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0');
|
|
284
239
|
return [0, 0, 0];
|
|
285
|
-
}
|
|
286
|
-
|
|
240
|
+
}
|
|
287
241
|
|
|
288
|
-
|
|
242
|
+
// get the projection transformation from the active camera
|
|
243
|
+
const matrix = model.activeCamera.getProjectionMatrix(aspect, -1.0, 1.0);
|
|
289
244
|
mat4.invert(matrix, matrix);
|
|
290
|
-
mat4.transpose(matrix, matrix);
|
|
245
|
+
mat4.transpose(matrix, matrix);
|
|
291
246
|
|
|
292
|
-
|
|
247
|
+
// Transform point to world coordinates
|
|
248
|
+
const result = new Float64Array([x, y, z]);
|
|
293
249
|
vec3.transformMat4(result, result, matrix);
|
|
294
250
|
return result;
|
|
295
|
-
};
|
|
296
|
-
|
|
251
|
+
};
|
|
297
252
|
|
|
298
|
-
|
|
253
|
+
// Convert world point coordinates to view coordinates.
|
|
254
|
+
publicAPI.worldToView = (x, y, z) => {
|
|
299
255
|
if (model.activeCamera === null) {
|
|
300
256
|
vtkErrorMacro('WorldToView: no active camera, cannot compute view to world, returning 0,0,0');
|
|
301
257
|
return [0, 0, 0];
|
|
302
|
-
}
|
|
303
|
-
|
|
258
|
+
}
|
|
304
259
|
|
|
305
|
-
|
|
260
|
+
// get the view transformation from the active camera
|
|
261
|
+
const matrix = model.activeCamera.getViewMatrix();
|
|
306
262
|
mat4.transpose(matrix, matrix);
|
|
307
|
-
|
|
263
|
+
const result = new Float64Array([x, y, z]);
|
|
308
264
|
vec3.transformMat4(result, result, matrix);
|
|
309
265
|
return result;
|
|
310
|
-
};
|
|
311
|
-
// requires the aspect ratio of the viewport as X/Y
|
|
312
|
-
|
|
266
|
+
};
|
|
313
267
|
|
|
314
|
-
|
|
268
|
+
// Convert world point coordinates to view coordinates.
|
|
269
|
+
// requires the aspect ratio of the viewport as X/Y
|
|
270
|
+
publicAPI.viewToProjection = (x, y, z, aspect) => {
|
|
315
271
|
if (model.activeCamera === null) {
|
|
316
272
|
vtkErrorMacro('ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0');
|
|
317
273
|
return [0, 0, 0];
|
|
318
|
-
}
|
|
319
|
-
|
|
274
|
+
}
|
|
320
275
|
|
|
321
|
-
|
|
276
|
+
// get the projeciton transformation from the active camera
|
|
277
|
+
const matrix = model.activeCamera.getProjectionMatrix(aspect, -1.0, 1.0);
|
|
322
278
|
mat4.transpose(matrix, matrix);
|
|
323
|
-
|
|
279
|
+
const result = new Float64Array([x, y, z]);
|
|
324
280
|
vec3.transformMat4(result, result, matrix);
|
|
325
281
|
return result;
|
|
326
282
|
};
|
|
327
|
-
|
|
328
|
-
publicAPI.computeVisiblePropBounds = function () {
|
|
283
|
+
publicAPI.computeVisiblePropBounds = () => {
|
|
329
284
|
model.allBounds[0] = vtkBoundingBox.INIT_BOUNDS[0];
|
|
330
285
|
model.allBounds[1] = vtkBoundingBox.INIT_BOUNDS[1];
|
|
331
286
|
model.allBounds[2] = vtkBoundingBox.INIT_BOUNDS[2];
|
|
332
287
|
model.allBounds[3] = vtkBoundingBox.INIT_BOUNDS[3];
|
|
333
288
|
model.allBounds[4] = vtkBoundingBox.INIT_BOUNDS[4];
|
|
334
289
|
model.allBounds[5] = vtkBoundingBox.INIT_BOUNDS[5];
|
|
335
|
-
|
|
336
|
-
publicAPI.invokeEvent(COMPUTE_VISIBLE_PROP_BOUNDS_EVENT);
|
|
337
|
-
|
|
338
|
-
for (var index = 0; index < model.props.length; ++index) {
|
|
339
|
-
var prop = model.props[index];
|
|
290
|
+
let nothingVisible = true;
|
|
291
|
+
publicAPI.invokeEvent(COMPUTE_VISIBLE_PROP_BOUNDS_EVENT);
|
|
340
292
|
|
|
293
|
+
// loop through all props
|
|
294
|
+
for (let index = 0; index < model.props.length; ++index) {
|
|
295
|
+
const prop = model.props[index];
|
|
341
296
|
if (prop.getVisibility() && prop.getUseBounds()) {
|
|
342
|
-
|
|
343
|
-
|
|
297
|
+
const bounds = prop.getBounds();
|
|
344
298
|
if (bounds && areBoundsInitialized(bounds)) {
|
|
345
299
|
nothingVisible = false;
|
|
346
|
-
|
|
347
300
|
if (bounds[0] < model.allBounds[0]) {
|
|
348
301
|
model.allBounds[0] = bounds[0];
|
|
349
302
|
}
|
|
350
|
-
|
|
351
303
|
if (bounds[1] > model.allBounds[1]) {
|
|
352
304
|
model.allBounds[1] = bounds[1];
|
|
353
305
|
}
|
|
354
|
-
|
|
355
306
|
if (bounds[2] < model.allBounds[2]) {
|
|
356
307
|
model.allBounds[2] = bounds[2];
|
|
357
308
|
}
|
|
358
|
-
|
|
359
309
|
if (bounds[3] > model.allBounds[3]) {
|
|
360
310
|
model.allBounds[3] = bounds[3];
|
|
361
311
|
}
|
|
362
|
-
|
|
363
312
|
if (bounds[4] < model.allBounds[4]) {
|
|
364
313
|
model.allBounds[4] = bounds[4];
|
|
365
314
|
}
|
|
366
|
-
|
|
367
315
|
if (bounds[5] > model.allBounds[5]) {
|
|
368
316
|
model.allBounds[5] = bounds[5];
|
|
369
317
|
}
|
|
370
318
|
}
|
|
371
319
|
}
|
|
372
320
|
}
|
|
373
|
-
|
|
374
321
|
if (nothingVisible) {
|
|
375
322
|
uninitializeBounds(model.allBounds);
|
|
376
323
|
vtkDebugMacro("Can't compute bounds, no 3D props are visible");
|
|
377
324
|
}
|
|
378
|
-
|
|
379
325
|
return model.allBounds;
|
|
380
326
|
};
|
|
381
|
-
|
|
382
327
|
publicAPI.resetCamera = function () {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
328
|
+
let bounds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
329
|
+
const boundsToUse = bounds || publicAPI.computeVisiblePropBounds();
|
|
330
|
+
const center = [0, 0, 0];
|
|
387
331
|
if (!areBoundsInitialized(boundsToUse)) {
|
|
388
332
|
vtkDebugMacro('Cannot reset camera!');
|
|
389
333
|
return false;
|
|
390
334
|
}
|
|
391
|
-
|
|
392
|
-
var vn = null;
|
|
393
|
-
|
|
335
|
+
let vn = null;
|
|
394
336
|
if (publicAPI.getActiveCamera()) {
|
|
395
337
|
vn = model.activeCamera.getViewPlaneNormal();
|
|
396
338
|
} else {
|
|
397
339
|
vtkErrorMacro('Trying to reset non-existent camera');
|
|
398
340
|
return false;
|
|
399
|
-
}
|
|
400
|
-
// the view angle to become very small and cause bad depth sorting.
|
|
401
|
-
|
|
341
|
+
}
|
|
402
342
|
|
|
343
|
+
// Reset the perspective zoom factors, otherwise subsequent zooms will cause
|
|
344
|
+
// the view angle to become very small and cause bad depth sorting.
|
|
403
345
|
model.activeCamera.setViewAngle(30.0);
|
|
404
346
|
center[0] = (boundsToUse[0] + boundsToUse[1]) / 2.0;
|
|
405
347
|
center[1] = (boundsToUse[2] + boundsToUse[3]) / 2.0;
|
|
406
348
|
center[2] = (boundsToUse[4] + boundsToUse[5]) / 2.0;
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
349
|
+
let w1 = boundsToUse[1] - boundsToUse[0];
|
|
350
|
+
let w2 = boundsToUse[3] - boundsToUse[2];
|
|
351
|
+
let w3 = boundsToUse[5] - boundsToUse[4];
|
|
410
352
|
w1 *= w1;
|
|
411
353
|
w2 *= w2;
|
|
412
354
|
w3 *= w3;
|
|
413
|
-
|
|
355
|
+
let radius = w1 + w2 + w3;
|
|
356
|
+
|
|
357
|
+
// If we have just a single point, pick a radius of 1.0
|
|
358
|
+
radius = radius === 0 ? 1.0 : radius;
|
|
414
359
|
|
|
415
|
-
|
|
360
|
+
// compute the radius of the enclosing sphere
|
|
361
|
+
radius = Math.sqrt(radius) * 0.5;
|
|
362
|
+
|
|
363
|
+
// default so that the bounding sphere fits within the view fustrum
|
|
416
364
|
|
|
417
|
-
radius = Math.sqrt(radius) * 0.5; // default so that the bounding sphere fits within the view fustrum
|
|
418
365
|
// compute the distance from the intersection of the view frustum with the
|
|
419
366
|
// bounding sphere. Basically in 2D draw a circle representing the bounding
|
|
420
367
|
// sphere in 2D then draw a horizontal line going out from the center of
|
|
@@ -426,145 +373,128 @@ function vtkRenderer(publicAPI, model) {
|
|
|
426
373
|
// this forms a right triangle with one side being the radius, another being
|
|
427
374
|
// the target distance for the camera, then just find the target dist using
|
|
428
375
|
// a sin.
|
|
376
|
+
const angle = radiansFromDegrees(model.activeCamera.getViewAngle());
|
|
377
|
+
const parallelScale = radius;
|
|
378
|
+
const distance = radius / Math.sin(angle * 0.5);
|
|
429
379
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
var distance = radius / Math.sin(angle * 0.5); // check view-up vector against view plane normal
|
|
433
|
-
|
|
434
|
-
var vup = model.activeCamera.getViewUp();
|
|
435
|
-
|
|
380
|
+
// check view-up vector against view plane normal
|
|
381
|
+
const vup = model.activeCamera.getViewUp();
|
|
436
382
|
if (Math.abs(dot(vup, vn)) > 0.999) {
|
|
437
383
|
vtkWarningMacro('Resetting view-up since view plane normal is parallel');
|
|
438
384
|
model.activeCamera.setViewUp(-vup[2], vup[0], vup[1]);
|
|
439
|
-
}
|
|
440
|
-
|
|
385
|
+
}
|
|
441
386
|
|
|
387
|
+
// update the camera
|
|
442
388
|
model.activeCamera.setFocalPoint(center[0], center[1], center[2]);
|
|
443
389
|
model.activeCamera.setPosition(center[0] + distance * vn[0], center[1] + distance * vn[1], center[2] + distance * vn[2]);
|
|
444
|
-
publicAPI.resetCameraClippingRange(boundsToUse);
|
|
390
|
+
publicAPI.resetCameraClippingRange(boundsToUse);
|
|
445
391
|
|
|
446
|
-
|
|
392
|
+
// setup default parallel scale
|
|
393
|
+
model.activeCamera.setParallelScale(parallelScale);
|
|
447
394
|
|
|
395
|
+
// update reasonable world to physical values
|
|
448
396
|
model.activeCamera.setPhysicalScale(radius);
|
|
449
|
-
model.activeCamera.setPhysicalTranslation(-center[0], -center[1], -center[2]);
|
|
450
|
-
// and do the right thing.
|
|
397
|
+
model.activeCamera.setPhysicalTranslation(-center[0], -center[1], -center[2]);
|
|
451
398
|
|
|
399
|
+
// Here to let parallel/distributed compositing intercept
|
|
400
|
+
// and do the right thing.
|
|
452
401
|
publicAPI.invokeEvent(RESET_CAMERA_EVENT);
|
|
453
402
|
return true;
|
|
454
403
|
};
|
|
455
|
-
|
|
456
404
|
publicAPI.resetCameraClippingRange = function () {
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
405
|
+
let bounds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
406
|
+
const boundsToUse = bounds || publicAPI.computeVisiblePropBounds();
|
|
460
407
|
if (!areBoundsInitialized(boundsToUse)) {
|
|
461
408
|
vtkDebugMacro('Cannot reset camera clipping range!');
|
|
462
409
|
return false;
|
|
463
|
-
}
|
|
464
|
-
|
|
410
|
+
}
|
|
465
411
|
|
|
412
|
+
// Make sure we have an active camera
|
|
466
413
|
publicAPI.getActiveCameraAndResetIfCreated();
|
|
467
|
-
|
|
468
414
|
if (!model.activeCamera) {
|
|
469
415
|
vtkErrorMacro('Trying to reset clipping range of non-existent camera');
|
|
470
416
|
return false;
|
|
471
|
-
}
|
|
417
|
+
}
|
|
472
418
|
|
|
419
|
+
// Get the exact range for the bounds
|
|
420
|
+
const range = model.activeCamera.computeClippingRange(boundsToUse);
|
|
473
421
|
|
|
474
|
-
|
|
422
|
+
// do not let far - near be less than 0.1 of the window height
|
|
475
423
|
// this is for cases such as 2D images which may have zero range
|
|
476
|
-
|
|
477
|
-
var minGap = 0.0;
|
|
478
|
-
|
|
424
|
+
let minGap = 0.0;
|
|
479
425
|
if (model.activeCamera.getParallelProjection()) {
|
|
480
426
|
minGap = 0.2 * model.activeCamera.getParallelScale();
|
|
481
427
|
} else {
|
|
482
|
-
|
|
428
|
+
const angle = radiansFromDegrees(model.activeCamera.getViewAngle());
|
|
483
429
|
minGap = 0.2 * Math.tan(angle / 2.0) * range[1];
|
|
484
430
|
}
|
|
485
|
-
|
|
486
431
|
if (range[1] - range[0] < minGap) {
|
|
487
432
|
minGap = minGap - range[1] + range[0];
|
|
488
433
|
range[1] += minGap / 2.0;
|
|
489
434
|
range[0] -= minGap / 2.0;
|
|
490
|
-
}
|
|
491
|
-
|
|
435
|
+
}
|
|
492
436
|
|
|
437
|
+
// Do not let the range behind the camera throw off the calculation.
|
|
493
438
|
if (range[0] < 0.0) {
|
|
494
439
|
range[0] = 0.0;
|
|
495
|
-
}
|
|
496
|
-
|
|
440
|
+
}
|
|
497
441
|
|
|
442
|
+
// Give ourselves a little breathing room
|
|
498
443
|
range[0] = 0.99 * range[0] - (range[1] - range[0]) * model.clippingRangeExpansion;
|
|
499
|
-
range[1] = 1.01 * range[1] + (range[1] - range[0]) * model.clippingRangeExpansion;
|
|
444
|
+
range[1] = 1.01 * range[1] + (range[1] - range[0]) * model.clippingRangeExpansion;
|
|
445
|
+
|
|
446
|
+
// Make sure near is not bigger than far
|
|
447
|
+
range[0] = range[0] >= range[1] ? 0.01 * range[1] : range[0];
|
|
500
448
|
|
|
501
|
-
|
|
449
|
+
// Make sure near is at least some fraction of far - this prevents near
|
|
502
450
|
// from being behind the camera or too close in front. How close is too
|
|
503
451
|
// close depends on the resolution of the depth buffer
|
|
504
|
-
|
|
505
452
|
if (!model.nearClippingPlaneTolerance) {
|
|
506
453
|
model.nearClippingPlaneTolerance = 0.01;
|
|
507
|
-
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
// make sure the front clipping range is not too far from the far clippnig
|
|
508
457
|
// range, this is to make sure that the zbuffer resolution is effectively
|
|
509
458
|
// used
|
|
510
|
-
|
|
511
|
-
|
|
512
459
|
if (range[0] < model.nearClippingPlaneTolerance * range[1]) {
|
|
513
460
|
range[0] = model.nearClippingPlaneTolerance * range[1];
|
|
514
461
|
}
|
|
462
|
+
model.activeCamera.setClippingRange(range[0], range[1]);
|
|
515
463
|
|
|
516
|
-
|
|
464
|
+
// Here to let parallel/distributed compositing intercept
|
|
517
465
|
// and do the right thing.
|
|
518
|
-
|
|
519
466
|
publicAPI.invokeEvent(RESET_CAMERA_CLIPPING_RANGE_EVENT);
|
|
520
467
|
return false;
|
|
521
468
|
};
|
|
522
|
-
|
|
523
|
-
publicAPI.setRenderWindow = function (renderWindow) {
|
|
469
|
+
publicAPI.setRenderWindow = renderWindow => {
|
|
524
470
|
if (renderWindow !== model._renderWindow) {
|
|
525
471
|
model._vtkWindow = renderWindow;
|
|
526
472
|
model._renderWindow = renderWindow;
|
|
527
473
|
}
|
|
528
474
|
};
|
|
529
|
-
|
|
530
|
-
publicAPI.visibleActorCount = function () {
|
|
531
|
-
return model.props.filter(function (prop) {
|
|
532
|
-
return prop.getVisibility();
|
|
533
|
-
}).length;
|
|
534
|
-
};
|
|
535
|
-
|
|
475
|
+
publicAPI.visibleActorCount = () => model.props.filter(prop => prop.getVisibility()).length;
|
|
536
476
|
publicAPI.visibleVolumeCount = publicAPI.visibleActorCount;
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
var m2 = model.activeCamera ? model.activeCamera.getMTime() : 0;
|
|
541
|
-
|
|
477
|
+
publicAPI.getMTime = () => {
|
|
478
|
+
let m1 = model.mtime;
|
|
479
|
+
const m2 = model.activeCamera ? model.activeCamera.getMTime() : 0;
|
|
542
480
|
if (m2 > m1) {
|
|
543
481
|
m1 = m2;
|
|
544
482
|
}
|
|
545
|
-
|
|
546
|
-
var m3 = model._createdLight ? model._createdLight.getMTime() : 0;
|
|
547
|
-
|
|
483
|
+
const m3 = model._createdLight ? model._createdLight.getMTime() : 0;
|
|
548
484
|
if (m3 > m1) {
|
|
549
485
|
m1 = m3;
|
|
550
486
|
}
|
|
551
|
-
|
|
552
487
|
return m1;
|
|
553
488
|
};
|
|
489
|
+
publicAPI.getTransparent = () => !!model.preserveColorBuffer;
|
|
490
|
+
publicAPI.isActiveCameraCreated = () => !!model.activeCamera;
|
|
491
|
+
}
|
|
554
492
|
|
|
555
|
-
|
|
556
|
-
return !!model.preserveColorBuffer;
|
|
557
|
-
};
|
|
558
|
-
|
|
559
|
-
publicAPI.isActiveCameraCreated = function () {
|
|
560
|
-
return !!model.activeCamera;
|
|
561
|
-
};
|
|
562
|
-
} // ----------------------------------------------------------------------------
|
|
493
|
+
// ----------------------------------------------------------------------------
|
|
563
494
|
// Object factory
|
|
564
495
|
// ----------------------------------------------------------------------------
|
|
565
496
|
|
|
566
|
-
|
|
567
|
-
var DEFAULT_VALUES = {
|
|
497
|
+
const DEFAULT_VALUES = {
|
|
568
498
|
pickedProp: null,
|
|
569
499
|
activeCamera: null,
|
|
570
500
|
allBounds: [],
|
|
@@ -604,36 +534,42 @@ var DEFAULT_VALUES = {
|
|
|
604
534
|
environmentTextureSpecularStrength: 1,
|
|
605
535
|
useEnvironmentTextureAsBackground: false,
|
|
606
536
|
pass: 0
|
|
607
|
-
};
|
|
537
|
+
};
|
|
538
|
+
|
|
539
|
+
// ----------------------------------------------------------------------------
|
|
608
540
|
|
|
609
541
|
function extend(publicAPI, model) {
|
|
610
|
-
|
|
611
|
-
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
542
|
+
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
543
|
+
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
612
544
|
|
|
613
|
-
|
|
545
|
+
// Inheritance
|
|
546
|
+
vtkViewport.extend(publicAPI, model, initialValues);
|
|
614
547
|
|
|
548
|
+
// make sure background has 4 entries. Default to opaque black
|
|
615
549
|
if (!model.background) model.background = [0, 0, 0, 1];
|
|
550
|
+
while (model.background.length < 3) model.background.push(0);
|
|
551
|
+
if (model.background.length === 3) model.background.push(1);
|
|
616
552
|
|
|
617
|
-
|
|
618
|
-
model.background.push(0);
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
if (model.background.length === 3) model.background.push(1); // Build VTK API
|
|
622
|
-
|
|
553
|
+
// Build VTK API
|
|
623
554
|
get(publicAPI, model, ['_renderWindow', 'allocatedRenderTime', 'timeFactor', 'lastRenderTimeInSeconds', 'numberOfPropsRendered', 'lastRenderingUsedDepthPeeling', 'selector']);
|
|
624
555
|
setGet(publicAPI, model, ['twoSidedLighting', 'lightFollowCamera', 'automaticLightCreation', 'erase', 'draw', 'nearClippingPlaneTolerance', 'clippingRangeExpansion', 'backingStore', 'interactive', 'layer', 'preserveColorBuffer', 'preserveDepthBuffer', 'useDepthPeeling', 'occlusionRatio', 'maximumNumberOfPeels', 'delegate', 'backgroundTexture', 'texturedBackground', 'environmentTexture', 'environmentTextureDiffuseStrength', 'environmentTextureSpecularStrength', 'useEnvironmentTextureAsBackground', 'useShadows', 'pass']);
|
|
625
556
|
getArray(publicAPI, model, ['actors', 'volumes', 'lights']);
|
|
626
557
|
setGetArray(publicAPI, model, ['background'], 4, 1.0);
|
|
627
|
-
moveToProtected(publicAPI, model, ['renderWindow']);
|
|
558
|
+
moveToProtected(publicAPI, model, ['renderWindow']);
|
|
628
559
|
|
|
560
|
+
// Object methods
|
|
629
561
|
vtkRenderer(publicAPI, model);
|
|
630
|
-
}
|
|
562
|
+
}
|
|
631
563
|
|
|
632
|
-
|
|
564
|
+
// ----------------------------------------------------------------------------
|
|
565
|
+
|
|
566
|
+
const newInstance = newInstance$1(extend, 'vtkRenderer');
|
|
567
|
+
|
|
568
|
+
// ----------------------------------------------------------------------------
|
|
633
569
|
|
|
634
570
|
var vtkRenderer$1 = {
|
|
635
|
-
newInstance
|
|
636
|
-
extend
|
|
571
|
+
newInstance,
|
|
572
|
+
extend
|
|
637
573
|
};
|
|
638
574
|
|
|
639
575
|
export { vtkRenderer$1 as default, extend, newInstance };
|