From 3ef9349333ef494ba61605c289a668ce632f3a8a Mon Sep 17 00:00:00 2001 From: Github Actions Date: Wed, 20 Nov 2024 15:01:05 +0000 Subject: [PATCH] Updates --- 2016/04/29/kw-doc/index.html | 2 +- api/Common_Core_Base64.html | 6 +- api/Common_Core_CellArray.html | 6 +- api/Common_Core_ClassHierarchy.html | 6 +- api/Common_Core_DataArray.html | 6 +- api/Common_Core_Endian.html | 6 +- api/Common_Core_HalfFloat.html | 6 +- api/Common_Core_ImageHelper.html | 6 +- api/Common_Core_LookupTable.html | 6 +- api/Common_Core_Math.html | 6 +- api/Common_Core_MatrixBuilder.html | 6 +- api/Common_Core_Points.html | 6 +- api/Common_Core_PriorityQueue.html | 6 +- api/Common_Core_ProgressHandler.html | 6 +- api/Common_Core_ScalarsToColors.html | 6 +- api/Common_Core_StringArray.html | 6 +- api/Common_Core_URLExtract.html | 6 +- api/Common_Core_VariantArray.html | 6 +- ...Common_DataModel_AbstractPointLocator.html | 6 +- api/Common_DataModel_BoundingBox.html | 6 +- api/Common_DataModel_Box.html | 6 +- api/Common_DataModel_CardinalSpline1D.html | 6 +- api/Common_DataModel_Cell.html | 6 +- api/Common_DataModel_CellLinks.html | 6 +- api/Common_DataModel_CellTypes.html | 6 +- api/Common_DataModel_Collection.html | 6 +- api/Common_DataModel_Cone.html | 6 +- api/Common_DataModel_Cylinder.html | 6 +- api/Common_DataModel_DataSet.html | 6 +- api/Common_DataModel_DataSetAttributes.html | 6 +- api/Common_DataModel_EdgeLocator.html | 6 +- api/Common_DataModel_ITKHelper.html | 6 +- api/Common_DataModel_ImageData.html | 6 +- api/Common_DataModel_ImplicitBoolean.html | 6 +- api/Common_DataModel_ImplicitFunction.html | 6 +- ...ommon_DataModel_IncrementalOctreeNode.html | 6 +- ...taModel_IncrementalOctreePointLocator.html | 6 +- api/Common_DataModel_KochanekSpline1D.html | 6 +- api/Common_DataModel_Line.html | 6 +- api/Common_DataModel_Locator.html | 6 +- api/Common_DataModel_Molecule.html | 6 +- api/Common_DataModel_PiecewiseFunction.html | 6 +- api/Common_DataModel_Plane.html | 6 +- api/Common_DataModel_PointSet.html | 6 +- api/Common_DataModel_PolyData.html | 6 +- api/Common_DataModel_PolyLine.html | 6 +- api/Common_DataModel_Polygon.html | 6 +- api/Common_DataModel_Quad.html | 6 +- api/Common_DataModel_SelectionNode.html | 6 +- api/Common_DataModel_Sphere.html | 6 +- api/Common_DataModel_Spline1D.html | 6 +- api/Common_DataModel_Spline3D.html | 6 +- api/Common_DataModel_StructuredData.html | 6 +- api/Common_DataModel_Triangle.html | 6 +- api/Common_System_MobileVR.html | 6 +- api/Common_System_TimerLog.html | 6 +- api/Common_Transform_LandmarkTransform.html | 6 +- api/Common_Transform_Transform.html | 6 +- api/Filters_Core_Cutter.html | 6 +- api/Filters_Core_PolyDataNormals.html | 6 +- ...rnerstone_ImageDataToCornerstoneImage.html | 6 +- api/Filters_General_AppendPolyData.html | 6 +- api/Filters_General_Calculator.html | 6 +- api/Filters_General_ClipClosedSurface.html | 6 +- ...General_ClosedPolyLineToSurfaceFilter.html | 6 +- ...Filters_General_ContourLoopExtraction.html | 6 +- api/Filters_General_ContourTriangulator.html | 6 +- api/Filters_General_ImageCropFilter.html | 6 +- ...ilters_General_ImageDataOutlineFilter.html | 6 +- api/Filters_General_ImageMarchingCubes.html | 6 +- api/Filters_General_ImageMarchingSquares.html | 6 +- api/Filters_General_ImageOutlineFilter.html | 6 +- api/Filters_General_ImageSliceFilter.html | 6 +- api/Filters_General_ImageStreamline.html | 6 +- api/Filters_General_LineFilter.html | 6 +- ...ters_General_MoleculeToRepresentation.html | 6 +- api/Filters_General_OBBTree.html | 6 +- api/Filters_General_OutlineFilter.html | 6 +- api/Filters_General_PaintFilter.html | 6 +- api/Filters_General_ScalarToRGBA.html | 6 +- api/Filters_General_TriangleFilter.html | 6 +- api/Filters_General_TubeFilter.html | 6 +- api/Filters_General_WarpScalar.html | 6 +- ...rs_General_WindowedSincPolyDataFilter.html | 6 +- api/Filters_Sources_Arrow2DSource.html | 6 +- api/Filters_Sources_ArrowSource.html | 6 +- api/Filters_Sources_CircleSource.html | 6 +- ...ters_Sources_ConcentricCylinderSource.html | 6 +- api/Filters_Sources_ConeSource.html | 6 +- api/Filters_Sources_CubeSource.html | 6 +- api/Filters_Sources_Cursor3D.html | 6 +- api/Filters_Sources_CylinderSource.html | 6 +- api/Filters_Sources_ImageGridSource.html | 6 +- api/Filters_Sources_LineSource.html | 6 +- api/Filters_Sources_PlaneSource.html | 6 +- api/Filters_Sources_PointSource.html | 6 +- api/Filters_Sources_RTAnalyticSource.html | 6 +- api/Filters_Sources_SLICSource.html | 6 +- api/Filters_Sources_SphereSource.html | 6 +- api/Filters_Sources_ViewFinderSource.html | 6 +- api/Filters_Texture_TextureMapToPlane.html | 6 +- api/Filters_Texture_TextureMapToSphere.html | 6 +- api/IO_Core_BinaryHelper.html | 6 +- api/IO_Core_DataAccessHelper.html | 6 +- api/IO_Core_HttpDataSetReader.html | 6 +- api/IO_Core_HttpDataSetSeriesReader.html | 6 +- api/IO_Core_HttpSceneLoader.html | 6 +- api/IO_Core_ImageStream.html | 6 +- api/IO_Core_ResourceLoader.html | 6 +- api/IO_Core_Serializer.html | 6 +- api/IO_Core_WSLinkClient.html | 6 +- api/IO_Core_ZipMultiDataSetReader.html | 6 +- api/IO_Core_ZipMultiDataSetWriter.html | 6 +- api/IO_Geometry_DracoReader.html | 6 +- api/IO_Geometry_GLTFImporter.html | 6 +- api/IO_Geometry_PLYReader.html | 6 +- api/IO_Geometry_PLYWriter.html | 6 +- api/IO_Geometry_STLReader.html | 6 +- api/IO_Geometry_STLWriter.html | 6 +- api/IO_Image_HDRReader.html | 6 +- api/IO_Image_TGAReader.html | 6 +- api/IO_Legacy_LegacyAsciiParser.html | 6 +- api/IO_Legacy_PolyDataReader.html | 6 +- api/IO_Misc_ElevationReader.html | 6 +- api/IO_Misc_GCodeReader.html | 6 +- api/IO_Misc_HttpDataSetLODsLoader.html | 6 +- api/IO_Misc_ITKImageReader.html | 6 +- api/IO_Misc_ITKPolyDataReader.html | 6 +- api/IO_Misc_JSONNucleoReader.html | 6 +- api/IO_Misc_JSONReader.html | 6 +- api/IO_Misc_MTLReader.html | 6 +- api/IO_Misc_OBJReader.html | 6 +- api/IO_Misc_PDBReader.html | 6 +- api/IO_Misc_SkyboxReader.html | 6 +- api/IO_XML_XMLImageDataReader.html | 6 +- api/IO_XML_XMLImageDataWriter.html | 6 +- api/IO_XML_XMLPolyDataReader.html | 6 +- api/IO_XML_XMLPolyDataWriter.html | 6 +- api/IO_XML_XMLReader.html | 6 +- api/IO_XML_XMLWriter.html | 6 +- ...maging_Core_AbstractImageInterpolator.html | 6 +- api/Imaging_Core_ImageInterpolator.html | 6 +- api/Imaging_Core_ImagePointDataIterator.html | 6 +- api/Imaging_Core_ImageReslice.html | 6 +- api/Imaging_Hybrid_SampleFunction.html | 6 +- ...mations_TimeStepBasedAnimationHandler.html | 6 +- ..._3DControllerModelSelectorManipulator.html | 6 +- ...nipulators_CompositeCameraManipulator.html | 6 +- ...ipulators_CompositeGestureManipulator.html | 6 +- ...pulators_CompositeKeyboardManipulator.html | 6 +- ...anipulators_CompositeMouseManipulator.html | 6 +- ...n_Manipulators_CompositeVRManipulator.html | 6 +- ...Manipulators_GestureCameraManipulator.html | 6 +- ...anipulators_KeyboardCameraManipulator.html | 6 +- ...ipulators_MouseBoxSelectorManipulator.html | 6 +- ...tors_MouseCameraAxisRotateManipulator.html | 6 +- ...ipulators_MouseCameraSliceManipulator.html | 6 +- ...CameraTrackballFirstPersonManipulator.html | 6 +- ...CameraTrackballMultiRotateManipulator.html | 6 +- ...rs_MouseCameraTrackballPanManipulator.html | 6 +- ...s_MouseCameraTrackballRollManipulator.html | 6 +- ...MouseCameraTrackballRotateManipulator.html | 6 +- ...s_MouseCameraTrackballZoomManipulator.html | 6 +- ...CameraTrackballZoomToMouseManipulator.html | 6 +- ...pulators_MouseCameraUnicamManipulator.html | 6 +- ...rs_MouseCameraUnicamRotateManipulator.html | 6 +- ...on_Manipulators_MouseRangeManipulator.html | 6 +- ...n_Manipulators_VRButtonPanManipulator.html | 6 +- ...action_Misc_DeviceOrientationToCamera.html | 6 +- ...nteraction_Style_InteractorStyleHMDXR.html | 6 +- ...nteraction_Style_InteractorStyleImage.html | 6 +- ...raction_Style_InteractorStyleMPRSlice.html | 6 +- ...tion_Style_InteractorStyleManipulator.html | 6 +- ...tion_Style_InteractorStyleRemoteMouse.html | 6 +- ..._Style_InteractorStyleTrackballCamera.html | 6 +- ...teraction_Style_InteractorStyleUnicam.html | 6 +- api/Interaction_UI_CornerAnnotation.html | 6 +- api/Interaction_UI_FPSMonitor.html | 6 +- api/Interaction_UI_Icons.html | 6 +- api/Interaction_UI_Slider.html | 6 +- api/Interaction_UI_VolumeController.html | 6 +- ...ction_Widgets_OrientationMarkerWidget.html | 6 +- ...ction_Widgets_PiecewiseGaussianWidget.html | 6 +- ...roxy_Animation_AbstractAnimationProxy.html | 6 +- ...Proxy_Animation_AnimationProxyManager.html | 6 +- ...on_TimeStepBasedAnimationHandlerProxy.html | 6 +- ...roxy_Core_AbstractRepresentationProxy.html | 6 +- api/Proxy_Core_LookupTableProxy.html | 6 +- api/Proxy_Core_PiecewiseFunctionProxy.html | 6 +- api/Proxy_Core_ProxyManager.html | 6 +- api/Proxy_Core_SourceProxy.html | 6 +- api/Proxy_Core_View2DProxy.html | 6 +- api/Proxy_Core_ViewProxy.html | 6 +- ...entations_GeometryRepresentationProxy.html | 6 +- ...resentations_GlyphRepresentationProxy.html | 6 +- ...entations_MoleculeRepresentationProxy.html | 6 +- ...sentations_ResliceRepresentationProxy.html | 6 +- ...esentations_SkyboxRepresentationProxy.html | 6 +- ...resentations_SliceRepresentationProxy.html | 6 +- ...ons_SlicedGeometryRepresentationProxy.html | 6 +- ...esentations_VolumeRepresentationProxy.html | 6 +- api/Rendering_Core_AbstractImageMapper.html | 6 +- api/Rendering_Core_AbstractMapper.html | 6 +- api/Rendering_Core_AbstractMapper3D.html | 6 +- api/Rendering_Core_AbstractPicker.html | 6 +- api/Rendering_Core_Actor.html | 6 +- api/Rendering_Core_Actor2D.html | 6 +- api/Rendering_Core_AnnotatedCubeActor.html | 6 +- api/Rendering_Core_AxesActor.html | 6 +- api/Rendering_Core_Camera.html | 6 +- api/Rendering_Core_CellPicker.html | 6 +- api/Rendering_Core_ColorTransferFunction.html | 6 +- api/Rendering_Core_Coordinate.html | 6 +- api/Rendering_Core_CubeAxesActor.html | 6 +- api/Rendering_Core_Follower.html | 6 +- api/Rendering_Core_Glyph3DMapper.html | 6 +- api/Rendering_Core_HardwareSelector.html | 6 +- api/Rendering_Core_ImageArrayMapper.html | 6 +- api/Rendering_Core_ImageCPRMapper.html | 6 +- api/Rendering_Core_ImageMapper.html | 6 +- api/Rendering_Core_ImageProperty.html | 6 +- api/Rendering_Core_ImageResliceMapper.html | 6 +- api/Rendering_Core_ImageSlice.html | 6 +- api/Rendering_Core_InteractorObserver.html | 6 +- api/Rendering_Core_InteractorStyle.html | 6 +- api/Rendering_Core_Light.html | 6 +- api/Rendering_Core_Mapper.html | 6 +- api/Rendering_Core_Mapper2D.html | 6 +- api/Rendering_Core_Picker.html | 6 +- ...ndering_Core_PixelSpaceCallbackMapper.html | 6 +- api/Rendering_Core_PointPicker.html | 6 +- api/Rendering_Core_Prop.html | 6 +- api/Rendering_Core_Prop3D.html | 6 +- api/Rendering_Core_Property.html | 6 +- api/Rendering_Core_Property2D.html | 6 +- api/Rendering_Core_RenderWindow.html | 6 +- ...Rendering_Core_RenderWindowInteractor.html | 6 +- api/Rendering_Core_Renderer.html | 6 +- api/Rendering_Core_ScalarBarActor.html | 6 +- api/Rendering_Core_Skybox.html | 6 +- api/Rendering_Core_SphereMapper.html | 6 +- api/Rendering_Core_StickMapper.html | 6 +- api/Rendering_Core_SurfaceLICInterface.html | 6 +- api/Rendering_Core_SurfaceLICMapper.html | 6 +- api/Rendering_Core_Texture.html | 6 +- api/Rendering_Core_Viewport.html | 6 +- api/Rendering_Core_Volume.html | 6 +- api/Rendering_Core_VolumeMapper.html | 6 +- api/Rendering_Core_VolumeProperty.html | 6 +- api/Rendering_Misc_CanvasView.html | 6 +- ...Rendering_Misc_FullScreenRenderWindow.html | 6 +- api/Rendering_Misc_GenericRenderWindow.html | 6 +- api/Rendering_Misc_RemoteView.html | 6 +- ...ering_Misc_RenderWindowWithControlBar.html | 6 +- api/Rendering_Misc_RenderingAPIs.html | 6 +- ...ering_Misc_SynchronizableRenderWindow.html | 6 +- api/Rendering_Misc_TextureLODsDownloader.html | 6 +- api/Rendering_OpenGL_Actor.html | 6 +- api/Rendering_OpenGL_Actor2D.html | 6 +- api/Rendering_OpenGL_BufferObject.html | 6 +- api/Rendering_OpenGL_Camera.html | 6 +- ...endering_OpenGL_CellArrayBufferObject.html | 6 +- api/Rendering_OpenGL_Convolution2DPass.html | 6 +- api/Rendering_OpenGL_CubeAxesActor.html | 6 +- api/Rendering_OpenGL_ForwardPass.html | 6 +- api/Rendering_OpenGL_Framebuffer.html | 6 +- api/Rendering_OpenGL_Glyph3DMapper.html | 6 +- api/Rendering_OpenGL_HardwareSelector.html | 6 +- api/Rendering_OpenGL_Helper.html | 6 +- api/Rendering_OpenGL_ImageCPRMapper.html | 6 +- api/Rendering_OpenGL_ImageMapper.html | 6 +- api/Rendering_OpenGL_ImageResliceMapper.html | 6 +- api/Rendering_OpenGL_ImageSlice.html | 6 +- ...penGL_OrderIndependentTranslucentPass.html | 6 +- ...ering_OpenGL_PixelSpaceCallbackMapper.html | 6 +- api/Rendering_OpenGL_PolyDataMapper.html | 6 +- api/Rendering_OpenGL_PolyDataMapper2D.html | 6 +- api/Rendering_OpenGL_Profiles.html | 6 +- ...Rendering_OpenGL_RadialDistortionPass.html | 6 +- api/Rendering_OpenGL_RenderWindow.html | 6 +- api/Rendering_OpenGL_Renderer.html | 6 +- ...dering_OpenGL_ReplacementShaderMapper.html | 6 +- api/Rendering_OpenGL_ScalarBarActor.html | 6 +- api/Rendering_OpenGL_Shader.html | 6 +- api/Rendering_OpenGL_ShaderCache.html | 6 +- api/Rendering_OpenGL_ShaderProgram.html | 6 +- api/Rendering_OpenGL_Skybox.html | 6 +- api/Rendering_OpenGL_SphereMapper.html | 6 +- api/Rendering_OpenGL_StickMapper.html | 6 +- api/Rendering_OpenGL_SurfaceLIC.html | 6 +- api/Rendering_OpenGL_Texture.html | 6 +- api/Rendering_OpenGL_TextureUnitManager.html | 6 +- api/Rendering_OpenGL_VertexArrayObject.html | 6 +- api/Rendering_OpenGL_ViewNodeFactory.html | 6 +- api/Rendering_OpenGL_Volume.html | 6 +- api/Rendering_OpenGL_VolumeMapper.html | 6 +- api/Rendering_OpenGL_glsl.html | 6 +- api/Rendering_SceneGraph_RenderPass.html | 6 +- ...ering_SceneGraph_RenderWindowViewNode.html | 6 +- api/Rendering_SceneGraph_ViewNode.html | 6 +- api/Rendering_SceneGraph_ViewNodeFactory.html | 6 +- api/Rendering_WebGPU_Actor.html | 6 +- api/Rendering_WebGPU_Actor2D.html | 6 +- api/Rendering_WebGPU_BindGroup.html | 6 +- api/Rendering_WebGPU_Buffer.html | 6 +- api/Rendering_WebGPU_BufferManager.html | 6 +- api/Rendering_WebGPU_Camera.html | 6 +- api/Rendering_WebGPU_CellArrayMapper.html | 6 +- api/Rendering_WebGPU_CubeAxesActor.html | 6 +- api/Rendering_WebGPU_Device.html | 6 +- api/Rendering_WebGPU_ForwardPass.html | 6 +- api/Rendering_WebGPU_FullScreenQuad.html | 6 +- api/Rendering_WebGPU_Glyph3DMapper.html | 6 +- ...endering_WebGPU_HardwareSelectionPass.html | 6 +- api/Rendering_WebGPU_HardwareSelector.html | 6 +- api/Rendering_WebGPU_ImageMapper.html | 6 +- api/Rendering_WebGPU_ImageSlice.html | 6 +- api/Rendering_WebGPU_IndexBuffer.html | 6 +- api/Rendering_WebGPU_OpaquePass.html | 6 +- ...ebGPU_OrderIndependentTranslucentPass.html | 6 +- api/Rendering_WebGPU_Pipeline.html | 6 +- ...ering_WebGPU_PixelSpaceCallbackMapper.html | 6 +- api/Rendering_WebGPU_PolyDataMapper.html | 6 +- api/Rendering_WebGPU_PolyDataMapper2D.html | 6 +- api/Rendering_WebGPU_Profiles.html | 6 +- api/Rendering_WebGPU_RenderEncoder.html | 6 +- api/Rendering_WebGPU_RenderWindow.html | 6 +- api/Rendering_WebGPU_Renderer.html | 6 +- api/Rendering_WebGPU_Sampler.html | 6 +- api/Rendering_WebGPU_ScalarBarActor.html | 6 +- api/Rendering_WebGPU_ShaderCache.html | 6 +- api/Rendering_WebGPU_ShaderDescription.html | 6 +- api/Rendering_WebGPU_ShaderModule.html | 6 +- api/Rendering_WebGPU_SimpleMapper.html | 6 +- api/Rendering_WebGPU_SphereMapper.html | 6 +- api/Rendering_WebGPU_StickMapper.html | 6 +- api/Rendering_WebGPU_StorageBuffer.html | 6 +- api/Rendering_WebGPU_Texture.html | 6 +- api/Rendering_WebGPU_TextureManager.html | 6 +- api/Rendering_WebGPU_TextureView.html | 6 +- api/Rendering_WebGPU_Types.html | 6 +- api/Rendering_WebGPU_UniformBuffer.html | 6 +- api/Rendering_WebGPU_VertexInput.html | 6 +- api/Rendering_WebGPU_ViewNodeFactory.html | 6 +- api/Rendering_WebGPU_Volume.html | 6 +- api/Rendering_WebGPU_VolumePass.html | 6 +- api/Rendering_WebGPU_VolumePassFSQ.html | 6 +- api/Rendering_WebXR_RenderWindowHelper.html | 6 +- api/Testing_Examples_ActorSerialization.html | 6 +- api/Testing_Examples_PipelineExecution.html | 6 +- ...esting_Examples_PolyDataSerialization.html | 6 +- ...esting_Examples_StandaloneSceneLoader.html | 6 +- api/Testing_Examples_WindTunnel.html | 6 +- api/Widgets_Core_AbstractWidget.html | 6 +- api/Widgets_Core_AbstractWidgetFactory.html | 6 +- api/Widgets_Core_StateBuilder.html | 6 +- api/Widgets_Core_WidgetManager.html | 6 +- api/Widgets_Core_WidgetState.html | 6 +- ...gets_Manipulators_AbstractManipulator.html | 6 +- api/Widgets_Manipulators_CPRManipulator.html | 6 +- api/Widgets_Manipulators_LineManipulator.html | 6 +- ...idgets_Manipulators_PickerManipulator.html | 6 +- ...Widgets_Manipulators_PlaneManipulator.html | 6 +- ...ets_Manipulators_TrackballManipulator.html | 6 +- ...esentations_ArrowHandleRepresentation.html | 6 +- ...entations_CircleContextRepresentation.html | 6 +- ...Representations_ContextRepresentation.html | 6 +- ...tions_ConvexFaceContextRepresentation.html | 6 +- ...tations_CroppingOutlineRepresentation.html | 6 +- ...resentations_CubeHandleRepresentation.html | 6 +- ...s_Representations_GlyphRepresentation.html | 6 +- ..._Representations_HandleRepresentation.html | 6 +- ...entations_ImplicitPlaneRepresentation.html | 6 +- ...resentations_LineHandleRepresentation.html | 6 +- ...ntations_OutlineContextRepresentation.html | 6 +- ...epresentations_PolyLineRepresentation.html | 6 +- ...ations_RectangleContextRepresentation.html | 6 +- ...entations_SphereContextRepresentation.html | 6 +- ...sentations_SphereHandleRepresentation.html | 6 +- ...entations_SplineContextRepresentation.html | 6 +- ..._Representations_WidgetRepresentation.html | 6 +- api/Widgets_Widgets3D_AngleWidget.html | 6 +- api/Widgets_Widgets3D_EllipseWidget.html | 6 +- ...Widgets_Widgets3D_ImageCroppingWidget.html | 6 +- ...Widgets_Widgets3D_ImplicitPlaneWidget.html | 6 +- ...idgets3D_InteractiveOrientationWidget.html | 6 +- api/Widgets_Widgets3D_LabelWidget.html | 6 +- api/Widgets_Widgets3D_LineWidget.html | 6 +- api/Widgets_Widgets3D_PaintWidget.html | 6 +- api/Widgets_Widgets3D_PolyLineWidget.html | 6 +- api/Widgets_Widgets3D_RectangleWidget.html | 6 +- ...Widgets_Widgets3D_ResliceCursorWidget.html | 6 +- api/Widgets_Widgets3D_SeedWidget.html | 6 +- api/Widgets_Widgets3D_ShapeWidget.html | 6 +- api/Widgets_Widgets3D_SphereWidget.html | 6 +- api/Widgets_Widgets3D_SplineWidget.html | 6 +- api/index.html | 6 +- atom.xml | 4 +- .../Sources/Common/Core/Base64/index.html | 2 +- .../Sources/Common/Core/Base64/index.js.html | 2 +- .../Sources/Common/Core/CellArray/index.html | 2 +- .../Common/Core/CellArray/index.js.html | 2 +- .../Common/Core/ClassHierarchy/index.html | 2 +- .../Common/Core/ClassHierarchy/index.js.html | 2 +- .../Common/Core/DataArray/Constants.js.html | 2 +- .../Sources/Common/Core/DataArray/index.html | 2 +- .../Common/Core/DataArray/index.js.html | 2 +- .../Sources/Common/Core/Endian/index.html | 2 +- .../Sources/Common/Core/Endian/index.js.html | 2 +- .../Sources/Common/Core/HalfFloat/index.html | 2 +- .../Common/Core/HalfFloat/index.js.html | 2 +- .../Common/Core/ImageHelper/index.html | 2 +- .../Common/Core/ImageHelper/index.js.html | 2 +- .../Common/Core/LookupTable/index.html | 2 +- .../Common/Core/LookupTable/index.js.html | 2 +- .../Common/Core/Math/Constants.js.html | 2 +- coverage/Sources/Common/Core/Math/index.html | 2 +- .../Sources/Common/Core/Math/index.js.html | 332 +-- .../Common/Core/MatrixBuilder/index.html | 2 +- .../Common/Core/MatrixBuilder/index.js.html | 2 +- .../Sources/Common/Core/Points/index.html | 2 +- .../Sources/Common/Core/Points/index.js.html | 2 +- .../Common/Core/PriorityQueue/index.html | 2 +- .../Common/Core/PriorityQueue/index.js.html | 2 +- .../Common/Core/ProgressHandler/index.html | 2 +- .../Common/Core/ProgressHandler/index.js.html | 2 +- .../Core/ScalarsToColors/Constants.js.html | 2 +- .../Common/Core/ScalarsToColors/index.html | 2 +- .../Common/Core/ScalarsToColors/index.js.html | 2 +- .../Common/Core/StringArray/index.html | 2 +- .../Common/Core/StringArray/index.js.html | 2 +- .../Sources/Common/Core/URLExtract/index.html | 2 +- .../Common/Core/URLExtract/index.js.html | 2 +- .../Common/Core/VariantArray/index.html | 2 +- .../Common/Core/VariantArray/index.js.html | 2 +- coverage/Sources/Common/Core/index.html | 2 +- coverage/Sources/Common/Core/index.js.html | 2 +- .../DataModel/AbstractPointLocator/index.html | 2 +- .../AbstractPointLocator/index.js.html | 2 +- .../Common/DataModel/BoundingBox/index.html | 2 +- .../DataModel/BoundingBox/index.js.html | 2 +- .../Sources/Common/DataModel/Box/index.html | 2 +- .../Common/DataModel/Box/index.js.html | 2 +- .../DataModel/CardinalSpline1D/index.html | 2 +- .../DataModel/CardinalSpline1D/index.js.html | 2 +- .../Sources/Common/DataModel/Cell/index.html | 2 +- .../Common/DataModel/Cell/index.js.html | 2 +- .../Common/DataModel/CellLinks/index.html | 2 +- .../Common/DataModel/CellLinks/index.js.html | 2 +- .../DataModel/CellTypes/Constants.js.html | 2 +- .../Common/DataModel/CellTypes/index.html | 2 +- .../Common/DataModel/CellTypes/index.js.html | 2 +- .../Common/DataModel/Collection/index.html | 2 +- .../Common/DataModel/Collection/index.js.html | 2 +- .../Sources/Common/DataModel/Cone/index.html | 2 +- .../Common/DataModel/Cone/index.js.html | 2 +- .../Common/DataModel/Cylinder/index.html | 2 +- .../Common/DataModel/Cylinder/index.js.html | 2 +- .../DataModel/DataSet/Constants.js.html | 2 +- .../Common/DataModel/DataSet/index.html | 2 +- .../Common/DataModel/DataSet/index.js.html | 2 +- .../DataSetAttributes/Constants.js.html | 2 +- .../DataSetAttributes/FieldData.js.html | 2 +- .../DataModel/DataSetAttributes/index.html | 2 +- .../DataModel/DataSetAttributes/index.js.html | 2 +- .../Common/DataModel/EdgeLocator/index.html | 2 +- .../DataModel/EdgeLocator/index.js.html | 2 +- .../Common/DataModel/ITKHelper/index.html | 2 +- .../Common/DataModel/ITKHelper/index.js.html | 2 +- .../Common/DataModel/ImageData/index.html | 2 +- .../Common/DataModel/ImageData/index.js.html | 2 +- .../ImplicitBoolean/Constants.js.html | 2 +- .../DataModel/ImplicitBoolean/index.html | 2 +- .../DataModel/ImplicitBoolean/index.js.html | 2 +- .../DataModel/ImplicitFunction/index.html | 2 +- .../DataModel/ImplicitFunction/index.js.html | 2 +- .../IncrementalOctreeNode/index.html | 2 +- .../IncrementalOctreeNode/index.js.html | 2 +- .../IncrementalOctreePointLocator/index.html | 2 +- .../index.js.html | 2 +- .../DataModel/KochanekSpline1D/index.html | 2 +- .../DataModel/KochanekSpline1D/index.js.html | 2 +- .../Common/DataModel/Line/Constants.js.html | 2 +- .../Sources/Common/DataModel/Line/index.html | 2 +- .../Common/DataModel/Line/index.js.html | 2 +- .../Common/DataModel/Locator/index.html | 2 +- .../Common/DataModel/Locator/index.js.html | 2 +- .../Common/DataModel/Molecule/index.html | 2 +- .../Common/DataModel/Molecule/index.js.html | 2 +- .../DataModel/PiecewiseFunction/index.html | 2 +- .../DataModel/PiecewiseFunction/index.js.html | 2 +- .../Sources/Common/DataModel/Plane/index.html | 2 +- .../Common/DataModel/Plane/index.js.html | 2 +- .../Common/DataModel/PointSet/index.html | 2 +- .../Common/DataModel/PointSet/index.js.html | 2 +- .../DataModel/PolyData/Constants.js.html | 2 +- .../Common/DataModel/PolyData/index.html | 2 +- .../Common/DataModel/PolyData/index.js.html | 2 +- .../Common/DataModel/PolyLine/index.html | 2 +- .../Common/DataModel/PolyLine/index.js.html | 2 +- .../DataModel/Polygon/Constants.js.html | 2 +- .../Common/DataModel/Polygon/index.html | 2 +- .../Common/DataModel/Polygon/index.js.html | 2 +- .../Common/DataModel/Quad/Constants.js.html | 2 +- .../Sources/Common/DataModel/Quad/index.html | 2 +- .../Common/DataModel/Quad/index.js.html | 2 +- .../DataModel/SelectionNode/Constants.js.html | 2 +- .../Common/DataModel/SelectionNode/index.html | 2 +- .../DataModel/SelectionNode/index.js.html | 2 +- .../Common/DataModel/Sphere/index.html | 2 +- .../Common/DataModel/Sphere/index.js.html | 2 +- .../DataModel/Spline1D/Constants.js.html | 2 +- .../Common/DataModel/Spline1D/index.html | 2 +- .../Common/DataModel/Spline1D/index.js.html | 2 +- .../DataModel/Spline3D/Constants.js.html | 2 +- .../Common/DataModel/Spline3D/index.html | 2 +- .../Common/DataModel/Spline3D/index.js.html | 2 +- .../StructuredData/Constants.js.html | 2 +- .../DataModel/StructuredData/index.html | 2 +- .../DataModel/StructuredData/index.js.html | 2 +- .../Common/DataModel/Triangle/index.html | 2 +- .../Common/DataModel/Triangle/index.js.html | 2 +- coverage/Sources/Common/DataModel/index.html | 2 +- .../Sources/Common/DataModel/index.js.html | 2 +- .../Common/System/MobileVR/headsets.js.html | 2 +- .../Sources/Common/System/MobileVR/index.html | 10 +- .../Common/System/MobileVR/index.js.html | 8 +- .../Sources/Common/System/TimerLog/index.html | 2 +- .../Common/System/TimerLog/index.js.html | 2 +- coverage/Sources/Common/System/index.html | 2 +- coverage/Sources/Common/System/index.js.html | 2 +- .../LandmarkTransform/Constants.js.html | 2 +- .../Transform/LandmarkTransform/index.html | 2 +- .../Transform/LandmarkTransform/index.js.html | 2 +- .../Common/Transform/Transform/index.html | 2 +- .../Common/Transform/Transform/index.js.html | 2 +- coverage/Sources/Common/Transform/index.html | 2 +- .../Sources/Common/Transform/index.js.html | 2 +- coverage/Sources/Common/index.html | 2 +- coverage/Sources/Common/index.js.html | 2 +- .../Sources/Filters/Core/Cutter/index.html | 2 +- .../Sources/Filters/Core/Cutter/index.js.html | 2 +- .../Filters/Core/PolyDataNormals/index.html | 2 +- .../Core/PolyDataNormals/index.js.html | 2 +- coverage/Sources/Filters/Core/index.html | 2 +- coverage/Sources/Filters/Core/index.js.html | 2 +- .../ImageDataToCornerstoneImage/index.html | 2 +- .../ImageDataToCornerstoneImage/index.js.html | 2 +- .../Sources/Filters/Cornerstone/index.html | 2 +- .../Sources/Filters/Cornerstone/index.js.html | 2 +- .../Filters/General/AppendPolyData/index.html | 2 +- .../General/AppendPolyData/index.js.html | 2 +- .../Filters/General/Calculator/index.html | 2 +- .../Filters/General/Calculator/index.js.html | 2 +- .../ClipClosedSurface/Constants.js.html | 2 +- .../General/ClipClosedSurface/index.html | 2 +- .../General/ClipClosedSurface/index.js.html | 2 +- .../ClosedPolyLineToSurfaceFilter/index.html | 2 +- .../index.js.html | 2 +- .../ContourTriangulator/Constants.js.html | 2 +- .../ContourTriangulator/helper.js.html | 2 +- .../General/ContourTriangulator/index.html | 2 +- .../General/ContourTriangulator/index.js.html | 2 +- .../General/ImageCropFilter/index.html | 2 +- .../General/ImageCropFilter/index.js.html | 2 +- .../General/ImageDataOutlineFilter/index.html | 2 +- .../ImageDataOutlineFilter/index.js.html | 2 +- .../ImageMarchingCubes/caseTable.js.html | 2 +- .../General/ImageMarchingCubes/index.html | 2 +- .../General/ImageMarchingCubes/index.js.html | 2 +- .../ImageMarchingSquares/caseTable.js.html | 2 +- .../General/ImageMarchingSquares/index.html | 2 +- .../ImageMarchingSquares/index.js.html | 2 +- .../General/ImageOutlineFilter/index.html | 2 +- .../General/ImageOutlineFilter/index.js.html | 2 +- .../General/ImageSliceFilter/index.html | 2 +- .../General/ImageSliceFilter/index.js.html | 2 +- .../General/ImageStreamline/index.html | 2 +- .../General/ImageStreamline/index.js.html | 2 +- .../Filters/General/LineFilter/index.html | 2 +- .../Filters/General/LineFilter/index.js.html | 2 +- .../MoleculeToRepresentation/index.html | 2 +- .../MoleculeToRepresentation/index.js.html | 2 +- .../Filters/General/OBBTree/OBBNode.js.html | 2 +- .../Filters/General/OBBTree/helper.js.html | 2 +- .../Filters/General/OBBTree/index.html | 2 +- .../Filters/General/OBBTree/index.js.html | 2 +- .../Filters/General/OutlineFilter/index.html | 2 +- .../General/OutlineFilter/index.js.html | 2 +- .../Filters/General/PaintFilter/index.html | 2 +- .../Filters/General/PaintFilter/index.js.html | 2 +- .../Filters/General/ScalarToRGBA/index.html | 2 +- .../General/ScalarToRGBA/index.js.html | 2 +- .../Filters/General/TriangleFilter/index.html | 2 +- .../General/TriangleFilter/index.js.html | 2 +- .../General/TubeFilter/Constants.js.html | 2 +- .../Filters/General/TubeFilter/index.html | 2 +- .../Filters/General/TubeFilter/index.js.html | 2 +- .../Filters/General/WarpScalar/index.html | 2 +- .../Filters/General/WarpScalar/index.js.html | 2 +- .../WindowedSincPolyDataFilter/index.html | 2 +- .../WindowedSincPolyDataFilter/index.js.html | 2 +- coverage/Sources/Filters/General/index.html | 2 +- .../Sources/Filters/General/index.js.html | 2 +- .../Sources/Arrow2DSource/Constants.js.html | 2 +- .../Filters/Sources/Arrow2DSource/index.html | 2 +- .../Sources/Arrow2DSource/index.js.html | 2 +- .../Filters/Sources/ArrowSource/index.html | 2 +- .../Filters/Sources/ArrowSource/index.js.html | 2 +- .../Filters/Sources/CircleSource/index.html | 2 +- .../Sources/CircleSource/index.js.html | 2 +- .../ConcentricCylinderSource/index.html | 2 +- .../ConcentricCylinderSource/index.js.html | 2 +- .../Filters/Sources/ConeSource/index.html | 2 +- .../Filters/Sources/ConeSource/index.js.html | 2 +- .../Filters/Sources/CubeSource/index.html | 2 +- .../Filters/Sources/CubeSource/index.js.html | 2 +- .../Filters/Sources/Cursor3D/index.html | 2 +- .../Filters/Sources/Cursor3D/index.js.html | 2 +- .../Filters/Sources/CylinderSource/index.html | 2 +- .../Sources/CylinderSource/index.js.html | 2 +- .../Sources/ImageGridSource/index.html | 2 +- .../Sources/ImageGridSource/index.js.html | 2 +- .../Filters/Sources/LineSource/index.html | 2 +- .../Filters/Sources/LineSource/index.js.html | 2 +- .../Filters/Sources/PlaneSource/index.html | 2 +- .../Filters/Sources/PlaneSource/index.js.html | 2 +- .../Filters/Sources/PointSource/index.html | 2 +- .../Filters/Sources/PointSource/index.js.html | 2 +- .../Sources/RTAnalyticSource/index.html | 2 +- .../Sources/RTAnalyticSource/index.js.html | 2 +- .../Filters/Sources/SLICSource/index.html | 2 +- .../Filters/Sources/SLICSource/index.js.html | 2 +- .../Filters/Sources/SphereSource/index.html | 2 +- .../Sources/SphereSource/index.js.html | 2 +- .../Sources/ViewFinderSource/index.html | 2 +- .../Sources/ViewFinderSource/index.js.html | 2 +- coverage/Sources/Filters/Sources/index.html | 2 +- .../Sources/Filters/Sources/index.js.html | 2 +- .../Texture/TextureMapToPlane/index.html | 2 +- .../Texture/TextureMapToPlane/index.js.html | 2 +- .../Texture/TextureMapToSphere/index.html | 2 +- .../Texture/TextureMapToSphere/index.js.html | 2 +- coverage/Sources/Filters/Texture/index.html | 2 +- .../Sources/Filters/Texture/index.js.html | 2 +- coverage/Sources/Filters/index.html | 2 +- coverage/Sources/Filters/index.js.html | 2 +- .../Sources/IO/Core/BinaryHelper/index.html | 2 +- .../IO/Core/BinaryHelper/index.js.html | 2 +- .../HtmlDataAccessHelper.js.html | 2 +- .../HttpDataAccessHelper.js.html | 2 +- .../JSZipDataAccessHelper.js.html | 2 +- .../LiteHttpDataAccessHelper.js.html | 2 +- .../IO/Core/DataAccessHelper/index.html | 2 +- .../IO/Core/DataAccessHelper/index.js.html | 2 +- .../IO/Core/HttpDataSetReader/index.html | 2 +- .../IO/Core/HttpDataSetReader/index.js.html | 4 +- .../Core/HttpDataSetSeriesReader/index.html | 2 +- .../HttpDataSetSeriesReader/index.js.html | 2 +- .../IO/Core/HttpSceneLoader/index.html | 2 +- .../IO/Core/HttpSceneLoader/index.js.html | 2 +- .../Core/ImageStream/DefaultProtocol.js.html | 2 +- .../IO/Core/ImageStream/ViewStream.js.html | 2 +- .../Sources/IO/Core/ImageStream/index.html | 2 +- .../Sources/IO/Core/ImageStream/index.js.html | 2 +- .../Sources/IO/Core/ResourceLoader/index.html | 2 +- .../IO/Core/ResourceLoader/index.js.html | 2 +- .../Sources/IO/Core/WSLinkClient/index.html | 2 +- .../IO/Core/WSLinkClient/index.js.html | 2 +- coverage/Sources/IO/Core/index.html | 2 +- coverage/Sources/IO/Core/index.js.html | 2 +- .../IO/Geometry/DracoReader/index.html | 2 +- .../IO/Geometry/DracoReader/index.js.html | 2 +- .../Geometry/GLTFImporter/Animations.js.html | 2 +- .../Geometry/GLTFImporter/Constants.js.html | 2 +- .../IO/Geometry/GLTFImporter/Decoder.js.html | 2 +- .../Geometry/GLTFImporter/Extensions.js.html | 2 +- .../IO/Geometry/GLTFImporter/Parser.js.html | 2 +- .../IO/Geometry/GLTFImporter/Reader.js.html | 2 +- .../IO/Geometry/GLTFImporter/Utils.js.html | 2 +- .../IO/Geometry/GLTFImporter/index.html | 2 +- .../IO/Geometry/GLTFImporter/index.js.html | 2 +- .../Sources/IO/Geometry/PLYReader/index.html | 2 +- .../IO/Geometry/PLYReader/index.js.html | 2 +- .../IO/Geometry/PLYWriter/Constants.js.html | 2 +- .../Sources/IO/Geometry/PLYWriter/index.html | 2 +- .../IO/Geometry/PLYWriter/index.js.html | 2 +- .../Sources/IO/Geometry/STLReader/index.html | 2 +- .../IO/Geometry/STLReader/index.js.html | 2 +- .../IO/Geometry/STLWriter/Constants.js.html | 2 +- .../Sources/IO/Geometry/STLWriter/index.html | 2 +- .../IO/Geometry/STLWriter/index.js.html | 2 +- coverage/Sources/IO/Geometry/index.html | 2 +- coverage/Sources/IO/Geometry/index.js.html | 2 +- .../IO/Legacy/LegacyAsciiParser/index.html | 2 +- .../IO/Legacy/LegacyAsciiParser/index.js.html | 2 +- .../IO/Legacy/PolyDataReader/index.html | 2 +- .../IO/Legacy/PolyDataReader/index.js.html | 2 +- coverage/Sources/IO/Legacy/index.html | 2 +- coverage/Sources/IO/Legacy/index.js.html | 2 +- .../IO/Misc/ElevationReader/index.html | 2 +- .../IO/Misc/ElevationReader/index.js.html | 2 +- .../Sources/IO/Misc/GCodeReader/index.html | 2 +- .../Sources/IO/Misc/GCodeReader/index.js.html | 2 +- .../IO/Misc/HttpDataSetLODsLoader/index.html | 2 +- .../Misc/HttpDataSetLODsLoader/index.js.html | 2 +- .../Sources/IO/Misc/ITKImageReader/index.html | 2 +- .../IO/Misc/ITKImageReader/index.js.html | 2 +- .../IO/Misc/ITKPolyDataReader/index.html | 2 +- .../IO/Misc/ITKPolyDataReader/index.js.html | 2 +- .../IO/Misc/JSONNucleoReader/index.html | 2 +- .../IO/Misc/JSONNucleoReader/index.js.html | 2 +- .../Sources/IO/Misc/JSONReader/index.html | 2 +- .../Sources/IO/Misc/JSONReader/index.js.html | 2 +- coverage/Sources/IO/Misc/MTLReader/index.html | 2 +- .../Sources/IO/Misc/MTLReader/index.js.html | 2 +- coverage/Sources/IO/Misc/OBJReader/index.html | 2 +- .../Sources/IO/Misc/OBJReader/index.js.html | 2 +- coverage/Sources/IO/Misc/PDBReader/index.html | 2 +- .../Sources/IO/Misc/PDBReader/index.js.html | 2 +- .../Sources/IO/Misc/SkyboxReader/index.html | 2 +- .../IO/Misc/SkyboxReader/index.js.html | 2 +- coverage/Sources/IO/Misc/index.html | 2 +- coverage/Sources/IO/Misc/index.js.html | 2 +- .../IO/XML/XMLImageDataReader/index.html | 2 +- .../IO/XML/XMLImageDataReader/index.js.html | 2 +- .../IO/XML/XMLImageDataWriter/index.html | 2 +- .../IO/XML/XMLImageDataWriter/index.js.html | 2 +- .../IO/XML/XMLPolyDataReader/index.html | 2 +- .../IO/XML/XMLPolyDataReader/index.js.html | 2 +- .../IO/XML/XMLPolyDataWriter/index.html | 2 +- .../IO/XML/XMLPolyDataWriter/index.js.html | 2 +- coverage/Sources/IO/XML/XMLReader/index.html | 2 +- .../Sources/IO/XML/XMLReader/index.js.html | 2 +- .../IO/XML/XMLWriter/Constants.js.html | 2 +- coverage/Sources/IO/XML/XMLWriter/index.html | 2 +- .../Sources/IO/XML/XMLWriter/index.js.html | 2 +- coverage/Sources/IO/XML/index.html | 2 +- coverage/Sources/IO/XML/index.js.html | 2 +- coverage/Sources/IO/index.html | 2 +- coverage/Sources/IO/index.js.html | 2 +- .../Constants.js.html | 2 +- .../InterpolationInfo.js.html | 2 +- .../Core/AbstractImageInterpolator/index.html | 2 +- .../AbstractImageInterpolator/index.js.html | 2 +- .../Imaging/Core/ImageInterpolator/index.html | 2 +- .../Core/ImageInterpolator/index.js.html | 2 +- .../Core/ImagePointDataIterator/index.html | 2 +- .../Core/ImagePointDataIterator/index.js.html | 2 +- .../Core/ImageReslice/Constants.js.html | 2 +- .../Imaging/Core/ImageReslice/index.html | 2 +- .../Imaging/Core/ImageReslice/index.js.html | 2 +- coverage/Sources/Imaging/Core/index.html | 2 +- coverage/Sources/Imaging/Core/index.js.html | 2 +- .../Imaging/Hybrid/SampleFunction/index.html | 2 +- .../Hybrid/SampleFunction/index.js.html | 2 +- coverage/Sources/Imaging/Hybrid/index.html | 2 +- coverage/Sources/Imaging/Hybrid/index.js.html | 2 +- coverage/Sources/Imaging/index.html | 2 +- coverage/Sources/Imaging/index.js.html | 2 +- .../TimeStepBasedAnimationHandler/index.html | 2 +- .../index.js.html | 2 +- .../CompositeCameraManipulator/index.html | 2 +- .../CompositeCameraManipulator/index.js.html | 2 +- .../CompositeGestureManipulator/index.html | 2 +- .../CompositeGestureManipulator/index.js.html | 2 +- .../CompositeKeyboardManipulator/index.html | 2 +- .../index.js.html | 2 +- .../CompositeMouseManipulator/index.html | 2 +- .../CompositeMouseManipulator/index.js.html | 2 +- .../CompositeVRManipulator/index.html | 2 +- .../CompositeVRManipulator/index.js.html | 2 +- .../GestureCameraManipulator/index.html | 2 +- .../GestureCameraManipulator/index.js.html | 2 +- .../KeyboardCameraManipulator/index.html | 2 +- .../KeyboardCameraManipulator/index.js.html | 2 +- .../MouseBoxSelectorManipulator/index.html | 2 +- .../MouseBoxSelectorManipulator/index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../MouseCameraSliceManipulator/index.html | 2 +- .../MouseCameraSliceManipulator/index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../MouseCameraUnicamManipulator/index.html | 2 +- .../index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../MouseRangeManipulator/index.html | 2 +- .../MouseRangeManipulator/index.js.html | 2 +- .../VRButtonPanManipulator/index.html | 2 +- .../VRButtonPanManipulator/index.js.html | 2 +- .../Interaction/Manipulators/index.html | 2 +- .../Interaction/Manipulators/index.js.html | 2 +- .../Misc/DeviceOrientationToCamera/index.html | 2 +- .../DeviceOrientationToCamera/index.js.html | 2 +- coverage/Sources/Interaction/Misc/index.html | 2 +- .../Sources/Interaction/Misc/index.js.html | 2 +- .../Style/InteractorStyleImage/index.html | 2 +- .../Style/InteractorStyleImage/index.js.html | 2 +- .../Style/InteractorStyleMPRSlice/index.html | 2 +- .../InteractorStyleMPRSlice/index.js.html | 2 +- .../Presets.js.html | 2 +- .../InteractorStyleManipulator/index.html | 2 +- .../InteractorStyleManipulator/index.js.html | 2 +- .../InteractorStyleRemoteMouse/index.html | 2 +- .../InteractorStyleRemoteMouse/index.js.html | 2 +- .../InteractorStyleTrackballCamera/index.html | 2 +- .../index.js.html | 2 +- coverage/Sources/Interaction/Style/index.html | 2 +- .../Sources/Interaction/Style/index.js.html | 2 +- .../UI/CornerAnnotation/index.html | 2 +- .../UI/CornerAnnotation/index.js.html | 2 +- .../Interaction/UI/FPSMonitor/index.html | 2 +- .../Interaction/UI/FPSMonitor/index.js.html | 2 +- .../Sources/Interaction/UI/Icons/index.html | 2 +- .../Interaction/UI/Icons/index.js.html | 2 +- .../Interaction/UI/Slider/Constants.js.html | 2 +- .../Sources/Interaction/UI/Slider/index.html | 2 +- .../Interaction/UI/Slider/index.js.html | 2 +- .../UI/VolumeController/index.html | 2 +- .../UI/VolumeController/index.js.html | 2 +- coverage/Sources/Interaction/UI/index.html | 2 +- coverage/Sources/Interaction/UI/index.js.html | 2 +- .../OrientationMarkerWidget/Constants.js.html | 2 +- .../OrientationMarkerWidget/index.html | 2 +- .../OrientationMarkerWidget/index.js.html | 2 +- .../PiecewiseGaussianWidget/index.html | 2 +- .../PiecewiseGaussianWidget/index.js.html | 2 +- .../Sources/Interaction/Widgets/index.html | 2 +- .../Sources/Interaction/Widgets/index.js.html | 2 +- coverage/Sources/Interaction/index.html | 2 +- coverage/Sources/Interaction/index.js.html | 2 +- .../AbstractRepresentationProxy/index.html | 2 +- .../AbstractRepresentationProxy/index.js.html | 2 +- .../Core/LookupTableProxy/Constants.js.html | 2 +- .../Proxy/Core/LookupTableProxy/index.html | 2 +- .../Proxy/Core/LookupTableProxy/index.js.html | 2 +- .../PiecewiseFunctionProxy/Constants.js.html | 2 +- .../Core/PiecewiseFunctionProxy/index.html | 2 +- .../Core/PiecewiseFunctionProxy/index.js.html | 2 +- .../Proxy/Core/ProxyManager/core.js.html | 2 +- .../Proxy/Core/ProxyManager/index.html | 2 +- .../Proxy/Core/ProxyManager/index.js.html | 2 +- .../Core/ProxyManager/properties.js.html | 2 +- .../Proxy/Core/ProxyManager/state.js.html | 2 +- .../Proxy/Core/ProxyManager/view.js.html | 2 +- .../Sources/Proxy/Core/SourceProxy/index.html | 2 +- .../Proxy/Core/SourceProxy/index.js.html | 2 +- .../Sources/Proxy/Core/View2DProxy/index.html | 2 +- .../Proxy/Core/View2DProxy/index.js.html | 2 +- .../Sources/Proxy/Core/ViewProxy/index.html | 2 +- .../Proxy/Core/ViewProxy/index.js.html | 2 +- coverage/Sources/Proxy/Core/index.html | 2 +- coverage/Sources/Proxy/Core/index.js.html | 2 +- .../GeometryRepresentationProxy/index.html | 2 +- .../GeometryRepresentationProxy/index.js.html | 2 +- .../GlyphRepresentationProxy/index.html | 2 +- .../GlyphRepresentationProxy/index.js.html | 2 +- .../MoleculeRepresentationProxy/index.html | 2 +- .../MoleculeRepresentationProxy/index.js.html | 2 +- .../SkyboxRepresentationProxy/index.html | 2 +- .../SkyboxRepresentationProxy/index.js.html | 2 +- .../SliceRepresentationProxy/index.html | 2 +- .../SliceRepresentationProxy/index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../VolumeRepresentationProxy/index.html | 2 +- .../VolumeRepresentationProxy/index.js.html | 2 +- .../Sources/Proxy/Representations/index.html | 2 +- .../Proxy/Representations/index.js.html | 2 +- coverage/Sources/Proxy/index.html | 2 +- coverage/Sources/Proxy/index.js.html | 2 +- .../Core/AbstractImageMapper/helper.js.html | 2 +- .../Core/AbstractImageMapper/index.html | 2 +- .../Core/AbstractImageMapper/index.js.html | 2 +- .../Rendering/Core/AbstractMapper/index.html | 2 +- .../Core/AbstractMapper/index.js.html | 2 +- .../Core/AbstractMapper3D/index.html | 2 +- .../Core/AbstractMapper3D/index.js.html | 2 +- .../Rendering/Core/AbstractPicker/index.html | 2 +- .../Core/AbstractPicker/index.js.html | 2 +- .../Sources/Rendering/Core/Actor/index.html | 2 +- .../Rendering/Core/Actor/index.js.html | 2 +- .../Sources/Rendering/Core/Actor2D/index.html | 2 +- .../Rendering/Core/Actor2D/index.js.html | 2 +- .../Core/AnnotatedCubeActor/Presets.js.html | 2 +- .../Core/AnnotatedCubeActor/index.html | 2 +- .../Core/AnnotatedCubeActor/index.js.html | 2 +- .../Rendering/Core/AxesActor/index.html | 2 +- .../Rendering/Core/AxesActor/index.js.html | 2 +- .../Sources/Rendering/Core/Camera/index.html | 2 +- .../Rendering/Core/Camera/index.js.html | 2 +- .../Rendering/Core/CellPicker/index.html | 2 +- .../Rendering/Core/CellPicker/index.js.html | 2 +- .../ColorTransferFunction/ColorMaps.js.html | 2 +- .../ColorMapsLite.js.html | 2 +- .../ColorTransferFunction/Constants.js.html | 2 +- .../ColorTransferFunction/CssFilters.js.html | 2 +- .../Core/ColorTransferFunction/index.html | 2 +- .../Core/ColorTransferFunction/index.js.html | 2 +- .../Core/Coordinate/Constants.js.html | 2 +- .../Rendering/Core/Coordinate/index.html | 2 +- .../Rendering/Core/Coordinate/index.js.html | 2 +- .../Rendering/Core/CubeAxesActor/index.html | 2 +- .../Core/CubeAxesActor/index.js.html | 2 +- .../Rendering/Core/Follower/index.html | 2 +- .../Rendering/Core/Follower/index.js.html | 2 +- .../Core/Glyph3DMapper/Constants.js.html | 2 +- .../Rendering/Core/Glyph3DMapper/index.html | 2 +- .../Core/Glyph3DMapper/index.js.html | 2 +- .../Core/HardwareSelector/index.html | 2 +- .../Core/HardwareSelector/index.js.html | 2 +- .../Core/ImageArrayMapper/index.html | 2 +- .../Core/ImageArrayMapper/index.js.html | 2 +- .../Core/ImageCPRMapper/Constants.js.html | 2 +- .../Rendering/Core/ImageCPRMapper/index.html | 2 +- .../Core/ImageMapper/Constants.js.html | 2 +- .../Rendering/Core/ImageMapper/index.html | 2 +- .../Rendering/Core/ImageMapper/index.js.html | 2 +- .../Core/ImageProperty/Constants.js.html | 2 +- .../Rendering/Core/ImageProperty/index.html | 2 +- .../Core/ImageProperty/index.js.html | 2 +- .../Core/ImageResliceMapper/Constants.js.html | 2 +- .../Core/ImageResliceMapper/index.html | 2 +- .../Core/ImageResliceMapper/index.js.html | 2 +- .../Rendering/Core/ImageSlice/index.html | 2 +- .../Rendering/Core/ImageSlice/index.js.html | 2 +- .../Core/InteractorObserver/index.html | 2 +- .../Core/InteractorObserver/index.js.html | 2 +- .../Core/InteractorStyle/Constants.js.html | 2 +- .../Rendering/Core/InteractorStyle/index.html | 2 +- .../Core/InteractorStyle/index.js.html | 2 +- .../Sources/Rendering/Core/Light/index.html | 2 +- .../Rendering/Core/Light/index.js.html | 2 +- .../Mapper/CoincidentTopologyHelper.js.html | 2 +- .../Rendering/Core/Mapper/Constants.js.html | 2 +- .../Rendering/Core/Mapper/Static.js.html | 2 +- .../Sources/Rendering/Core/Mapper/index.html | 2 +- .../Rendering/Core/Mapper/index.js.html | 32 +- .../Rendering/Core/Mapper2D/index.html | 2 +- .../Rendering/Core/Mapper2D/index.js.html | 2 +- .../Sources/Rendering/Core/Picker/index.html | 2 +- .../Rendering/Core/Picker/index.js.html | 2 +- .../Core/PixelSpaceCallbackMapper/index.html | 2 +- .../PixelSpaceCallbackMapper/index.js.html | 2 +- .../Rendering/Core/PointPicker/index.html | 2 +- .../Rendering/Core/PointPicker/index.js.html | 2 +- .../Rendering/Core/Prop/Constants.js.html | 2 +- .../Sources/Rendering/Core/Prop/index.html | 2 +- .../Sources/Rendering/Core/Prop/index.js.html | 2 +- .../Sources/Rendering/Core/Prop3D/index.html | 2 +- .../Rendering/Core/Prop3D/index.js.html | 2 +- .../Rendering/Core/Property/Constants.js.html | 2 +- .../Rendering/Core/Property/index.html | 2 +- .../Rendering/Core/Property/index.js.html | 2 +- .../Core/Property2D/Constants.js.html | 2 +- .../Rendering/Core/Property2D/index.html | 2 +- .../Rendering/Core/Property2D/index.js.html | 2 +- .../Rendering/Core/RenderWindow/index.html | 2 +- .../Rendering/Core/RenderWindow/index.js.html | 2 +- .../RenderWindowInteractor/Constants.js.html | 2 +- .../Core/RenderWindowInteractor/index.html | 38 +- .../Core/RenderWindowInteractor/index.js.html | 206 +- .../Rendering/Core/Renderer/index.html | 2 +- .../Rendering/Core/Renderer/index.js.html | 2 +- .../Rendering/Core/ScalarBarActor/index.html | 2 +- .../Core/ScalarBarActor/index.js.html | 2 +- .../Sources/Rendering/Core/Skybox/index.html | 2 +- .../Rendering/Core/Skybox/index.js.html | 2 +- .../Rendering/Core/SphereMapper/index.html | 2 +- .../Rendering/Core/SphereMapper/index.js.html | 2 +- .../Rendering/Core/StickMapper/index.html | 2 +- .../Rendering/Core/StickMapper/index.js.html | 2 +- .../SurfaceLICInterface/Constants.js.html | 2 +- .../Core/SurfaceLICInterface/index.html | 2 +- .../Core/SurfaceLICInterface/index.js.html | 2 +- .../Sources/Rendering/Core/Texture/index.html | 2 +- .../Rendering/Core/Texture/index.js.html | 2 +- .../Rendering/Core/Viewport/index.html | 2 +- .../Rendering/Core/Viewport/index.js.html | 2 +- .../Sources/Rendering/Core/Volume/index.html | 2 +- .../Rendering/Core/Volume/index.js.html | 2 +- .../Core/VolumeMapper/Constants.js.html | 2 +- .../Rendering/Core/VolumeMapper/index.html | 2 +- .../Rendering/Core/VolumeMapper/index.js.html | 2 +- .../Core/VolumeProperty/Constants.js.html | 2 +- .../Rendering/Core/VolumeProperty/index.html | 2 +- .../Core/VolumeProperty/index.js.html | 2 +- coverage/Sources/Rendering/Core/index.html | 2 +- coverage/Sources/Rendering/Core/index.js.html | 2 +- .../Rendering/Misc/CanvasView/index.html | 2 +- .../Rendering/Misc/CanvasView/index.js.html | 2 +- .../Misc/FullScreenRenderWindow/index.html | 2 +- .../Misc/FullScreenRenderWindow/index.js.html | 2 +- .../Misc/GenericRenderWindow/index.html | 2 +- .../Misc/GenericRenderWindow/index.js.html | 2 +- .../Rendering/Misc/RemoteView/index.html | 2 +- .../Rendering/Misc/RemoteView/index.js.html | 2 +- .../RenderWindowWithControlBar/index.html | 2 +- .../RenderWindowWithControlBar/index.js.html | 2 +- .../Rendering/Misc/RenderingAPIs/index.html | 2 +- .../Misc/RenderingAPIs/index.js.html | 2 +- .../CameraSynchronizer.js.html | 2 +- .../BehaviorManager/index.html | 2 +- .../BehaviorManager/index.js.html | 2 +- .../ObjectManager/index.html | 2 +- .../ObjectManager/index.js.html | 2 +- .../SynchronizableRenderWindow/index.html | 2 +- .../SynchronizableRenderWindow/index.js.html | 2 +- .../Misc/TextureLODsDownloader/index.html | 2 +- .../Misc/TextureLODsDownloader/index.js.html | 2 +- coverage/Sources/Rendering/Misc/index.html | 2 +- coverage/Sources/Rendering/Misc/index.js.html | 2 +- .../Sources/Rendering/OpenGL/Actor/index.html | 2 +- .../Rendering/OpenGL/Actor/index.js.html | 2 +- .../Rendering/OpenGL/Actor2D/index.html | 2 +- .../Rendering/OpenGL/Actor2D/index.js.html | 2 +- .../OpenGL/BufferObject/Constants.js.html | 2 +- .../Rendering/OpenGL/BufferObject/index.html | 2 +- .../OpenGL/BufferObject/index.js.html | 16 +- .../Rendering/OpenGL/Camera/index.html | 2 +- .../Rendering/OpenGL/Camera/index.js.html | 2 +- .../OpenGL/CellArrayBufferObject/index.html | 2 +- .../CellArrayBufferObject/index.js.html | 2 +- .../OpenGL/Convolution2DPass/index.html | 2 +- .../OpenGL/Convolution2DPass/index.js.html | 2 +- .../Rendering/OpenGL/CubeAxesActor/index.html | 2 +- .../OpenGL/CubeAxesActor/index.js.html | 2 +- .../Rendering/OpenGL/ForwardPass/index.html | 2 +- .../OpenGL/ForwardPass/index.js.html | 2 +- .../Rendering/OpenGL/Framebuffer/index.html | 2 +- .../OpenGL/Framebuffer/index.js.html | 2 +- .../Rendering/OpenGL/Glyph3DMapper/index.html | 2 +- .../OpenGL/Glyph3DMapper/index.js.html | 2 +- .../OpenGL/HardwareSelector/Constants.js.html | 2 +- .../OpenGL/HardwareSelector/index.html | 2 +- .../OpenGL/HardwareSelector/index.js.html | 94 +- .../Rendering/OpenGL/Helper/index.html | 2 +- .../Rendering/OpenGL/Helper/index.js.html | 2 +- .../OpenGL/ImageCPRMapper/index.html | 2 +- .../OpenGL/ImageCPRMapper/index.js.html | 2 +- .../Rendering/OpenGL/ImageMapper/index.html | 10 +- .../OpenGL/ImageMapper/index.js.html | 8 +- .../OpenGL/ImageResliceMapper/index.html | 2 +- .../OpenGL/ImageResliceMapper/index.js.html | 2 +- .../Rendering/OpenGL/ImageSlice/index.html | 2 +- .../Rendering/OpenGL/ImageSlice/index.js.html | 2 +- .../index.html | 10 +- .../index.js.html | 8 +- .../PixelSpaceCallbackMapper/index.html | 2 +- .../PixelSpaceCallbackMapper/index.js.html | 2 +- .../OpenGL/PolyDataMapper/index.html | 2 +- .../OpenGL/PolyDataMapper/index.js.html | 18 +- .../OpenGL/PolyDataMapper2D/index.html | 2 +- .../OpenGL/PolyDataMapper2D/index.js.html | 2 +- .../Rendering/OpenGL/Profiles/All.js.html | 2 +- .../OpenGL/Profiles/Geometry.js.html | 2 +- .../Rendering/OpenGL/Profiles/Volume.js.html | 2 +- .../Rendering/OpenGL/Profiles/index.html | 2 +- .../OpenGL/RenderWindow/ContextProxy.js.html | 24 +- .../Rendering/OpenGL/RenderWindow/index.html | 30 +- .../OpenGL/RenderWindow/index.js.html | 74 +- .../resourceSharingHelper.js.html | 2 +- .../Rendering/OpenGL/Renderer/index.html | 2 +- .../Rendering/OpenGL/Renderer/index.js.html | 2 +- .../OpenGL/ReplacementShaderMapper/index.html | 2 +- .../ReplacementShaderMapper/index.js.html | 2 +- .../OpenGL/ScalarBarActor/index.html | 2 +- .../OpenGL/ScalarBarActor/index.js.html | 2 +- .../Rendering/OpenGL/Shader/index.html | 2 +- .../Rendering/OpenGL/Shader/index.js.html | 2 +- .../Rendering/OpenGL/ShaderCache/index.html | 2 +- .../OpenGL/ShaderCache/index.js.html | 2 +- .../Rendering/OpenGL/ShaderProgram/index.html | 2 +- .../OpenGL/ShaderProgram/index.js.html | 78 +- .../Rendering/OpenGL/Skybox/index.html | 2 +- .../Rendering/OpenGL/Skybox/index.js.html | 2 +- .../Rendering/OpenGL/SphereMapper/index.html | 2 +- .../OpenGL/SphereMapper/index.js.html | 2 +- .../Rendering/OpenGL/StickMapper/index.html | 2 +- .../OpenGL/StickMapper/index.js.html | 2 +- .../LineIntegralConvolution2D/index.html | 2 +- .../LineIntegralConvolution2D/index.js.html | 2 +- .../pingpong.js.html | 2 +- .../SurfaceLIC/SurfaceLICInterface/index.html | 2 +- .../SurfaceLICInterface/index.js.html | 2 +- .../SurfaceLIC/SurfaceLICMapper/index.html | 2 +- .../SurfaceLIC/SurfaceLICMapper/index.js.html | 2 +- .../OpenGL/Texture/Constants.js.html | 2 +- .../Rendering/OpenGL/Texture/index.html | 38 +- .../Rendering/OpenGL/Texture/index.js.html | 174 +- .../OpenGL/TextureUnitManager/index.html | 2 +- .../OpenGL/TextureUnitManager/index.js.html | 2 +- .../OpenGL/VertexArrayObject/index.html | 2 +- .../OpenGL/VertexArrayObject/index.js.html | 54 +- .../OpenGL/ViewNodeFactory/index.html | 2 +- .../OpenGL/ViewNodeFactory/index.js.html | 2 +- .../Rendering/OpenGL/Volume/index.html | 2 +- .../Rendering/OpenGL/Volume/index.js.html | 2 +- .../Rendering/OpenGL/VolumeMapper/index.html | 2 +- .../OpenGL/VolumeMapper/index.js.html | 2 +- coverage/Sources/Rendering/OpenGL/index.html | 2 +- .../Sources/Rendering/OpenGL/index.js.html | 2 +- .../Sources/Rendering/Profiles/All.js.html | 2 +- .../Rendering/Profiles/Geometry.js.html | 2 +- .../Sources/Rendering/Profiles/Volume.js.html | 2 +- .../Sources/Rendering/Profiles/index.html | 2 +- .../SceneGraph/RenderPass/index.html | 2 +- .../SceneGraph/RenderPass/index.js.html | 2 +- .../RenderWindowViewNode/index.html | 30 +- .../RenderWindowViewNode/index.js.html | 26 +- .../Rendering/SceneGraph/ViewNode/index.html | 2 +- .../SceneGraph/ViewNode/index.js.html | 2 +- .../SceneGraph/ViewNodeFactory/index.html | 2 +- .../SceneGraph/ViewNodeFactory/index.js.html | 2 +- .../Sources/Rendering/SceneGraph/index.html | 2 +- .../Rendering/SceneGraph/index.js.html | 2 +- .../Sources/Rendering/WebGPU/Actor/index.html | 2 +- .../Rendering/WebGPU/Actor/index.js.html | 2 +- .../Rendering/WebGPU/Actor2D/index.html | 2 +- .../Rendering/WebGPU/Actor2D/index.js.html | 2 +- .../Rendering/WebGPU/BindGroup/index.html | 2 +- .../Rendering/WebGPU/BindGroup/index.js.html | 2 +- .../Rendering/WebGPU/Buffer/index.html | 2 +- .../Rendering/WebGPU/Buffer/index.js.html | 2 +- .../WebGPU/BufferManager/Constants.js.html | 2 +- .../Rendering/WebGPU/BufferManager/index.html | 2 +- .../WebGPU/BufferManager/index.js.html | 2 +- .../Rendering/WebGPU/Camera/index.html | 2 +- .../Rendering/WebGPU/Camera/index.js.html | 2 +- .../WebGPU/CellArrayMapper/index.html | 2 +- .../WebGPU/CellArrayMapper/index.js.html | 2 +- .../Rendering/WebGPU/CubeAxesActor/index.html | 2 +- .../WebGPU/CubeAxesActor/index.js.html | 2 +- .../Rendering/WebGPU/Device/index.html | 2 +- .../Rendering/WebGPU/Device/index.js.html | 2 +- .../Rendering/WebGPU/ForwardPass/index.html | 2 +- .../WebGPU/ForwardPass/index.js.html | 2 +- .../WebGPU/FullScreenQuad/index.html | 2 +- .../WebGPU/FullScreenQuad/index.js.html | 2 +- .../Rendering/WebGPU/Glyph3DMapper/index.html | 2 +- .../WebGPU/Glyph3DMapper/index.js.html | 2 +- .../WebGPU/HardwareSelectionPass/index.html | 2 +- .../HardwareSelectionPass/index.js.html | 2 +- .../WebGPU/HardwareSelector/index.html | 2 +- .../WebGPU/HardwareSelector/index.js.html | 2 +- .../Rendering/WebGPU/ImageMapper/index.html | 2 +- .../WebGPU/ImageMapper/index.js.html | 2 +- .../Rendering/WebGPU/ImageSlice/index.html | 2 +- .../Rendering/WebGPU/ImageSlice/index.js.html | 2 +- .../Rendering/WebGPU/IndexBuffer/index.html | 2 +- .../WebGPU/IndexBuffer/index.js.html | 2 +- .../Rendering/WebGPU/OpaquePass/index.html | 2 +- .../Rendering/WebGPU/OpaquePass/index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../Rendering/WebGPU/Pipeline/index.html | 2 +- .../Rendering/WebGPU/Pipeline/index.js.html | 2 +- .../PixelSpaceCallbackMapper/index.html | 2 +- .../PixelSpaceCallbackMapper/index.js.html | 2 +- .../WebGPU/PolyDataMapper/index.html | 2 +- .../WebGPU/PolyDataMapper/index.js.html | 2 +- .../WebGPU/PolyDataMapper2D/index.html | 2 +- .../WebGPU/PolyDataMapper2D/index.js.html | 2 +- .../Rendering/WebGPU/Profiles/All.js.html | 2 +- .../WebGPU/Profiles/Geometry.js.html | 2 +- .../Rendering/WebGPU/Profiles/Volume.js.html | 2 +- .../Rendering/WebGPU/Profiles/index.html | 2 +- .../Rendering/WebGPU/RenderEncoder/index.html | 2 +- .../WebGPU/RenderEncoder/index.js.html | 2 +- .../Rendering/WebGPU/RenderWindow/index.html | 2 +- .../WebGPU/RenderWindow/index.js.html | 2 +- .../Rendering/WebGPU/Renderer/index.html | 2 +- .../Rendering/WebGPU/Renderer/index.js.html | 2 +- .../Rendering/WebGPU/Sampler/index.html | 2 +- .../Rendering/WebGPU/Sampler/index.js.html | 2 +- .../WebGPU/ScalarBarActor/index.html | 2 +- .../WebGPU/ScalarBarActor/index.js.html | 2 +- .../Rendering/WebGPU/ShaderCache/index.html | 2 +- .../WebGPU/ShaderCache/index.js.html | 2 +- .../WebGPU/ShaderDescription/index.html | 2 +- .../WebGPU/ShaderDescription/index.js.html | 2 +- .../Rendering/WebGPU/ShaderModule/index.html | 2 +- .../WebGPU/ShaderModule/index.js.html | 2 +- .../Rendering/WebGPU/SimpleMapper/index.html | 2 +- .../WebGPU/SimpleMapper/index.js.html | 2 +- .../Rendering/WebGPU/SphereMapper/index.html | 2 +- .../WebGPU/SphereMapper/index.js.html | 2 +- .../Rendering/WebGPU/StickMapper/index.html | 2 +- .../WebGPU/StickMapper/index.js.html | 2 +- .../Rendering/WebGPU/StorageBuffer/index.html | 2 +- .../WebGPU/StorageBuffer/index.js.html | 2 +- .../Rendering/WebGPU/Texture/index.html | 2 +- .../Rendering/WebGPU/Texture/index.js.html | 2 +- .../WebGPU/TextureManager/index.html | 2 +- .../WebGPU/TextureManager/index.js.html | 2 +- .../Rendering/WebGPU/TextureView/index.html | 2 +- .../WebGPU/TextureView/index.js.html | 2 +- .../Sources/Rendering/WebGPU/Types/index.html | 2 +- .../Rendering/WebGPU/Types/index.js.html | 2 +- .../Rendering/WebGPU/UniformBuffer/index.html | 2 +- .../WebGPU/UniformBuffer/index.js.html | 2 +- .../Rendering/WebGPU/VertexInput/index.html | 2 +- .../WebGPU/VertexInput/index.js.html | 2 +- .../WebGPU/ViewNodeFactory/index.html | 2 +- .../WebGPU/ViewNodeFactory/index.js.html | 2 +- .../Rendering/WebGPU/Volume/index.html | 2 +- .../Rendering/WebGPU/Volume/index.js.html | 2 +- .../Rendering/WebGPU/VolumePass/index.html | 2 +- .../Rendering/WebGPU/VolumePass/index.js.html | 2 +- .../Rendering/WebGPU/VolumePassFSQ/index.html | 2 +- .../WebGPU/VolumePassFSQ/index.js.html | 2 +- coverage/Sources/Rendering/WebGPU/index.html | 2 +- .../Sources/Rendering/WebGPU/index.js.html | 2 +- .../RenderWindowHelper/Constants.js.html | 2 +- .../WebXR/RenderWindowHelper/index.html | 2 +- .../WebXR/RenderWindowHelper/index.js.html | 2 +- coverage/Sources/Rendering/WebXR/index.html | 2 +- .../Sources/Rendering/WebXR/index.js.html | 2 +- coverage/Sources/Rendering/index.html | 2 +- coverage/Sources/Rendering/index.js.html | 2 +- coverage/Sources/Testing/index.html | 2 +- coverage/Sources/Testing/index.js.html | 2 +- coverage/Sources/Testing/setupTestEnv.js.html | 10 +- .../Sources/Testing/testAlgorithm.js.html | 2 +- coverage/Sources/Testing/testIf.js.html | 2 +- coverage/Sources/Testing/testMacro.js.html | 2 +- coverage/Sources/Testing/testProxy.js.html | 2 +- .../Sources/Testing/testSerialization.js.html | 2 +- coverage/Sources/Testing/testUtils.js.html | 14 +- .../Core/AbstractWidget/Constants.js.html | 2 +- .../Widgets/Core/AbstractWidget/index.html | 2 +- .../Widgets/Core/AbstractWidget/index.js.html | 2 +- .../Core/AbstractWidgetFactory/index.html | 2 +- .../Core/AbstractWidgetFactory/index.js.html | 2 +- .../Core/StateBuilder/boundsMixin.js.html | 2 +- .../Core/StateBuilder/color3Mixin.js.html | 2 +- .../Core/StateBuilder/colorMixin.js.html | 2 +- .../Core/StateBuilder/cornerMixin.js.html | 2 +- .../Core/StateBuilder/directionMixin.js.html | 2 +- .../Widgets/Core/StateBuilder/index.html | 2 +- .../Widgets/Core/StateBuilder/index.js.html | 2 +- .../StateBuilder/manipulatorMixin.js.html | 2 +- .../Core/StateBuilder/nameMixin.js.html | 2 +- .../StateBuilder/orientationMixin.js.html | 2 +- .../Core/StateBuilder/originMixin.js.html | 2 +- .../Core/StateBuilder/scale1Mixin.js.html | 2 +- .../Core/StateBuilder/scale3Mixin.js.html | 2 +- .../Core/StateBuilder/shapeMixin.js.html | 2 +- .../Core/StateBuilder/textMixin.js.html | 2 +- .../Core/StateBuilder/visibleMixin.js.html | 2 +- .../Core/WidgetManager/Constants.js.html | 2 +- .../Widgets/Core/WidgetManager/index.html | 2 +- .../Widgets/Core/WidgetManager/index.js.html | 2 +- .../Widgets/Core/WidgetState/index.html | 2 +- .../Widgets/Core/WidgetState/index.js.html | 2 +- coverage/Sources/Widgets/Core/index.html | 2 +- coverage/Sources/Widgets/Core/index.js.html | 2 +- .../AbstractManipulator/index.html | 2 +- .../AbstractManipulator/index.js.html | 2 +- .../Manipulators/LineManipulator/index.html | 2 +- .../LineManipulator/index.js.html | 2 +- .../Manipulators/PickerManipulator/index.html | 2 +- .../PickerManipulator/index.js.html | 2 +- .../Manipulators/PlaneManipulator/index.html | 2 +- .../PlaneManipulator/index.js.html | 2 +- .../TrackballManipulator/index.html | 2 +- .../TrackballManipulator/index.js.html | 2 +- .../Sources/Widgets/Manipulators/index.html | 2 +- .../Widgets/Manipulators/index.js.html | 2 +- .../ArrowHandleRepresentation/index.html | 2 +- .../ArrowHandleRepresentation/index.js.html | 2 +- .../CircleContextRepresentation/index.html | 2 +- .../CircleContextRepresentation/index.js.html | 2 +- .../ContextRepresentation/index.html | 2 +- .../ContextRepresentation/index.js.html | 2 +- .../index.html | 2 +- .../index.js.html | 2 +- .../CroppingOutlineRepresentation/index.html | 2 +- .../index.js.html | 2 +- .../CubeHandleRepresentation/index.html | 2 +- .../CubeHandleRepresentation/index.js.html | 2 +- .../GlyphRepresentation/index.html | 2 +- .../GlyphRepresentation/index.js.html | 2 +- .../HandleRepresentation/index.html | 2 +- .../HandleRepresentation/index.js.html | 2 +- .../ImplicitPlaneRepresentation/index.html | 2 +- .../ImplicitPlaneRepresentation/index.js.html | 2 +- .../LineHandleRepresentation/index.html | 2 +- .../LineHandleRepresentation/index.js.html | 2 +- .../OutlineContextRepresentation/index.html | 2 +- .../index.js.html | 2 +- .../PolyLineRepresentation/index.html | 2 +- .../PolyLineRepresentation/index.js.html | 2 +- .../RectangleContextRepresentation/index.html | 2 +- .../index.js.html | 2 +- .../SphereContextRepresentation/index.html | 2 +- .../SphereContextRepresentation/index.js.html | 2 +- .../SphereHandleRepresentation/index.html | 2 +- .../SphereHandleRepresentation/index.js.html | 2 +- .../SplineContextRepresentation/index.html | 2 +- .../SplineContextRepresentation/index.js.html | 2 +- .../WidgetRepresentation/Constants.js.html | 2 +- .../WidgetRepresentation/index.html | 2 +- .../WidgetRepresentation/index.js.html | 2 +- .../Widgets/Representations/index.html | 2 +- .../Widgets/Representations/index.js.html | 2 +- .../Widgets3D/AngleWidget/behavior.js.html | 2 +- .../Widgets/Widgets3D/AngleWidget/index.html | 2 +- .../Widgets3D/AngleWidget/index.js.html | 2 +- .../Widgets3D/AngleWidget/state.js.html | 2 +- .../Widgets3D/EllipseWidget/behavior.js.html | 2 +- .../Widgets3D/EllipseWidget/index.html | 2 +- .../Widgets3D/EllipseWidget/index.js.html | 2 +- .../Widgets3D/EllipseWidget/state.js.html | 2 +- .../ImageCroppingWidget/behavior.js.html | 2 +- .../ImageCroppingWidget/helpers.js.html | 2 +- .../Widgets3D/ImageCroppingWidget/index.html | 2 +- .../ImageCroppingWidget/index.js.html | 2 +- .../ImageCroppingWidget/state.js.html | 2 +- .../Widgets3D/ImplicitPlaneWidget/index.html | 2 +- .../ImplicitPlaneWidget/index.js.html | 2 +- .../behavior.js.html | 2 +- .../InteractiveOrientationWidget/index.html | 2 +- .../index.js.html | 2 +- .../state.js.html | 2 +- .../Widgets3D/LabelWidget/behavior.js.html | 2 +- .../Widgets/Widgets3D/LabelWidget/index.html | 2 +- .../Widgets3D/LabelWidget/index.js.html | 2 +- .../Widgets3D/LabelWidget/state.js.html | 2 +- .../Widgets3D/LineWidget/Constants.js.html | 2 +- .../Widgets3D/LineWidget/behavior.js.html | 2 +- .../Widgets3D/LineWidget/helpers.js.html | 2 +- .../Widgets/Widgets3D/LineWidget/index.html | 2 +- .../Widgets3D/LineWidget/index.js.html | 2 +- .../Widgets3D/LineWidget/state.js.html | 2 +- .../Widgets3D/PaintWidget/behavior.js.html | 2 +- .../Widgets/Widgets3D/PaintWidget/index.html | 2 +- .../Widgets3D/PaintWidget/index.js.html | 2 +- .../Widgets3D/PaintWidget/state.js.html | 2 +- .../Widgets3D/PolyLineWidget/behavior.js.html | 2 +- .../Widgets3D/PolyLineWidget/index.html | 2 +- .../Widgets3D/PolyLineWidget/index.js.html | 2 +- .../Widgets3D/PolyLineWidget/state.js.html | 2 +- .../RectangleWidget/behavior.js.html | 2 +- .../Widgets3D/RectangleWidget/index.html | 2 +- .../Widgets3D/RectangleWidget/index.js.html | 2 +- .../Widgets3D/RectangleWidget/state.js.html | 2 +- .../ResliceCursorWidget/Constants.js.html | 2 +- .../ResliceCursorWidget/behavior.js.html | 2 +- .../ResliceCursorWidget/helpers.js.html | 2 +- .../Widgets3D/ResliceCursorWidget/index.html | 2 +- .../ResliceCursorWidget/index.js.html | 2 +- .../ResliceCursorWidget/state.js.html | 2 +- .../Widgets3D/ShapeWidget/Constants.js.html | 2 +- .../Widgets3D/ShapeWidget/behavior.js.html | 2 +- .../Widgets/Widgets3D/ShapeWidget/index.html | 2 +- .../Widgets3D/ShapeWidget/index.js.html | 2 +- .../Widgets3D/SphereWidget/behavior.js.html | 2 +- .../Widgets/Widgets3D/SphereWidget/index.html | 2 +- .../Widgets3D/SphereWidget/index.js.html | 2 +- .../Widgets3D/SphereWidget/state.js.html | 2 +- .../Widgets3D/SplineWidget/behavior.js.html | 2 +- .../Widgets/Widgets3D/SplineWidget/index.html | 2 +- .../Widgets3D/SplineWidget/index.js.html | 2 +- .../Widgets3D/SplineWidget/state.js.html | 2 +- coverage/Sources/Widgets/Widgets3D/index.html | 2 +- .../Sources/Widgets/Widgets3D/index.js.html | 2 +- coverage/Sources/Widgets/index.html | 2 +- coverage/Sources/Widgets/index.js.html | 2 +- coverage/Sources/index.html | 2 +- coverage/Sources/macros.js.html | 34 +- coverage/Sources/vtk.js.html | 2 +- coverage/home.html | 6 +- coverage/index.html | 102 +- docs/concepts_widgets.html | 6 +- docs/develop_build.html | 6 +- docs/develop_class.html | 6 +- docs/develop_example.html | 6 +- docs/develop_requirement.html | 6 +- docs/develop_test.html | 6 +- docs/develop_webgpu.html | 6 +- docs/develop_webxr.html | 6 +- docs/develop_widget.html | 6 +- docs/index.html | 6 +- docs/intro_vtk_as_es6_dependency.html | 6 +- docs/intro_vtk_as_external_script.html | 6 +- docs/misc_contributing.html | 6 +- docs/misc_tools.html | 6 +- docs/misc_troubleshooting.html | 6 +- docs/old_intro_vtk_es6.html | 6 +- docs/structures.html | 6 +- docs/structures_DataArray.html | 6 +- docs/structures_MultiBlock.html | 6 +- docs/structures_ParametricDataset.html | 6 +- docs/structures_PolyData.html | 6 +- docs/structures_StringArray.html | 6 +- docs/structures_Table.html | 6 +- docs/structures_UnstructuredGrid.html | 6 +- docs/tutorial.html | 6 +- docs/vtk-js-demo.html | 6 +- docs/vtk_react.html | 6 +- docs/vtk_vanilla.html | 6 +- docs/vtk_vue.html | 6 +- examples/AR.html | 6 +- examples/Actor2D.html | 6 +- examples/ActorSerialization.html | 6 +- examples/AngleWidget.html | 6 +- examples/AnimationProxyManager.html | 6 +- examples/ArrowSource.html | 6 +- examples/AxesActor.html | 6 +- examples/Box.html | 6 +- examples/Calculator.html | 6 +- examples/CellPicker.html | 6 +- examples/CircleSource.html | 6 +- examples/ClipClosedSurface.html | 6 +- examples/ConcentricCylinderSource.html | 6 +- examples/Cone.html | 6 +- examples/ConeSource.html | 6 +- examples/ContourLoopExtraction.html | 6 +- examples/ContourTriangulator.html | 6 +- examples/Convolution2DPass.html | 6 +- examples/CubeAxes.html | 6 +- examples/CubeSource.html | 6 +- examples/Cursor3D.html | 6 +- examples/CustomWebGPUCone.html | 6 +- examples/Cutter.html | 6 +- examples/CylinderSource.html | 6 +- examples/DepthTest.html | 6 +- examples/DeviceOrientationToCamera.html | 6 +- examples/DracoReader.html | 6 +- examples/ElevationReader.html | 6 +- examples/GCodeReader.html | 6 +- examples/GLTFImporter.html | 8 +- examples/GLTFImporter/GLTFImporter.html | 2 +- examples/GLTFImporter/GLTFImporter.js | 2 +- examples/GeometryViewer.html | 6 +- examples/Glyph3DMapper.html | 6 +- examples/GlyphRotation.html | 6 +- examples/HDRReader.html | 6 +- examples/HardwareSelector.html | 6 +- examples/HttpDataSetReader.html | 6 +- examples/HttpDataSetSeriesReader.html | 6 +- examples/HttpSceneLoader.html | 6 +- examples/ImageCPRMapper.html | 6 +- examples/ImageCropFilter.html | 6 +- examples/ImageCroppingWidget.html | 6 +- examples/ImageLabelOutline.html | 6 +- examples/ImageMapper.html | 6 +- examples/ImageMarchingCubes.html | 6 +- examples/ImageMarchingSquares.html | 6 +- examples/ImageOutlineFilter.html | 6 +- examples/ImageResliceMapper.html | 6 +- examples/ImageStream.html | 6 +- examples/ImageStreamline.html | 6 +- examples/ImageViewer.html | 6 +- examples/ImplicitBoolean.html | 6 +- examples/ImplicitPlaneRepresentation.html | 6 +- examples/ImplicitPlaneWidget.html | 6 +- examples/InteractiveOrientationWidget.html | 6 +- examples/InteractorStyleHMDXR.html | 6 +- examples/InteractorStyleMPRSlice.html | 6 +- examples/InteractorStyleManipulator.html | 6 +- examples/InteractorStyleTrackballCamera.html | 6 +- examples/InteractorStyleUnicam.html | 6 +- examples/ItkWasmGeometry.html | 6 +- examples/ItkWasmVolume.html | 6 +- examples/JSONNucleoReader.html | 6 +- examples/KeyboardCameraManipulator.html | 6 +- examples/LabelWidget.html | 6 +- examples/LabelmapEdgeProjection.html | 6 +- examples/LineSource.html | 6 +- examples/LineWidget.html | 6 +- examples/LookingGlass.html | 6 +- examples/ManyRenderWindows.html | 6 +- examples/ManyRenderers.html | 6 +- examples/MouseBoxSelectorManipulator.html | 6 +- ...CameraTrackballFirstPersonManipulator.html | 6 +- examples/MouseRangeManipulator.html | 6 +- examples/MultiSliceImageMapper.html | 6 +- examples/OBBTree.html | 6 +- examples/OBJReader.html | 6 +- examples/OBJViewer.html | 6 +- examples/OctreeViewer.html | 6 +- examples/OfflineLocalView.html | 6 +- examples/OrientationMarkerWidget.html | 6 +- examples/OutlineFilter.html | 6 +- examples/PBR.html | 6 +- examples/PDBReader.html | 6 +- examples/PLYReader.html | 6 +- examples/PLYWriter.html | 6 +- examples/PaintWidget.html | 6 +- examples/Picking.html | 6 +- examples/PiecewiseGaussianWidget.html | 6 +- examples/PipelineExecution.html | 6 +- examples/PlaneSource.html | 6 +- examples/PointPicker.html | 6 +- examples/PointSource.html | 6 +- examples/PolyDataNormals.html | 6 +- examples/PolyDataReader.html | 6 +- examples/PolyDataSerialization.html | 6 +- examples/PolyLineWidget.html | 6 +- examples/ProxyManager.html | 6 +- examples/QuadView.html | 6 +- examples/RemoteView.html | 6 +- examples/RenderWindowWithControlBar.html | 6 +- examples/ResliceCursorWidget.html | 6 +- examples/ResliceRepresentationProxy.html | 6 +- examples/SLICSource.html | 6 +- examples/STLReader.html | 6 +- examples/STLWriter.html | 6 +- examples/ScalarBarActor.html | 6 +- examples/ScalarToRGBA.html | 6 +- examples/SceneExplorer.html | 6 +- examples/Scrolling2DMixedImages.html | 6 +- examples/SeedWidget.html | 6 +- examples/ShapeWidget.html | 6 +- examples/SimpleCone.html | 6 +- examples/SkyboxViewer.html | 6 +- examples/SphereArray.html | 6 +- examples/SphereMapper.html | 6 +- examples/SphereSource.html | 6 +- examples/SphereWidget.html | 6 +- examples/SpheresAndLabels.html | 6 +- examples/SplineWidget.html | 6 +- examples/StandaloneSceneLoader.html | 6 +- examples/StickMapper.html | 6 +- examples/SurfaceLICMapper.html | 6 +- examples/SynchronizableRenderWindow.html | 6 +- examples/TGAReader.html | 6 +- examples/TestVolumeTypes.html | 6 +- examples/Texture.html | 6 +- examples/TimeSeries.html | 6 +- examples/TimeStepBasedAnimationHandler.html | 6 +- examples/TriangleFilter.html | 6 +- examples/TubeFilter.html | 6 +- examples/TubesViewer.html | 6 +- examples/VR.html | 6 +- examples/View2DProxy.html | 6 +- examples/VolumeClipPlane.html | 6 +- examples/VolumeContour.html | 6 +- examples/VolumeMapper.html | 6 +- examples/VolumeMapperBlendModes.html | 6 +- examples/VolumeMapperLightAndShadow.html | 6 +- examples/VolumeMapperParallelProjection.html | 6 +- examples/VolumeOutline.html | 6 +- examples/VolumePicker.html | 6 +- examples/VolumeRenderingWithPolyData.html | 6 +- examples/VolumeViewer.html | 6 +- examples/WarpScalar.html | 6 +- examples/WebXRChestCTBlendedCVR.html | 6 +- examples/WebXRHeadFullVolumeCVR.html | 6 +- examples/WebXRHeadGradientCVR.html | 6 +- examples/WebXRVolume.html | 6 +- examples/WidgetManager.html | 6 +- examples/WidgetRepresentation.html | 6 +- examples/WindowedSincPolyDataFilter.html | 6 +- examples/XMLImageDataWriter.html | 6 +- examples/XMLPolyDataWriter.html | 6 +- examples/ZipHttpReader.html | 6 +- examples/index.html | 6 +- index.html | 4 +- sitemap.xml | 2038 ++++++++--------- 1576 files changed, 4473 insertions(+), 4473 deletions(-) diff --git a/2016/04/29/kw-doc/index.html b/2016/04/29/kw-doc/index.html index 6f89b179469..482c2be17fd 100644 --- a/2016/04/29/kw-doc/index.html +++ b/2016/04/29/kw-doc/index.html @@ -45,7 +45,7 @@ - + diff --git a/api/Common_Core_Base64.html b/api/Common_Core_Base64.html index 54385321be6..223e6152d85 100644 --- a/api/Common_Core_Base64.html +++ b/api/Common_Core_Base64.html @@ -48,8 +48,8 @@ - - + + @@ -152,7 +152,7 @@

diff --git a/api/Common_Core_CellArray.html b/api/Common_Core_CellArray.html index 1018173eb5b..1904ba5f31e 100644 --- a/api/Common_Core_CellArray.html +++ b/api/Common_Core_CellArray.html @@ -48,8 +48,8 @@ - - + + @@ -295,7 +295,7 @@

diff --git a/api/Common_Core_ClassHierarchy.html b/api/Common_Core_ClassHierarchy.html index 98a39cb49a7..9e2fb9aa96c 100644 --- a/api/Common_Core_ClassHierarchy.html +++ b/api/Common_Core_ClassHierarchy.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Common_Core_DataArray.html b/api/Common_Core_DataArray.html index 775119572a0..b885ed85e50 100644 --- a/api/Common_Core_DataArray.html +++ b/api/Common_Core_DataArray.html @@ -48,8 +48,8 @@ - - + + @@ -923,7 +923,7 @@

diff --git a/api/Common_Core_Endian.html b/api/Common_Core_Endian.html index 3a743117201..46930591080 100644 --- a/api/Common_Core_Endian.html +++ b/api/Common_Core_Endian.html @@ -48,8 +48,8 @@ - - + + @@ -141,7 +141,7 @@

diff --git a/api/Common_Core_HalfFloat.html b/api/Common_Core_HalfFloat.html index b7bae021287..a40c2c20fb0 100644 --- a/api/Common_Core_HalfFloat.html +++ b/api/Common_Core_HalfFloat.html @@ -48,8 +48,8 @@ - - + + @@ -152,7 +152,7 @@

diff --git a/api/Common_Core_ImageHelper.html b/api/Common_Core_ImageHelper.html index 9ed6ef6a9d1..5d749ae91f2 100644 --- a/api/Common_Core_ImageHelper.html +++ b/api/Common_Core_ImageHelper.html @@ -48,8 +48,8 @@ - - + + @@ -165,7 +165,7 @@

diff --git a/api/Common_Core_LookupTable.html b/api/Common_Core_LookupTable.html index 365206ee516..5447c1161c1 100644 --- a/api/Common_Core_LookupTable.html +++ b/api/Common_Core_LookupTable.html @@ -48,8 +48,8 @@ - - + + @@ -553,7 +553,7 @@

diff --git a/api/Common_Core_Math.html b/api/Common_Core_Math.html index 68822f9f57a..ab4008a80e2 100644 --- a/api/Common_Core_Math.html +++ b/api/Common_Core_Math.html @@ -48,8 +48,8 @@ - - + + @@ -2841,7 +2841,7 @@

diff --git a/api/Common_Core_MatrixBuilder.html b/api/Common_Core_MatrixBuilder.html index 712feb70a07..bd972894bfc 100644 --- a/api/Common_Core_MatrixBuilder.html +++ b/api/Common_Core_MatrixBuilder.html @@ -48,8 +48,8 @@ - - + + @@ -375,7 +375,7 @@

diff --git a/api/Common_Core_Points.html b/api/Common_Core_Points.html index 386cbbb06f5..647ca5fa493 100644 --- a/api/Common_Core_Points.html +++ b/api/Common_Core_Points.html @@ -48,8 +48,8 @@ - - + + @@ -340,7 +340,7 @@

diff --git a/api/Common_Core_PriorityQueue.html b/api/Common_Core_PriorityQueue.html index 0da0ee54268..f860344d34c 100644 --- a/api/Common_Core_PriorityQueue.html +++ b/api/Common_Core_PriorityQueue.html @@ -48,8 +48,8 @@ - - + + @@ -206,7 +206,7 @@

diff --git a/api/Common_Core_ProgressHandler.html b/api/Common_Core_ProgressHandler.html index 4f6f0b9194e..4a4c2d44a47 100644 --- a/api/Common_Core_ProgressHandler.html +++ b/api/Common_Core_ProgressHandler.html @@ -48,8 +48,8 @@ - - + + @@ -198,7 +198,7 @@

diff --git a/api/Common_Core_ScalarsToColors.html b/api/Common_Core_ScalarsToColors.html index a6f5bd06851..e23b8449e53 100644 --- a/api/Common_Core_ScalarsToColors.html +++ b/api/Common_Core_ScalarsToColors.html @@ -48,8 +48,8 @@ - - + + @@ -816,7 +816,7 @@

- + diff --git a/api/Common_Core_StringArray.html b/api/Common_Core_StringArray.html index a12691b8751..e01cc3f8bf2 100644 --- a/api/Common_Core_StringArray.html +++ b/api/Common_Core_StringArray.html @@ -48,8 +48,8 @@ - - + + @@ -277,7 +277,7 @@

diff --git a/api/Common_Core_URLExtract.html b/api/Common_Core_URLExtract.html index 1696dbc9647..1dffa5a82a1 100644 --- a/api/Common_Core_URLExtract.html +++ b/api/Common_Core_URLExtract.html @@ -48,8 +48,8 @@ - - + + @@ -156,7 +156,7 @@

diff --git a/api/Common_Core_VariantArray.html b/api/Common_Core_VariantArray.html index 4b250b63d3f..caf763334fe 100644 --- a/api/Common_Core_VariantArray.html +++ b/api/Common_Core_VariantArray.html @@ -48,8 +48,8 @@ - - + + @@ -277,7 +277,7 @@

diff --git a/api/Common_DataModel_AbstractPointLocator.html b/api/Common_DataModel_AbstractPointLocator.html index df6917bd531..a06443bf121 100644 --- a/api/Common_DataModel_AbstractPointLocator.html +++ b/api/Common_DataModel_AbstractPointLocator.html @@ -48,8 +48,8 @@ - - + + @@ -178,7 +178,7 @@

diff --git a/api/Common_DataModel_BoundingBox.html b/api/Common_DataModel_BoundingBox.html index 10e098949c6..6ac1318c395 100644 --- a/api/Common_DataModel_BoundingBox.html +++ b/api/Common_DataModel_BoundingBox.html @@ -48,8 +48,8 @@ - - + + @@ -1816,7 +1816,7 @@

diff --git a/api/Common_DataModel_Box.html b/api/Common_DataModel_Box.html index 63eeb10403d..f4bf5ed6153 100644 --- a/api/Common_DataModel_Box.html +++ b/api/Common_DataModel_Box.html @@ -48,8 +48,8 @@ - - + + @@ -295,7 +295,7 @@

diff --git a/api/Common_DataModel_CardinalSpline1D.html b/api/Common_DataModel_CardinalSpline1D.html index d973eb4f2b3..a54e8ec8a2d 100644 --- a/api/Common_DataModel_CardinalSpline1D.html +++ b/api/Common_DataModel_CardinalSpline1D.html @@ -48,8 +48,8 @@ - - + + @@ -285,7 +285,7 @@

diff --git a/api/Common_DataModel_Cell.html b/api/Common_DataModel_Cell.html index b63fd37791c..4bc01cfec7c 100644 --- a/api/Common_DataModel_Cell.html +++ b/api/Common_DataModel_Cell.html @@ -48,8 +48,8 @@ - - + + @@ -228,7 +228,7 @@

diff --git a/api/Common_DataModel_CellLinks.html b/api/Common_DataModel_CellLinks.html index 5f707cb36a3..052b98f2e9d 100644 --- a/api/Common_DataModel_CellLinks.html +++ b/api/Common_DataModel_CellLinks.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Common_DataModel_CellTypes.html b/api/Common_DataModel_CellTypes.html index c954e178fda..b66d649bd21 100644 --- a/api/Common_DataModel_CellTypes.html +++ b/api/Common_DataModel_CellTypes.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Common_DataModel_Collection.html b/api/Common_DataModel_Collection.html index 51baa09099a..3d39d2e72da 100644 --- a/api/Common_DataModel_Collection.html +++ b/api/Common_DataModel_Collection.html @@ -48,8 +48,8 @@ - - + + @@ -251,7 +251,7 @@

diff --git a/api/Common_DataModel_Cone.html b/api/Common_DataModel_Cone.html index 6ec03c70ddd..f0b64931797 100644 --- a/api/Common_DataModel_Cone.html +++ b/api/Common_DataModel_Cone.html @@ -48,8 +48,8 @@ - - + + @@ -217,7 +217,7 @@

diff --git a/api/Common_DataModel_Cylinder.html b/api/Common_DataModel_Cylinder.html index 2f593ca6d43..0e5b82cb5a5 100644 --- a/api/Common_DataModel_Cylinder.html +++ b/api/Common_DataModel_Cylinder.html @@ -48,8 +48,8 @@ - - + + @@ -400,7 +400,7 @@

diff --git a/api/Common_DataModel_DataSet.html b/api/Common_DataModel_DataSet.html index bcef715a19b..de1b8e53ac0 100644 --- a/api/Common_DataModel_DataSet.html +++ b/api/Common_DataModel_DataSet.html @@ -48,8 +48,8 @@ - - + + @@ -223,7 +223,7 @@

diff --git a/api/Common_DataModel_DataSetAttributes.html b/api/Common_DataModel_DataSetAttributes.html index 6703009216b..acce9e6f6b4 100644 --- a/api/Common_DataModel_DataSetAttributes.html +++ b/api/Common_DataModel_DataSetAttributes.html @@ -48,8 +48,8 @@ - - + + @@ -706,7 +706,7 @@

diff --git a/api/Common_DataModel_EdgeLocator.html b/api/Common_DataModel_EdgeLocator.html index 53225783066..8f29bca6c0f 100644 --- a/api/Common_DataModel_EdgeLocator.html +++ b/api/Common_DataModel_EdgeLocator.html @@ -48,8 +48,8 @@ - - + + @@ -137,7 +137,7 @@

diff --git a/api/Common_DataModel_ITKHelper.html b/api/Common_DataModel_ITKHelper.html index 0b07f952d90..bd3be1b5638 100644 --- a/api/Common_DataModel_ITKHelper.html +++ b/api/Common_DataModel_ITKHelper.html @@ -48,8 +48,8 @@ - - + + @@ -211,7 +211,7 @@

diff --git a/api/Common_DataModel_ImageData.html b/api/Common_DataModel_ImageData.html index 67da10734c0..1a8cbc30223 100644 --- a/api/Common_DataModel_ImageData.html +++ b/api/Common_DataModel_ImageData.html @@ -48,8 +48,8 @@ - - + + @@ -707,7 +707,7 @@

diff --git a/api/Common_DataModel_ImplicitBoolean.html b/api/Common_DataModel_ImplicitBoolean.html index 94b6d043c9a..cd72856a3c7 100644 --- a/api/Common_DataModel_ImplicitBoolean.html +++ b/api/Common_DataModel_ImplicitBoolean.html @@ -48,8 +48,8 @@ - - + + @@ -123,7 +123,7 @@

diff --git a/api/Common_DataModel_ImplicitFunction.html b/api/Common_DataModel_ImplicitFunction.html index bcf1da4cfcf..bc2f1b036d0 100644 --- a/api/Common_DataModel_ImplicitFunction.html +++ b/api/Common_DataModel_ImplicitFunction.html @@ -48,8 +48,8 @@ - - + + @@ -217,7 +217,7 @@

diff --git a/api/Common_DataModel_IncrementalOctreeNode.html b/api/Common_DataModel_IncrementalOctreeNode.html index 740a4abd5d7..8d0bbfb16d5 100644 --- a/api/Common_DataModel_IncrementalOctreeNode.html +++ b/api/Common_DataModel_IncrementalOctreeNode.html @@ -48,8 +48,8 @@ - - + + @@ -600,7 +600,7 @@

diff --git a/api/Common_DataModel_IncrementalOctreePointLocator.html b/api/Common_DataModel_IncrementalOctreePointLocator.html index da401f19b7f..f531e072c7d 100644 --- a/api/Common_DataModel_IncrementalOctreePointLocator.html +++ b/api/Common_DataModel_IncrementalOctreePointLocator.html @@ -48,8 +48,8 @@ - - + + @@ -165,7 +165,7 @@

diff --git a/api/Common_DataModel_KochanekSpline1D.html b/api/Common_DataModel_KochanekSpline1D.html index 25fec5fb937..930b796f36e 100644 --- a/api/Common_DataModel_KochanekSpline1D.html +++ b/api/Common_DataModel_KochanekSpline1D.html @@ -48,8 +48,8 @@ - - + + @@ -285,7 +285,7 @@

diff --git a/api/Common_DataModel_Line.html b/api/Common_DataModel_Line.html index af0617e4c87..85da7ee0da9 100644 --- a/api/Common_DataModel_Line.html +++ b/api/Common_DataModel_Line.html @@ -48,8 +48,8 @@ - - + + @@ -319,7 +319,7 @@

diff --git a/api/Common_DataModel_Locator.html b/api/Common_DataModel_Locator.html index a149ba8be3c..d674b127728 100644 --- a/api/Common_DataModel_Locator.html +++ b/api/Common_DataModel_Locator.html @@ -48,8 +48,8 @@ - - + + @@ -148,7 +148,7 @@

diff --git a/api/Common_DataModel_Molecule.html b/api/Common_DataModel_Molecule.html index 732b3778120..d381af05527 100644 --- a/api/Common_DataModel_Molecule.html +++ b/api/Common_DataModel_Molecule.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Common_DataModel_PiecewiseFunction.html b/api/Common_DataModel_PiecewiseFunction.html index 9b7e1e37b76..ac9347b224f 100644 --- a/api/Common_DataModel_PiecewiseFunction.html +++ b/api/Common_DataModel_PiecewiseFunction.html @@ -48,8 +48,8 @@ - - + + @@ -508,7 +508,7 @@

diff --git a/api/Common_DataModel_Plane.html b/api/Common_DataModel_Plane.html index ea107b89b2d..b120ffb21f0 100644 --- a/api/Common_DataModel_Plane.html +++ b/api/Common_DataModel_Plane.html @@ -48,8 +48,8 @@ - - + + @@ -779,7 +779,7 @@

diff --git a/api/Common_DataModel_PointSet.html b/api/Common_DataModel_PointSet.html index 69b477dc4d0..24b328507e7 100644 --- a/api/Common_DataModel_PointSet.html +++ b/api/Common_DataModel_PointSet.html @@ -48,8 +48,8 @@ - - + + @@ -168,7 +168,7 @@

- + diff --git a/api/Common_DataModel_PolyData.html b/api/Common_DataModel_PolyData.html index 6fa52e83166..f45953d20b5 100644 --- a/api/Common_DataModel_PolyData.html +++ b/api/Common_DataModel_PolyData.html @@ -48,8 +48,8 @@ - - + + @@ -367,7 +367,7 @@

diff --git a/api/Common_DataModel_PolyLine.html b/api/Common_DataModel_PolyLine.html index 01b72bba949..ecb10a20d36 100644 --- a/api/Common_DataModel_PolyLine.html +++ b/api/Common_DataModel_PolyLine.html @@ -48,8 +48,8 @@ - - + + @@ -353,7 +353,7 @@

diff --git a/api/Common_DataModel_Polygon.html b/api/Common_DataModel_Polygon.html index d937453dcda..72455bfd7b7 100644 --- a/api/Common_DataModel_Polygon.html +++ b/api/Common_DataModel_Polygon.html @@ -48,8 +48,8 @@ - - + + @@ -233,7 +233,7 @@

diff --git a/api/Common_DataModel_Quad.html b/api/Common_DataModel_Quad.html index 9b6e57bd820..1d962d06cbc 100644 --- a/api/Common_DataModel_Quad.html +++ b/api/Common_DataModel_Quad.html @@ -48,8 +48,8 @@ - - + + @@ -241,7 +241,7 @@

diff --git a/api/Common_DataModel_SelectionNode.html b/api/Common_DataModel_SelectionNode.html index 893f7621cd0..1544b145bc2 100644 --- a/api/Common_DataModel_SelectionNode.html +++ b/api/Common_DataModel_SelectionNode.html @@ -48,8 +48,8 @@ - - + + @@ -177,7 +177,7 @@

diff --git a/api/Common_DataModel_Sphere.html b/api/Common_DataModel_Sphere.html index 2817814ea1b..043ead67eb0 100644 --- a/api/Common_DataModel_Sphere.html +++ b/api/Common_DataModel_Sphere.html @@ -48,8 +48,8 @@ - - + + @@ -282,7 +282,7 @@

diff --git a/api/Common_DataModel_Spline1D.html b/api/Common_DataModel_Spline1D.html index 1b77ecfb9bb..0fd7e177621 100644 --- a/api/Common_DataModel_Spline1D.html +++ b/api/Common_DataModel_Spline1D.html @@ -48,8 +48,8 @@ - - + + @@ -286,7 +286,7 @@

diff --git a/api/Common_DataModel_Spline3D.html b/api/Common_DataModel_Spline3D.html index 91a4fff517a..f61f142048c 100644 --- a/api/Common_DataModel_Spline3D.html +++ b/api/Common_DataModel_Spline3D.html @@ -48,8 +48,8 @@ - - + + @@ -205,7 +205,7 @@

diff --git a/api/Common_DataModel_StructuredData.html b/api/Common_DataModel_StructuredData.html index a949501f932..81e97f71f8f 100644 --- a/api/Common_DataModel_StructuredData.html +++ b/api/Common_DataModel_StructuredData.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Common_DataModel_Triangle.html b/api/Common_DataModel_Triangle.html index 7605c6235d0..59636e520c6 100644 --- a/api/Common_DataModel_Triangle.html +++ b/api/Common_DataModel_Triangle.html @@ -48,8 +48,8 @@ - - + + @@ -372,7 +372,7 @@

diff --git a/api/Common_System_MobileVR.html b/api/Common_System_MobileVR.html index 872a4889750..491348ad686 100644 --- a/api/Common_System_MobileVR.html +++ b/api/Common_System_MobileVR.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/api/Common_System_TimerLog.html b/api/Common_System_TimerLog.html index cb409af4f8d..cd1a8638402 100644 --- a/api/Common_System_TimerLog.html +++ b/api/Common_System_TimerLog.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Common_Transform_LandmarkTransform.html b/api/Common_Transform_LandmarkTransform.html index d1d834a565f..fa9731f82bd 100644 --- a/api/Common_Transform_LandmarkTransform.html +++ b/api/Common_Transform_LandmarkTransform.html @@ -48,8 +48,8 @@ - - + + @@ -229,7 +229,7 @@

diff --git a/api/Common_Transform_Transform.html b/api/Common_Transform_Transform.html index 44146d198c8..25aa28f79e2 100644 --- a/api/Common_Transform_Transform.html +++ b/api/Common_Transform_Transform.html @@ -48,8 +48,8 @@ - - + + @@ -445,7 +445,7 @@

diff --git a/api/Filters_Core_Cutter.html b/api/Filters_Core_Cutter.html index 2cc78ae06f5..7c036fe87ac 100644 --- a/api/Filters_Core_Cutter.html +++ b/api/Filters_Core_Cutter.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Filters_Core_PolyDataNormals.html b/api/Filters_Core_PolyDataNormals.html index bd058a1fd29..1d6b4335db1 100644 --- a/api/Filters_Core_PolyDataNormals.html +++ b/api/Filters_Core_PolyDataNormals.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Filters_Cornerstone_ImageDataToCornerstoneImage.html b/api/Filters_Cornerstone_ImageDataToCornerstoneImage.html index 5f0c6e69401..01a16e327a6 100644 --- a/api/Filters_Cornerstone_ImageDataToCornerstoneImage.html +++ b/api/Filters_Cornerstone_ImageDataToCornerstoneImage.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Filters_General_AppendPolyData.html b/api/Filters_General_AppendPolyData.html index 90e8f045ac7..a0165917242 100644 --- a/api/Filters_General_AppendPolyData.html +++ b/api/Filters_General_AppendPolyData.html @@ -48,8 +48,8 @@ - - + + @@ -210,7 +210,7 @@

diff --git a/api/Filters_General_Calculator.html b/api/Filters_General_Calculator.html index 28d1338f870..941cb753be5 100644 --- a/api/Filters_General_Calculator.html +++ b/api/Filters_General_Calculator.html @@ -48,8 +48,8 @@ - - + + @@ -157,7 +157,7 @@

diff --git a/api/Filters_General_ClipClosedSurface.html b/api/Filters_General_ClipClosedSurface.html index 50d020ad340..13002ac699e 100644 --- a/api/Filters_General_ClipClosedSurface.html +++ b/api/Filters_General_ClipClosedSurface.html @@ -48,8 +48,8 @@ - - + + @@ -191,7 +191,7 @@

diff --git a/api/Filters_General_ClosedPolyLineToSurfaceFilter.html b/api/Filters_General_ClosedPolyLineToSurfaceFilter.html index af814adb40a..9b3a942e25a 100644 --- a/api/Filters_General_ClosedPolyLineToSurfaceFilter.html +++ b/api/Filters_General_ClosedPolyLineToSurfaceFilter.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Filters_General_ContourLoopExtraction.html b/api/Filters_General_ContourLoopExtraction.html index afe37125647..7f733d44fab 100644 --- a/api/Filters_General_ContourLoopExtraction.html +++ b/api/Filters_General_ContourLoopExtraction.html @@ -48,8 +48,8 @@ - - + + @@ -264,7 +264,7 @@

diff --git a/api/Filters_General_ContourTriangulator.html b/api/Filters_General_ContourTriangulator.html index 10698ec0e4b..14f3ebab38d 100644 --- a/api/Filters_General_ContourTriangulator.html +++ b/api/Filters_General_ContourTriangulator.html @@ -48,8 +48,8 @@ - - + + @@ -327,7 +327,7 @@

diff --git a/api/Filters_General_ImageCropFilter.html b/api/Filters_General_ImageCropFilter.html index 163713bbec1..2ea914f1375 100644 --- a/api/Filters_General_ImageCropFilter.html +++ b/api/Filters_General_ImageCropFilter.html @@ -48,8 +48,8 @@ - - + + @@ -222,7 +222,7 @@

diff --git a/api/Filters_General_ImageDataOutlineFilter.html b/api/Filters_General_ImageDataOutlineFilter.html index e6353088d2a..f2474125f3c 100644 --- a/api/Filters_General_ImageDataOutlineFilter.html +++ b/api/Filters_General_ImageDataOutlineFilter.html @@ -48,8 +48,8 @@ - - + + @@ -248,7 +248,7 @@

diff --git a/api/Filters_General_ImageMarchingCubes.html b/api/Filters_General_ImageMarchingCubes.html index ecea6b7fa42..eecd74948bd 100644 --- a/api/Filters_General_ImageMarchingCubes.html +++ b/api/Filters_General_ImageMarchingCubes.html @@ -48,8 +48,8 @@ - - + + @@ -123,7 +123,7 @@

diff --git a/api/Filters_General_ImageMarchingSquares.html b/api/Filters_General_ImageMarchingSquares.html index d967795583c..aadee845488 100644 --- a/api/Filters_General_ImageMarchingSquares.html +++ b/api/Filters_General_ImageMarchingSquares.html @@ -48,8 +48,8 @@ - - + + @@ -124,7 +124,7 @@

diff --git a/api/Filters_General_ImageOutlineFilter.html b/api/Filters_General_ImageOutlineFilter.html index ea364bdbae2..9f751cc103e 100644 --- a/api/Filters_General_ImageOutlineFilter.html +++ b/api/Filters_General_ImageOutlineFilter.html @@ -48,8 +48,8 @@ - - + + @@ -220,7 +220,7 @@

diff --git a/api/Filters_General_ImageSliceFilter.html b/api/Filters_General_ImageSliceFilter.html index 7d3f59467e9..da2c8fbe6af 100644 --- a/api/Filters_General_ImageSliceFilter.html +++ b/api/Filters_General_ImageSliceFilter.html @@ -48,8 +48,8 @@ - - + + @@ -218,7 +218,7 @@

diff --git a/api/Filters_General_ImageStreamline.html b/api/Filters_General_ImageStreamline.html index 770cb2ae3ba..3c4fb0a206b 100644 --- a/api/Filters_General_ImageStreamline.html +++ b/api/Filters_General_ImageStreamline.html @@ -48,8 +48,8 @@ - - + + @@ -429,7 +429,7 @@

diff --git a/api/Filters_General_LineFilter.html b/api/Filters_General_LineFilter.html index 49824f3b77b..9ecbcc77592 100644 --- a/api/Filters_General_LineFilter.html +++ b/api/Filters_General_LineFilter.html @@ -48,8 +48,8 @@ - - + + @@ -188,7 +188,7 @@

diff --git a/api/Filters_General_MoleculeToRepresentation.html b/api/Filters_General_MoleculeToRepresentation.html index 75d8d770bfb..9fc6b1c23f4 100644 --- a/api/Filters_General_MoleculeToRepresentation.html +++ b/api/Filters_General_MoleculeToRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Filters_General_OBBTree.html b/api/Filters_General_OBBTree.html index d3e3a701612..3f9dfab089c 100644 --- a/api/Filters_General_OBBTree.html +++ b/api/Filters_General_OBBTree.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Filters_General_OutlineFilter.html b/api/Filters_General_OutlineFilter.html index cc3fbf13a64..44a42ea4415 100644 --- a/api/Filters_General_OutlineFilter.html +++ b/api/Filters_General_OutlineFilter.html @@ -48,8 +48,8 @@ - - + + @@ -188,7 +188,7 @@

diff --git a/api/Filters_General_PaintFilter.html b/api/Filters_General_PaintFilter.html index cf9b6160557..def2d47e093 100644 --- a/api/Filters_General_PaintFilter.html +++ b/api/Filters_General_PaintFilter.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Filters_General_ScalarToRGBA.html b/api/Filters_General_ScalarToRGBA.html index ceb67bc6e35..2f2c6da6d73 100644 --- a/api/Filters_General_ScalarToRGBA.html +++ b/api/Filters_General_ScalarToRGBA.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Filters_General_TriangleFilter.html b/api/Filters_General_TriangleFilter.html index 9072e3da0a8..5d80c02073f 100644 --- a/api/Filters_General_TriangleFilter.html +++ b/api/Filters_General_TriangleFilter.html @@ -48,8 +48,8 @@ - - + + @@ -189,7 +189,7 @@

diff --git a/api/Filters_General_TubeFilter.html b/api/Filters_General_TubeFilter.html index 8576e1c72e8..198f618fbca 100644 --- a/api/Filters_General_TubeFilter.html +++ b/api/Filters_General_TubeFilter.html @@ -48,8 +48,8 @@ - - + + @@ -426,7 +426,7 @@

diff --git a/api/Filters_General_WarpScalar.html b/api/Filters_General_WarpScalar.html index e6e330a462f..e519fb92a9d 100644 --- a/api/Filters_General_WarpScalar.html +++ b/api/Filters_General_WarpScalar.html @@ -48,8 +48,8 @@ - - + + @@ -126,7 +126,7 @@

diff --git a/api/Filters_General_WindowedSincPolyDataFilter.html b/api/Filters_General_WindowedSincPolyDataFilter.html index 3135bd83051..186023a3754 100644 --- a/api/Filters_General_WindowedSincPolyDataFilter.html +++ b/api/Filters_General_WindowedSincPolyDataFilter.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Filters_Sources_Arrow2DSource.html b/api/Filters_Sources_Arrow2DSource.html index fee3194d876..c5d6450b049 100644 --- a/api/Filters_Sources_Arrow2DSource.html +++ b/api/Filters_Sources_Arrow2DSource.html @@ -48,8 +48,8 @@ - - + + @@ -374,7 +374,7 @@

diff --git a/api/Filters_Sources_ArrowSource.html b/api/Filters_Sources_ArrowSource.html index 750288ce0e3..a0e103d0e14 100644 --- a/api/Filters_Sources_ArrowSource.html +++ b/api/Filters_Sources_ArrowSource.html @@ -48,8 +48,8 @@ - - + + @@ -363,7 +363,7 @@

diff --git a/api/Filters_Sources_CircleSource.html b/api/Filters_Sources_CircleSource.html index 2fa9fa3b98a..5ec0b45b6f2 100644 --- a/api/Filters_Sources_CircleSource.html +++ b/api/Filters_Sources_CircleSource.html @@ -48,8 +48,8 @@ - - + + @@ -372,7 +372,7 @@

diff --git a/api/Filters_Sources_ConcentricCylinderSource.html b/api/Filters_Sources_ConcentricCylinderSource.html index a868ccd3219..d4ad0f47ae7 100644 --- a/api/Filters_Sources_ConcentricCylinderSource.html +++ b/api/Filters_Sources_ConcentricCylinderSource.html @@ -48,8 +48,8 @@ - - + + @@ -127,7 +127,7 @@

diff --git a/api/Filters_Sources_ConeSource.html b/api/Filters_Sources_ConeSource.html index c41b7231d52..c002e67b714 100644 --- a/api/Filters_Sources_ConeSource.html +++ b/api/Filters_Sources_ConeSource.html @@ -48,8 +48,8 @@ - - + + @@ -410,7 +410,7 @@

diff --git a/api/Filters_Sources_CubeSource.html b/api/Filters_Sources_CubeSource.html index 3b7d5dc4b9a..dcc72a9e478 100644 --- a/api/Filters_Sources_CubeSource.html +++ b/api/Filters_Sources_CubeSource.html @@ -48,8 +48,8 @@ - - + + @@ -512,7 +512,7 @@

diff --git a/api/Filters_Sources_Cursor3D.html b/api/Filters_Sources_Cursor3D.html index 3a4e154e8b2..4b998c0e3ca 100644 --- a/api/Filters_Sources_Cursor3D.html +++ b/api/Filters_Sources_Cursor3D.html @@ -48,8 +48,8 @@ - - + + @@ -352,7 +352,7 @@

diff --git a/api/Filters_Sources_CylinderSource.html b/api/Filters_Sources_CylinderSource.html index ee7de8692a8..584ff3498cf 100644 --- a/api/Filters_Sources_CylinderSource.html +++ b/api/Filters_Sources_CylinderSource.html @@ -48,8 +48,8 @@ - - + + @@ -411,7 +411,7 @@

diff --git a/api/Filters_Sources_ImageGridSource.html b/api/Filters_Sources_ImageGridSource.html index 84c1eda4d4c..19266d63510 100644 --- a/api/Filters_Sources_ImageGridSource.html +++ b/api/Filters_Sources_ImageGridSource.html @@ -48,8 +48,8 @@ - - + + @@ -125,7 +125,7 @@

diff --git a/api/Filters_Sources_LineSource.html b/api/Filters_Sources_LineSource.html index fb26ff9d060..499e504d793 100644 --- a/api/Filters_Sources_LineSource.html +++ b/api/Filters_Sources_LineSource.html @@ -48,8 +48,8 @@ - - + + @@ -321,7 +321,7 @@

diff --git a/api/Filters_Sources_PlaneSource.html b/api/Filters_Sources_PlaneSource.html index 19ef0d5e69f..7258eee7c61 100644 --- a/api/Filters_Sources_PlaneSource.html +++ b/api/Filters_Sources_PlaneSource.html @@ -48,8 +48,8 @@ - - + + @@ -546,7 +546,7 @@

diff --git a/api/Filters_Sources_PointSource.html b/api/Filters_Sources_PointSource.html index d7843fb9723..2c2c388ea17 100644 --- a/api/Filters_Sources_PointSource.html +++ b/api/Filters_Sources_PointSource.html @@ -48,8 +48,8 @@ - - + + @@ -291,7 +291,7 @@

diff --git a/api/Filters_Sources_RTAnalyticSource.html b/api/Filters_Sources_RTAnalyticSource.html index 3f0edb7def6..016b1db174f 100644 --- a/api/Filters_Sources_RTAnalyticSource.html +++ b/api/Filters_Sources_RTAnalyticSource.html @@ -48,8 +48,8 @@ - - + + @@ -130,7 +130,7 @@

diff --git a/api/Filters_Sources_SLICSource.html b/api/Filters_Sources_SLICSource.html index c614560d239..bbb81891909 100644 --- a/api/Filters_Sources_SLICSource.html +++ b/api/Filters_Sources_SLICSource.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Filters_Sources_SphereSource.html b/api/Filters_Sources_SphereSource.html index e143b0112ef..fc5918d04bd 100644 --- a/api/Filters_Sources_SphereSource.html +++ b/api/Filters_Sources_SphereSource.html @@ -48,8 +48,8 @@ - - + + @@ -398,7 +398,7 @@

diff --git a/api/Filters_Sources_ViewFinderSource.html b/api/Filters_Sources_ViewFinderSource.html index c329fd3bfa0..62e8c632004 100644 --- a/api/Filters_Sources_ViewFinderSource.html +++ b/api/Filters_Sources_ViewFinderSource.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Filters_Texture_TextureMapToPlane.html b/api/Filters_Texture_TextureMapToPlane.html index de41a9fb9e8..694a3e184bd 100644 --- a/api/Filters_Texture_TextureMapToPlane.html +++ b/api/Filters_Texture_TextureMapToPlane.html @@ -48,8 +48,8 @@ - - + + @@ -583,7 +583,7 @@

diff --git a/api/Filters_Texture_TextureMapToSphere.html b/api/Filters_Texture_TextureMapToSphere.html index 3e4a75b3835..9acb3d2a65d 100644 --- a/api/Filters_Texture_TextureMapToSphere.html +++ b/api/Filters_Texture_TextureMapToSphere.html @@ -48,8 +48,8 @@ - - + + @@ -293,7 +293,7 @@

diff --git a/api/IO_Core_BinaryHelper.html b/api/IO_Core_BinaryHelper.html index 8d1b8b6a629..618e5699892 100644 --- a/api/IO_Core_BinaryHelper.html +++ b/api/IO_Core_BinaryHelper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/IO_Core_DataAccessHelper.html b/api/IO_Core_DataAccessHelper.html index e4deae1f241..78e521be421 100644 --- a/api/IO_Core_DataAccessHelper.html +++ b/api/IO_Core_DataAccessHelper.html @@ -48,8 +48,8 @@ - - + + @@ -186,7 +186,7 @@

diff --git a/api/IO_Core_HttpDataSetReader.html b/api/IO_Core_HttpDataSetReader.html index e3243fdb7da..0138979f7d1 100644 --- a/api/IO_Core_HttpDataSetReader.html +++ b/api/IO_Core_HttpDataSetReader.html @@ -48,8 +48,8 @@ - - + + @@ -354,7 +354,7 @@

diff --git a/api/IO_Core_HttpDataSetSeriesReader.html b/api/IO_Core_HttpDataSetSeriesReader.html index b971debfb3d..f9a21acdc44 100644 --- a/api/IO_Core_HttpDataSetSeriesReader.html +++ b/api/IO_Core_HttpDataSetSeriesReader.html @@ -48,8 +48,8 @@ - - + + @@ -132,7 +132,7 @@

diff --git a/api/IO_Core_HttpSceneLoader.html b/api/IO_Core_HttpSceneLoader.html index a48a0d15736..2857e3a8557 100644 --- a/api/IO_Core_HttpSceneLoader.html +++ b/api/IO_Core_HttpSceneLoader.html @@ -48,8 +48,8 @@ - - + + @@ -257,7 +257,7 @@

diff --git a/api/IO_Core_ImageStream.html b/api/IO_Core_ImageStream.html index 43d3751647d..fb6ddb924fd 100644 --- a/api/IO_Core_ImageStream.html +++ b/api/IO_Core_ImageStream.html @@ -48,8 +48,8 @@ - - + + @@ -207,7 +207,7 @@

- + diff --git a/api/IO_Core_ResourceLoader.html b/api/IO_Core_ResourceLoader.html index 446e91346a2..bfeb6f29eea 100644 --- a/api/IO_Core_ResourceLoader.html +++ b/api/IO_Core_ResourceLoader.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/IO_Core_Serializer.html b/api/IO_Core_Serializer.html index c72fc33fa55..25643ac13e0 100644 --- a/api/IO_Core_Serializer.html +++ b/api/IO_Core_Serializer.html @@ -48,8 +48,8 @@ - - + + @@ -121,7 +121,7 @@

diff --git a/api/IO_Core_WSLinkClient.html b/api/IO_Core_WSLinkClient.html index 51df7380665..1eed03c89e5 100644 --- a/api/IO_Core_WSLinkClient.html +++ b/api/IO_Core_WSLinkClient.html @@ -48,8 +48,8 @@ - - + + @@ -400,7 +400,7 @@

diff --git a/api/IO_Core_ZipMultiDataSetReader.html b/api/IO_Core_ZipMultiDataSetReader.html index ad472a8e62f..990e1f91e57 100644 --- a/api/IO_Core_ZipMultiDataSetReader.html +++ b/api/IO_Core_ZipMultiDataSetReader.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/IO_Core_ZipMultiDataSetWriter.html b/api/IO_Core_ZipMultiDataSetWriter.html index fb8e0be62ee..67862733520 100644 --- a/api/IO_Core_ZipMultiDataSetWriter.html +++ b/api/IO_Core_ZipMultiDataSetWriter.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/IO_Geometry_DracoReader.html b/api/IO_Geometry_DracoReader.html index 51162653991..5c4dee2bd2b 100644 --- a/api/IO_Geometry_DracoReader.html +++ b/api/IO_Geometry_DracoReader.html @@ -48,8 +48,8 @@ - - + + @@ -334,7 +334,7 @@

diff --git a/api/IO_Geometry_GLTFImporter.html b/api/IO_Geometry_GLTFImporter.html index 87006cae91a..f390c2e3f9a 100644 --- a/api/IO_Geometry_GLTFImporter.html +++ b/api/IO_Geometry_GLTFImporter.html @@ -48,8 +48,8 @@ - - + + @@ -439,7 +439,7 @@

diff --git a/api/IO_Geometry_PLYReader.html b/api/IO_Geometry_PLYReader.html index 109659c899b..f8e6daac7e8 100644 --- a/api/IO_Geometry_PLYReader.html +++ b/api/IO_Geometry_PLYReader.html @@ -48,8 +48,8 @@ - - + + @@ -295,7 +295,7 @@

diff --git a/api/IO_Geometry_PLYWriter.html b/api/IO_Geometry_PLYWriter.html index c2b81672360..60b663737c0 100644 --- a/api/IO_Geometry_PLYWriter.html +++ b/api/IO_Geometry_PLYWriter.html @@ -48,8 +48,8 @@ - - + + @@ -444,7 +444,7 @@

diff --git a/api/IO_Geometry_STLReader.html b/api/IO_Geometry_STLReader.html index 942dbed2b2d..64061a4525d 100644 --- a/api/IO_Geometry_STLReader.html +++ b/api/IO_Geometry_STLReader.html @@ -48,8 +48,8 @@ - - + + @@ -295,7 +295,7 @@

diff --git a/api/IO_Geometry_STLWriter.html b/api/IO_Geometry_STLWriter.html index c867ee9164d..91ba8bd32e8 100644 --- a/api/IO_Geometry_STLWriter.html +++ b/api/IO_Geometry_STLWriter.html @@ -48,8 +48,8 @@ - - + + @@ -248,7 +248,7 @@

diff --git a/api/IO_Image_HDRReader.html b/api/IO_Image_HDRReader.html index 06361b02673..049ef562557 100644 --- a/api/IO_Image_HDRReader.html +++ b/api/IO_Image_HDRReader.html @@ -48,8 +48,8 @@ - - + + @@ -281,7 +281,7 @@

diff --git a/api/IO_Image_TGAReader.html b/api/IO_Image_TGAReader.html index 94f1aaf2db4..ab3a20bba65 100644 --- a/api/IO_Image_TGAReader.html +++ b/api/IO_Image_TGAReader.html @@ -48,8 +48,8 @@ - - + + @@ -281,7 +281,7 @@

diff --git a/api/IO_Legacy_LegacyAsciiParser.html b/api/IO_Legacy_LegacyAsciiParser.html index eb6e99ab988..027302276ec 100644 --- a/api/IO_Legacy_LegacyAsciiParser.html +++ b/api/IO_Legacy_LegacyAsciiParser.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/IO_Legacy_PolyDataReader.html b/api/IO_Legacy_PolyDataReader.html index 4e7d426ad45..b3abfb58963 100644 --- a/api/IO_Legacy_PolyDataReader.html +++ b/api/IO_Legacy_PolyDataReader.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/IO_Misc_ElevationReader.html b/api/IO_Misc_ElevationReader.html index a489782e205..fd2724fb886 100644 --- a/api/IO_Misc_ElevationReader.html +++ b/api/IO_Misc_ElevationReader.html @@ -48,8 +48,8 @@ - - + + @@ -377,7 +377,7 @@

diff --git a/api/IO_Misc_GCodeReader.html b/api/IO_Misc_GCodeReader.html index 3e217cfb756..9ed2f5ed453 100644 --- a/api/IO_Misc_GCodeReader.html +++ b/api/IO_Misc_GCodeReader.html @@ -48,8 +48,8 @@ - - + + @@ -295,7 +295,7 @@

diff --git a/api/IO_Misc_HttpDataSetLODsLoader.html b/api/IO_Misc_HttpDataSetLODsLoader.html index 7b68839339f..e6e3f63c996 100644 --- a/api/IO_Misc_HttpDataSetLODsLoader.html +++ b/api/IO_Misc_HttpDataSetLODsLoader.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/IO_Misc_ITKImageReader.html b/api/IO_Misc_ITKImageReader.html index 30827497a87..e95ba868a00 100644 --- a/api/IO_Misc_ITKImageReader.html +++ b/api/IO_Misc_ITKImageReader.html @@ -48,8 +48,8 @@ - - + + @@ -256,7 +256,7 @@

diff --git a/api/IO_Misc_ITKPolyDataReader.html b/api/IO_Misc_ITKPolyDataReader.html index e56c6ee745f..644116ccb9d 100644 --- a/api/IO_Misc_ITKPolyDataReader.html +++ b/api/IO_Misc_ITKPolyDataReader.html @@ -48,8 +48,8 @@ - - + + @@ -256,7 +256,7 @@

diff --git a/api/IO_Misc_JSONNucleoReader.html b/api/IO_Misc_JSONNucleoReader.html index 6240dd173d5..9aa1a5d391d 100644 --- a/api/IO_Misc_JSONNucleoReader.html +++ b/api/IO_Misc_JSONNucleoReader.html @@ -48,8 +48,8 @@ - - + + @@ -261,7 +261,7 @@

diff --git a/api/IO_Misc_JSONReader.html b/api/IO_Misc_JSONReader.html index 146fcb5ea04..392ffac84a4 100644 --- a/api/IO_Misc_JSONReader.html +++ b/api/IO_Misc_JSONReader.html @@ -48,8 +48,8 @@ - - + + @@ -277,7 +277,7 @@

diff --git a/api/IO_Misc_MTLReader.html b/api/IO_Misc_MTLReader.html index fada01461ec..27e9bb6192f 100644 --- a/api/IO_Misc_MTLReader.html +++ b/api/IO_Misc_MTLReader.html @@ -48,8 +48,8 @@ - - + + @@ -385,7 +385,7 @@

diff --git a/api/IO_Misc_OBJReader.html b/api/IO_Misc_OBJReader.html index 2330bdb000f..80eb8899091 100644 --- a/api/IO_Misc_OBJReader.html +++ b/api/IO_Misc_OBJReader.html @@ -48,8 +48,8 @@ - - + + @@ -365,7 +365,7 @@

diff --git a/api/IO_Misc_PDBReader.html b/api/IO_Misc_PDBReader.html index 5a32b652ecd..543ace04a48 100644 --- a/api/IO_Misc_PDBReader.html +++ b/api/IO_Misc_PDBReader.html @@ -48,8 +48,8 @@ - - + + @@ -293,7 +293,7 @@

diff --git a/api/IO_Misc_SkyboxReader.html b/api/IO_Misc_SkyboxReader.html index 7cf72fdc10a..29da16691f0 100644 --- a/api/IO_Misc_SkyboxReader.html +++ b/api/IO_Misc_SkyboxReader.html @@ -48,8 +48,8 @@ - - + + @@ -121,7 +121,7 @@

diff --git a/api/IO_XML_XMLImageDataReader.html b/api/IO_XML_XMLImageDataReader.html index bd0c78714b9..15ddc554f9b 100644 --- a/api/IO_XML_XMLImageDataReader.html +++ b/api/IO_XML_XMLImageDataReader.html @@ -48,8 +48,8 @@ - - + + @@ -206,7 +206,7 @@

diff --git a/api/IO_XML_XMLImageDataWriter.html b/api/IO_XML_XMLImageDataWriter.html index 9c71375672a..145777c592d 100644 --- a/api/IO_XML_XMLImageDataWriter.html +++ b/api/IO_XML_XMLImageDataWriter.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/IO_XML_XMLPolyDataReader.html b/api/IO_XML_XMLPolyDataReader.html index 57bf02cd57a..39d8228b9d8 100644 --- a/api/IO_XML_XMLPolyDataReader.html +++ b/api/IO_XML_XMLPolyDataReader.html @@ -48,8 +48,8 @@ - - + + @@ -206,7 +206,7 @@

diff --git a/api/IO_XML_XMLPolyDataWriter.html b/api/IO_XML_XMLPolyDataWriter.html index b1db298ac62..4d8aa858e59 100644 --- a/api/IO_XML_XMLPolyDataWriter.html +++ b/api/IO_XML_XMLPolyDataWriter.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/IO_XML_XMLReader.html b/api/IO_XML_XMLReader.html index 66151863c17..b1d470d9c33 100644 --- a/api/IO_XML_XMLReader.html +++ b/api/IO_XML_XMLReader.html @@ -48,8 +48,8 @@ - - + + @@ -422,7 +422,7 @@

diff --git a/api/IO_XML_XMLWriter.html b/api/IO_XML_XMLWriter.html index 41feb79868a..b95d035c0d6 100644 --- a/api/IO_XML_XMLWriter.html +++ b/api/IO_XML_XMLWriter.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Imaging_Core_AbstractImageInterpolator.html b/api/Imaging_Core_AbstractImageInterpolator.html index 8afa4671ad3..d15a12d633b 100644 --- a/api/Imaging_Core_AbstractImageInterpolator.html +++ b/api/Imaging_Core_AbstractImageInterpolator.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/api/Imaging_Core_ImageInterpolator.html b/api/Imaging_Core_ImageInterpolator.html index 80f682887b2..98938f411d7 100644 --- a/api/Imaging_Core_ImageInterpolator.html +++ b/api/Imaging_Core_ImageInterpolator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Imaging_Core_ImagePointDataIterator.html b/api/Imaging_Core_ImagePointDataIterator.html index 2f85369ccdc..34f6abaca4d 100644 --- a/api/Imaging_Core_ImagePointDataIterator.html +++ b/api/Imaging_Core_ImagePointDataIterator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Imaging_Core_ImageReslice.html b/api/Imaging_Core_ImageReslice.html index d0a97763d70..4e7cb1308b7 100644 --- a/api/Imaging_Core_ImageReslice.html +++ b/api/Imaging_Core_ImageReslice.html @@ -48,8 +48,8 @@ - - + + @@ -1737,7 +1737,7 @@

diff --git a/api/Imaging_Hybrid_SampleFunction.html b/api/Imaging_Hybrid_SampleFunction.html index 94e7f7ddc97..5bbe8af3a6b 100644 --- a/api/Imaging_Hybrid_SampleFunction.html +++ b/api/Imaging_Hybrid_SampleFunction.html @@ -48,8 +48,8 @@ - - + + @@ -121,7 +121,7 @@

diff --git a/api/Interaction_Animations_TimeStepBasedAnimationHandler.html b/api/Interaction_Animations_TimeStepBasedAnimationHandler.html index 400b5bfaee2..c3ee09e2614 100644 --- a/api/Interaction_Animations_TimeStepBasedAnimationHandler.html +++ b/api/Interaction_Animations_TimeStepBasedAnimationHandler.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Manipulators_3DControllerModelSelectorManipulator.html b/api/Interaction_Manipulators_3DControllerModelSelectorManipulator.html index a84149b46fb..3f4668b41e4 100644 --- a/api/Interaction_Manipulators_3DControllerModelSelectorManipulator.html +++ b/api/Interaction_Manipulators_3DControllerModelSelectorManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Manipulators_CompositeCameraManipulator.html b/api/Interaction_Manipulators_CompositeCameraManipulator.html index 0a9187a5bfb..8824dc14afb 100644 --- a/api/Interaction_Manipulators_CompositeCameraManipulator.html +++ b/api/Interaction_Manipulators_CompositeCameraManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -195,7 +195,7 @@

diff --git a/api/Interaction_Manipulators_CompositeGestureManipulator.html b/api/Interaction_Manipulators_CompositeGestureManipulator.html index e17655f254f..dbf27b05373 100644 --- a/api/Interaction_Manipulators_CompositeGestureManipulator.html +++ b/api/Interaction_Manipulators_CompositeGestureManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -402,7 +402,7 @@

diff --git a/api/Interaction_Manipulators_CompositeKeyboardManipulator.html b/api/Interaction_Manipulators_CompositeKeyboardManipulator.html index b19a12b0048..84e085a1fe9 100644 --- a/api/Interaction_Manipulators_CompositeKeyboardManipulator.html +++ b/api/Interaction_Manipulators_CompositeKeyboardManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -205,7 +205,7 @@

diff --git a/api/Interaction_Manipulators_CompositeMouseManipulator.html b/api/Interaction_Manipulators_CompositeMouseManipulator.html index 5f97cbf698a..f02a7d54d82 100644 --- a/api/Interaction_Manipulators_CompositeMouseManipulator.html +++ b/api/Interaction_Manipulators_CompositeMouseManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -349,7 +349,7 @@

diff --git a/api/Interaction_Manipulators_CompositeVRManipulator.html b/api/Interaction_Manipulators_CompositeVRManipulator.html index ebda2119036..fcfc8899255 100644 --- a/api/Interaction_Manipulators_CompositeVRManipulator.html +++ b/api/Interaction_Manipulators_CompositeVRManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Manipulators_GestureCameraManipulator.html b/api/Interaction_Manipulators_GestureCameraManipulator.html index 9127502fc13..98292afa834 100644 --- a/api/Interaction_Manipulators_GestureCameraManipulator.html +++ b/api/Interaction_Manipulators_GestureCameraManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Manipulators_KeyboardCameraManipulator.html b/api/Interaction_Manipulators_KeyboardCameraManipulator.html index d704987b969..f422a1b8c74 100644 --- a/api/Interaction_Manipulators_KeyboardCameraManipulator.html +++ b/api/Interaction_Manipulators_KeyboardCameraManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Manipulators_MouseBoxSelectorManipulator.html b/api/Interaction_Manipulators_MouseBoxSelectorManipulator.html index 4c6a7142868..eec11bdc526 100644 --- a/api/Interaction_Manipulators_MouseBoxSelectorManipulator.html +++ b/api/Interaction_Manipulators_MouseBoxSelectorManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -208,7 +208,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraAxisRotateManipulator.html b/api/Interaction_Manipulators_MouseCameraAxisRotateManipulator.html index 0c659d4c70d..5d5bc28504a 100644 --- a/api/Interaction_Manipulators_MouseCameraAxisRotateManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraAxisRotateManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraSliceManipulator.html b/api/Interaction_Manipulators_MouseCameraSliceManipulator.html index 5a41fc1aba7..93b5b03bc7b 100644 --- a/api/Interaction_Manipulators_MouseCameraSliceManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraSliceManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraTrackballFirstPersonManipulator.html b/api/Interaction_Manipulators_MouseCameraTrackballFirstPersonManipulator.html index e34e5dd297a..84aca2a8239 100644 --- a/api/Interaction_Manipulators_MouseCameraTrackballFirstPersonManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraTrackballFirstPersonManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraTrackballMultiRotateManipulator.html b/api/Interaction_Manipulators_MouseCameraTrackballMultiRotateManipulator.html index eae08503ad6..1adc01f0feb 100644 --- a/api/Interaction_Manipulators_MouseCameraTrackballMultiRotateManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraTrackballMultiRotateManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraTrackballPanManipulator.html b/api/Interaction_Manipulators_MouseCameraTrackballPanManipulator.html index b56f5e5ab0d..91f74122ecf 100644 --- a/api/Interaction_Manipulators_MouseCameraTrackballPanManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraTrackballPanManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraTrackballRollManipulator.html b/api/Interaction_Manipulators_MouseCameraTrackballRollManipulator.html index 93999ec254b..3417cbb8331 100644 --- a/api/Interaction_Manipulators_MouseCameraTrackballRollManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraTrackballRollManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraTrackballRotateManipulator.html b/api/Interaction_Manipulators_MouseCameraTrackballRotateManipulator.html index f6e4a3fcb17..1e287c13f87 100644 --- a/api/Interaction_Manipulators_MouseCameraTrackballRotateManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraTrackballRotateManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -171,7 +171,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraTrackballZoomManipulator.html b/api/Interaction_Manipulators_MouseCameraTrackballZoomManipulator.html index bcbe17ae214..619faace64f 100644 --- a/api/Interaction_Manipulators_MouseCameraTrackballZoomManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraTrackballZoomManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -136,7 +136,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraTrackballZoomToMouseManipulator.html b/api/Interaction_Manipulators_MouseCameraTrackballZoomToMouseManipulator.html index e2f9f1eca73..7c91d1c3e38 100644 --- a/api/Interaction_Manipulators_MouseCameraTrackballZoomToMouseManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraTrackballZoomToMouseManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraUnicamManipulator.html b/api/Interaction_Manipulators_MouseCameraUnicamManipulator.html index 647b9f6bc50..cc0dd714365 100644 --- a/api/Interaction_Manipulators_MouseCameraUnicamManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraUnicamManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Manipulators_MouseCameraUnicamRotateManipulator.html b/api/Interaction_Manipulators_MouseCameraUnicamRotateManipulator.html index 39f1be83e77..e4cfbe3ba23 100644 --- a/api/Interaction_Manipulators_MouseCameraUnicamRotateManipulator.html +++ b/api/Interaction_Manipulators_MouseCameraUnicamRotateManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Manipulators_MouseRangeManipulator.html b/api/Interaction_Manipulators_MouseRangeManipulator.html index 62b508442c2..cc228590b0c 100644 --- a/api/Interaction_Manipulators_MouseRangeManipulator.html +++ b/api/Interaction_Manipulators_MouseRangeManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Manipulators_VRButtonPanManipulator.html b/api/Interaction_Manipulators_VRButtonPanManipulator.html index 6a827518aa1..adefb22cb70 100644 --- a/api/Interaction_Manipulators_VRButtonPanManipulator.html +++ b/api/Interaction_Manipulators_VRButtonPanManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Misc_DeviceOrientationToCamera.html b/api/Interaction_Misc_DeviceOrientationToCamera.html index f80fb04ee0e..d690b5ceaa4 100644 --- a/api/Interaction_Misc_DeviceOrientationToCamera.html +++ b/api/Interaction_Misc_DeviceOrientationToCamera.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Style_InteractorStyleHMDXR.html b/api/Interaction_Style_InteractorStyleHMDXR.html index 1d4b96c7c79..ea32444d047 100644 --- a/api/Interaction_Style_InteractorStyleHMDXR.html +++ b/api/Interaction_Style_InteractorStyleHMDXR.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Style_InteractorStyleImage.html b/api/Interaction_Style_InteractorStyleImage.html index f350d3783f3..e2e337a4a7b 100644 --- a/api/Interaction_Style_InteractorStyleImage.html +++ b/api/Interaction_Style_InteractorStyleImage.html @@ -48,8 +48,8 @@ - - + + @@ -301,7 +301,7 @@

diff --git a/api/Interaction_Style_InteractorStyleMPRSlice.html b/api/Interaction_Style_InteractorStyleMPRSlice.html index 3c1863092a4..76ed32da5c6 100644 --- a/api/Interaction_Style_InteractorStyleMPRSlice.html +++ b/api/Interaction_Style_InteractorStyleMPRSlice.html @@ -48,8 +48,8 @@ - - + + @@ -131,7 +131,7 @@

diff --git a/api/Interaction_Style_InteractorStyleManipulator.html b/api/Interaction_Style_InteractorStyleManipulator.html index 3858140787c..f5a96b65af9 100644 --- a/api/Interaction_Style_InteractorStyleManipulator.html +++ b/api/Interaction_Style_InteractorStyleManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -879,7 +879,7 @@

diff --git a/api/Interaction_Style_InteractorStyleRemoteMouse.html b/api/Interaction_Style_InteractorStyleRemoteMouse.html index 2994614e34b..18cab9582a3 100644 --- a/api/Interaction_Style_InteractorStyleRemoteMouse.html +++ b/api/Interaction_Style_InteractorStyleRemoteMouse.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_Style_InteractorStyleTrackballCamera.html b/api/Interaction_Style_InteractorStyleTrackballCamera.html index d2ff86a7541..a92869b034c 100644 --- a/api/Interaction_Style_InteractorStyleTrackballCamera.html +++ b/api/Interaction_Style_InteractorStyleTrackballCamera.html @@ -48,8 +48,8 @@ - - + + @@ -539,7 +539,7 @@

diff --git a/api/Interaction_Style_InteractorStyleUnicam.html b/api/Interaction_Style_InteractorStyleUnicam.html index 68f1118015c..70b735b9af4 100644 --- a/api/Interaction_Style_InteractorStyleUnicam.html +++ b/api/Interaction_Style_InteractorStyleUnicam.html @@ -48,8 +48,8 @@ - - + + @@ -132,7 +132,7 @@

diff --git a/api/Interaction_UI_CornerAnnotation.html b/api/Interaction_UI_CornerAnnotation.html index 687bd452d37..cf5aaf3778a 100644 --- a/api/Interaction_UI_CornerAnnotation.html +++ b/api/Interaction_UI_CornerAnnotation.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_UI_FPSMonitor.html b/api/Interaction_UI_FPSMonitor.html index 04b9633d884..6a12280f551 100644 --- a/api/Interaction_UI_FPSMonitor.html +++ b/api/Interaction_UI_FPSMonitor.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_UI_Icons.html b/api/Interaction_UI_Icons.html index 100cc7ce261..b5303c1c5e9 100644 --- a/api/Interaction_UI_Icons.html +++ b/api/Interaction_UI_Icons.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Interaction_UI_Slider.html b/api/Interaction_UI_Slider.html index 0609557a318..ca537a3eb93 100644 --- a/api/Interaction_UI_Slider.html +++ b/api/Interaction_UI_Slider.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Interaction_UI_VolumeController.html b/api/Interaction_UI_VolumeController.html index 91bffc01850..f268a02fa51 100644 --- a/api/Interaction_UI_VolumeController.html +++ b/api/Interaction_UI_VolumeController.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Interaction_Widgets_OrientationMarkerWidget.html b/api/Interaction_Widgets_OrientationMarkerWidget.html index c2cbda8ae3c..5f13b765364 100644 --- a/api/Interaction_Widgets_OrientationMarkerWidget.html +++ b/api/Interaction_Widgets_OrientationMarkerWidget.html @@ -48,8 +48,8 @@ - - + + @@ -328,7 +328,7 @@

diff --git a/api/Interaction_Widgets_PiecewiseGaussianWidget.html b/api/Interaction_Widgets_PiecewiseGaussianWidget.html index 52ad7c315dc..8b1111e8693 100644 --- a/api/Interaction_Widgets_PiecewiseGaussianWidget.html +++ b/api/Interaction_Widgets_PiecewiseGaussianWidget.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Proxy_Animation_AbstractAnimationProxy.html b/api/Proxy_Animation_AbstractAnimationProxy.html index afae91fdb8f..ebdcc01e826 100644 --- a/api/Proxy_Animation_AbstractAnimationProxy.html +++ b/api/Proxy_Animation_AbstractAnimationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Proxy_Animation_AnimationProxyManager.html b/api/Proxy_Animation_AnimationProxyManager.html index 3dc4a914dc9..7b9c7792f7f 100644 --- a/api/Proxy_Animation_AnimationProxyManager.html +++ b/api/Proxy_Animation_AnimationProxyManager.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Proxy_Animation_TimeStepBasedAnimationHandlerProxy.html b/api/Proxy_Animation_TimeStepBasedAnimationHandlerProxy.html index 6bff9e2c863..d1618789322 100644 --- a/api/Proxy_Animation_TimeStepBasedAnimationHandlerProxy.html +++ b/api/Proxy_Animation_TimeStepBasedAnimationHandlerProxy.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Proxy_Core_AbstractRepresentationProxy.html b/api/Proxy_Core_AbstractRepresentationProxy.html index 380bb5faa35..88cd10a52e5 100644 --- a/api/Proxy_Core_AbstractRepresentationProxy.html +++ b/api/Proxy_Core_AbstractRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Proxy_Core_LookupTableProxy.html b/api/Proxy_Core_LookupTableProxy.html index 1a075cf36c1..e81a1c961b0 100644 --- a/api/Proxy_Core_LookupTableProxy.html +++ b/api/Proxy_Core_LookupTableProxy.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Proxy_Core_PiecewiseFunctionProxy.html b/api/Proxy_Core_PiecewiseFunctionProxy.html index 61f1c8582d3..7dcb4d2e42f 100644 --- a/api/Proxy_Core_PiecewiseFunctionProxy.html +++ b/api/Proxy_Core_PiecewiseFunctionProxy.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Proxy_Core_ProxyManager.html b/api/Proxy_Core_ProxyManager.html index 260d969d166..c6fbc7c0b75 100644 --- a/api/Proxy_Core_ProxyManager.html +++ b/api/Proxy_Core_ProxyManager.html @@ -48,8 +48,8 @@ - - + + @@ -169,7 +169,7 @@

diff --git a/api/Proxy_Core_SourceProxy.html b/api/Proxy_Core_SourceProxy.html index 3f6a159b16e..0f52b96a009 100644 --- a/api/Proxy_Core_SourceProxy.html +++ b/api/Proxy_Core_SourceProxy.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Proxy_Core_View2DProxy.html b/api/Proxy_Core_View2DProxy.html index ded55b34bb7..9cc93cc5eba 100644 --- a/api/Proxy_Core_View2DProxy.html +++ b/api/Proxy_Core_View2DProxy.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Proxy_Core_ViewProxy.html b/api/Proxy_Core_ViewProxy.html index 45182f177fe..5d99648f8be 100644 --- a/api/Proxy_Core_ViewProxy.html +++ b/api/Proxy_Core_ViewProxy.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Proxy_Representations_GeometryRepresentationProxy.html b/api/Proxy_Representations_GeometryRepresentationProxy.html index 6d9223a17fe..fc34096f1af 100644 --- a/api/Proxy_Representations_GeometryRepresentationProxy.html +++ b/api/Proxy_Representations_GeometryRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -136,7 +136,7 @@

diff --git a/api/Proxy_Representations_GlyphRepresentationProxy.html b/api/Proxy_Representations_GlyphRepresentationProxy.html index 1820a40e6da..1d8a3d988db 100644 --- a/api/Proxy_Representations_GlyphRepresentationProxy.html +++ b/api/Proxy_Representations_GlyphRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Proxy_Representations_MoleculeRepresentationProxy.html b/api/Proxy_Representations_MoleculeRepresentationProxy.html index 4da12c5b4e9..e4ac913da50 100644 --- a/api/Proxy_Representations_MoleculeRepresentationProxy.html +++ b/api/Proxy_Representations_MoleculeRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Proxy_Representations_ResliceRepresentationProxy.html b/api/Proxy_Representations_ResliceRepresentationProxy.html index e3f877288c1..7ffb3cdf6c1 100644 --- a/api/Proxy_Representations_ResliceRepresentationProxy.html +++ b/api/Proxy_Representations_ResliceRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Proxy_Representations_SkyboxRepresentationProxy.html b/api/Proxy_Representations_SkyboxRepresentationProxy.html index f71ae2592ca..abb048818e4 100644 --- a/api/Proxy_Representations_SkyboxRepresentationProxy.html +++ b/api/Proxy_Representations_SkyboxRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Proxy_Representations_SliceRepresentationProxy.html b/api/Proxy_Representations_SliceRepresentationProxy.html index 51fd3bf5ee9..b9d05248787 100644 --- a/api/Proxy_Representations_SliceRepresentationProxy.html +++ b/api/Proxy_Representations_SliceRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -134,7 +134,7 @@

diff --git a/api/Proxy_Representations_SlicedGeometryRepresentationProxy.html b/api/Proxy_Representations_SlicedGeometryRepresentationProxy.html index 15bc8941acc..4e7028a1a23 100644 --- a/api/Proxy_Representations_SlicedGeometryRepresentationProxy.html +++ b/api/Proxy_Representations_SlicedGeometryRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Proxy_Representations_VolumeRepresentationProxy.html b/api/Proxy_Representations_VolumeRepresentationProxy.html index 255f18365bd..580c3f03470 100644 --- a/api/Proxy_Representations_VolumeRepresentationProxy.html +++ b/api/Proxy_Representations_VolumeRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_Core_AbstractImageMapper.html b/api/Rendering_Core_AbstractImageMapper.html index 5b67b6bcf4a..5a4875e4916 100644 --- a/api/Rendering_Core_AbstractImageMapper.html +++ b/api/Rendering_Core_AbstractImageMapper.html @@ -48,8 +48,8 @@ - - + + @@ -353,7 +353,7 @@

diff --git a/api/Rendering_Core_AbstractMapper.html b/api/Rendering_Core_AbstractMapper.html index cff508f5bb9..fba6412c42e 100644 --- a/api/Rendering_Core_AbstractMapper.html +++ b/api/Rendering_Core_AbstractMapper.html @@ -48,8 +48,8 @@ - - + + @@ -231,7 +231,7 @@

diff --git a/api/Rendering_Core_AbstractMapper3D.html b/api/Rendering_Core_AbstractMapper3D.html index af4519e934d..a04dc667bda 100644 --- a/api/Rendering_Core_AbstractMapper3D.html +++ b/api/Rendering_Core_AbstractMapper3D.html @@ -48,8 +48,8 @@ - - + + @@ -152,7 +152,7 @@

diff --git a/api/Rendering_Core_AbstractPicker.html b/api/Rendering_Core_AbstractPicker.html index 821b06b651e..21b516238d7 100644 --- a/api/Rendering_Core_AbstractPicker.html +++ b/api/Rendering_Core_AbstractPicker.html @@ -48,8 +48,8 @@ - - + + @@ -217,7 +217,7 @@

diff --git a/api/Rendering_Core_Actor.html b/api/Rendering_Core_Actor.html index 9a90e6a70ba..95fee0cb2ac 100644 --- a/api/Rendering_Core_Actor.html +++ b/api/Rendering_Core_Actor.html @@ -48,8 +48,8 @@ - - + + @@ -289,7 +289,7 @@

diff --git a/api/Rendering_Core_Actor2D.html b/api/Rendering_Core_Actor2D.html index c863d98ab2c..165606435e5 100644 --- a/api/Rendering_Core_Actor2D.html +++ b/api/Rendering_Core_Actor2D.html @@ -48,8 +48,8 @@ - - + + @@ -244,7 +244,7 @@

diff --git a/api/Rendering_Core_AnnotatedCubeActor.html b/api/Rendering_Core_AnnotatedCubeActor.html index a1d43afb801..6a94fcef443 100644 --- a/api/Rendering_Core_AnnotatedCubeActor.html +++ b/api/Rendering_Core_AnnotatedCubeActor.html @@ -48,8 +48,8 @@ - - + + @@ -296,7 +296,7 @@

diff --git a/api/Rendering_Core_AxesActor.html b/api/Rendering_Core_AxesActor.html index cc1bf73f294..8ddeee513f1 100644 --- a/api/Rendering_Core_AxesActor.html +++ b/api/Rendering_Core_AxesActor.html @@ -48,8 +48,8 @@ - - + + @@ -294,7 +294,7 @@

diff --git a/api/Rendering_Core_Camera.html b/api/Rendering_Core_Camera.html index b55ed1514ec..b6e6a1e1254 100644 --- a/api/Rendering_Core_Camera.html +++ b/api/Rendering_Core_Camera.html @@ -48,8 +48,8 @@ - - + + @@ -1455,7 +1455,7 @@

diff --git a/api/Rendering_Core_CellPicker.html b/api/Rendering_Core_CellPicker.html index 33cb3fda929..4f015adb4dd 100644 --- a/api/Rendering_Core_CellPicker.html +++ b/api/Rendering_Core_CellPicker.html @@ -48,8 +48,8 @@ - - + + @@ -226,7 +226,7 @@

diff --git a/api/Rendering_Core_ColorTransferFunction.html b/api/Rendering_Core_ColorTransferFunction.html index ef9a6a063ff..d444263101e 100644 --- a/api/Rendering_Core_ColorTransferFunction.html +++ b/api/Rendering_Core_ColorTransferFunction.html @@ -48,8 +48,8 @@ - - + + @@ -988,7 +988,7 @@

diff --git a/api/Rendering_Core_Coordinate.html b/api/Rendering_Core_Coordinate.html index 72c4dbb8a6b..118668a5717 100644 --- a/api/Rendering_Core_Coordinate.html +++ b/api/Rendering_Core_Coordinate.html @@ -48,8 +48,8 @@ - - + + @@ -407,7 +407,7 @@

diff --git a/api/Rendering_Core_CubeAxesActor.html b/api/Rendering_Core_CubeAxesActor.html index f8b7d73a239..ddcf143cc3c 100644 --- a/api/Rendering_Core_CubeAxesActor.html +++ b/api/Rendering_Core_CubeAxesActor.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_Core_Follower.html b/api/Rendering_Core_Follower.html index 42c8217a964..fdba02bfdc5 100644 --- a/api/Rendering_Core_Follower.html +++ b/api/Rendering_Core_Follower.html @@ -48,8 +48,8 @@ - - + + @@ -223,7 +223,7 @@

diff --git a/api/Rendering_Core_Glyph3DMapper.html b/api/Rendering_Core_Glyph3DMapper.html index a8f143abd58..dcdd4f7fab2 100644 --- a/api/Rendering_Core_Glyph3DMapper.html +++ b/api/Rendering_Core_Glyph3DMapper.html @@ -48,8 +48,8 @@ - - + + @@ -267,7 +267,7 @@

diff --git a/api/Rendering_Core_HardwareSelector.html b/api/Rendering_Core_HardwareSelector.html index 8edf1d1d70b..f3b76afe82c 100644 --- a/api/Rendering_Core_HardwareSelector.html +++ b/api/Rendering_Core_HardwareSelector.html @@ -48,8 +48,8 @@ - - + + @@ -236,7 +236,7 @@

diff --git a/api/Rendering_Core_ImageArrayMapper.html b/api/Rendering_Core_ImageArrayMapper.html index 394e41eee37..33c7dc80fef 100644 --- a/api/Rendering_Core_ImageArrayMapper.html +++ b/api/Rendering_Core_ImageArrayMapper.html @@ -48,8 +48,8 @@ - - + + @@ -361,7 +361,7 @@

diff --git a/api/Rendering_Core_ImageCPRMapper.html b/api/Rendering_Core_ImageCPRMapper.html index 889af16a0c1..f1722492499 100644 --- a/api/Rendering_Core_ImageCPRMapper.html +++ b/api/Rendering_Core_ImageCPRMapper.html @@ -48,8 +48,8 @@ - - + + @@ -641,7 +641,7 @@

diff --git a/api/Rendering_Core_ImageMapper.html b/api/Rendering_Core_ImageMapper.html index 7fd97ff8b66..c77d0a2b908 100644 --- a/api/Rendering_Core_ImageMapper.html +++ b/api/Rendering_Core_ImageMapper.html @@ -48,8 +48,8 @@ - - + + @@ -477,7 +477,7 @@

diff --git a/api/Rendering_Core_ImageProperty.html b/api/Rendering_Core_ImageProperty.html index b32ad5d288c..40c2244b0e7 100644 --- a/api/Rendering_Core_ImageProperty.html +++ b/api/Rendering_Core_ImageProperty.html @@ -48,8 +48,8 @@ - - + + @@ -524,7 +524,7 @@

diff --git a/api/Rendering_Core_ImageResliceMapper.html b/api/Rendering_Core_ImageResliceMapper.html index f4ce96bb9df..e7bbec20406 100644 --- a/api/Rendering_Core_ImageResliceMapper.html +++ b/api/Rendering_Core_ImageResliceMapper.html @@ -48,8 +48,8 @@ - - + + @@ -259,7 +259,7 @@

diff --git a/api/Rendering_Core_ImageSlice.html b/api/Rendering_Core_ImageSlice.html index c5af416f87b..72062afb24f 100644 --- a/api/Rendering_Core_ImageSlice.html +++ b/api/Rendering_Core_ImageSlice.html @@ -48,8 +48,8 @@ - - + + @@ -285,7 +285,7 @@

diff --git a/api/Rendering_Core_InteractorObserver.html b/api/Rendering_Core_InteractorObserver.html index 7b1fa740cfc..168639dd264 100644 --- a/api/Rendering_Core_InteractorObserver.html +++ b/api/Rendering_Core_InteractorObserver.html @@ -48,8 +48,8 @@ - - + + @@ -380,7 +380,7 @@

diff --git a/api/Rendering_Core_InteractorStyle.html b/api/Rendering_Core_InteractorStyle.html index 036ce75a3e8..f4ef2c0fc6a 100644 --- a/api/Rendering_Core_InteractorStyle.html +++ b/api/Rendering_Core_InteractorStyle.html @@ -48,8 +48,8 @@ - - + + @@ -181,7 +181,7 @@

diff --git a/api/Rendering_Core_Light.html b/api/Rendering_Core_Light.html index 91b1986a131..b22088e8240 100644 --- a/api/Rendering_Core_Light.html +++ b/api/Rendering_Core_Light.html @@ -48,8 +48,8 @@ - - + + @@ -640,7 +640,7 @@

diff --git a/api/Rendering_Core_Mapper.html b/api/Rendering_Core_Mapper.html index 2c91e6fd178..50662ea2a65 100644 --- a/api/Rendering_Core_Mapper.html +++ b/api/Rendering_Core_Mapper.html @@ -48,8 +48,8 @@ - - + + @@ -529,7 +529,7 @@

- + diff --git a/api/Rendering_Core_Mapper2D.html b/api/Rendering_Core_Mapper2D.html index bdf97403603..fbacb436dc1 100644 --- a/api/Rendering_Core_Mapper2D.html +++ b/api/Rendering_Core_Mapper2D.html @@ -48,8 +48,8 @@ - - + + @@ -462,7 +462,7 @@

diff --git a/api/Rendering_Core_Picker.html b/api/Rendering_Core_Picker.html index 22331692246..ed8097b1b90 100644 --- a/api/Rendering_Core_Picker.html +++ b/api/Rendering_Core_Picker.html @@ -48,8 +48,8 @@ - - + + @@ -308,7 +308,7 @@

diff --git a/api/Rendering_Core_PixelSpaceCallbackMapper.html b/api/Rendering_Core_PixelSpaceCallbackMapper.html index cdee28b2eb1..353898661a4 100644 --- a/api/Rendering_Core_PixelSpaceCallbackMapper.html +++ b/api/Rendering_Core_PixelSpaceCallbackMapper.html @@ -48,8 +48,8 @@ - - + + @@ -246,7 +246,7 @@

diff --git a/api/Rendering_Core_PointPicker.html b/api/Rendering_Core_PointPicker.html index f8d530d24dc..68ac3819018 100644 --- a/api/Rendering_Core_PointPicker.html +++ b/api/Rendering_Core_PointPicker.html @@ -48,8 +48,8 @@ - - + + @@ -185,7 +185,7 @@

diff --git a/api/Rendering_Core_Prop.html b/api/Rendering_Core_Prop.html index 2843ab96174..04044e9b43f 100644 --- a/api/Rendering_Core_Prop.html +++ b/api/Rendering_Core_Prop.html @@ -48,8 +48,8 @@ - - + + @@ -400,7 +400,7 @@

diff --git a/api/Rendering_Core_Prop3D.html b/api/Rendering_Core_Prop3D.html index 88537596d78..6e838f1eabc 100644 --- a/api/Rendering_Core_Prop3D.html +++ b/api/Rendering_Core_Prop3D.html @@ -48,8 +48,8 @@ - - + + @@ -522,7 +522,7 @@

diff --git a/api/Rendering_Core_Property.html b/api/Rendering_Core_Property.html index ae3f4637922..466a96404e5 100644 --- a/api/Rendering_Core_Property.html +++ b/api/Rendering_Core_Property.html @@ -48,8 +48,8 @@ - - + + @@ -860,7 +860,7 @@

diff --git a/api/Rendering_Core_Property2D.html b/api/Rendering_Core_Property2D.html index b562cd83c48..c380215195e 100644 --- a/api/Rendering_Core_Property2D.html +++ b/api/Rendering_Core_Property2D.html @@ -48,8 +48,8 @@ - - + + @@ -333,7 +333,7 @@

diff --git a/api/Rendering_Core_RenderWindow.html b/api/Rendering_Core_RenderWindow.html index 26be954a783..a1af62bcae4 100644 --- a/api/Rendering_Core_RenderWindow.html +++ b/api/Rendering_Core_RenderWindow.html @@ -48,8 +48,8 @@ - - + + @@ -410,7 +410,7 @@

- + diff --git a/api/Rendering_Core_RenderWindowInteractor.html b/api/Rendering_Core_RenderWindowInteractor.html index d44f29f833e..58a8b1c3dd2 100644 --- a/api/Rendering_Core_RenderWindowInteractor.html +++ b/api/Rendering_Core_RenderWindowInteractor.html @@ -48,8 +48,8 @@ - - + + @@ -2712,7 +2712,7 @@

diff --git a/api/Rendering_Core_Renderer.html b/api/Rendering_Core_Renderer.html index 52a9e8c4ff9..230b1ebca17 100644 --- a/api/Rendering_Core_Renderer.html +++ b/api/Rendering_Core_Renderer.html @@ -48,8 +48,8 @@ - - + + @@ -1048,7 +1048,7 @@

diff --git a/api/Rendering_Core_ScalarBarActor.html b/api/Rendering_Core_ScalarBarActor.html index 4b2204de09a..edeecbbc079 100644 --- a/api/Rendering_Core_ScalarBarActor.html +++ b/api/Rendering_Core_ScalarBarActor.html @@ -48,8 +48,8 @@ - - + + @@ -584,7 +584,7 @@

diff --git a/api/Rendering_Core_Skybox.html b/api/Rendering_Core_Skybox.html index 54c6e81d2de..a7ca66fefa5 100644 --- a/api/Rendering_Core_Skybox.html +++ b/api/Rendering_Core_Skybox.html @@ -48,8 +48,8 @@ - - + + @@ -164,7 +164,7 @@

diff --git a/api/Rendering_Core_SphereMapper.html b/api/Rendering_Core_SphereMapper.html index b0500c82bf9..138e8515e03 100644 --- a/api/Rendering_Core_SphereMapper.html +++ b/api/Rendering_Core_SphereMapper.html @@ -48,8 +48,8 @@ - - + + @@ -198,7 +198,7 @@

diff --git a/api/Rendering_Core_StickMapper.html b/api/Rendering_Core_StickMapper.html index ed4dcda9da6..1473aa1bc38 100644 --- a/api/Rendering_Core_StickMapper.html +++ b/api/Rendering_Core_StickMapper.html @@ -48,8 +48,8 @@ - - + + @@ -182,7 +182,7 @@

diff --git a/api/Rendering_Core_SurfaceLICInterface.html b/api/Rendering_Core_SurfaceLICInterface.html index 6bd90df868d..f2ff95243ba 100644 --- a/api/Rendering_Core_SurfaceLICInterface.html +++ b/api/Rendering_Core_SurfaceLICInterface.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_Core_SurfaceLICMapper.html b/api/Rendering_Core_SurfaceLICMapper.html index 8453e977f9b..fa19b284755 100644 --- a/api/Rendering_Core_SurfaceLICMapper.html +++ b/api/Rendering_Core_SurfaceLICMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_Core_Texture.html b/api/Rendering_Core_Texture.html index 27d9864197b..1beead225e6 100644 --- a/api/Rendering_Core_Texture.html +++ b/api/Rendering_Core_Texture.html @@ -48,8 +48,8 @@ - - + + @@ -280,7 +280,7 @@

diff --git a/api/Rendering_Core_Viewport.html b/api/Rendering_Core_Viewport.html index 15b8e7ed3dd..d0e531cec70 100644 --- a/api/Rendering_Core_Viewport.html +++ b/api/Rendering_Core_Viewport.html @@ -48,8 +48,8 @@ - - + + @@ -581,7 +581,7 @@

- + diff --git a/api/Rendering_Core_Volume.html b/api/Rendering_Core_Volume.html index a1c4c9fbc67..7b5fe088387 100644 --- a/api/Rendering_Core_Volume.html +++ b/api/Rendering_Core_Volume.html @@ -48,8 +48,8 @@ - - + + @@ -238,7 +238,7 @@

diff --git a/api/Rendering_Core_VolumeMapper.html b/api/Rendering_Core_VolumeMapper.html index 53a132b2166..d7126a65605 100644 --- a/api/Rendering_Core_VolumeMapper.html +++ b/api/Rendering_Core_VolumeMapper.html @@ -48,8 +48,8 @@ - - + + @@ -497,7 +497,7 @@

diff --git a/api/Rendering_Core_VolumeProperty.html b/api/Rendering_Core_VolumeProperty.html index a1b40bf26b4..116d87696b6 100644 --- a/api/Rendering_Core_VolumeProperty.html +++ b/api/Rendering_Core_VolumeProperty.html @@ -48,8 +48,8 @@ - - + + @@ -797,7 +797,7 @@

diff --git a/api/Rendering_Misc_CanvasView.html b/api/Rendering_Misc_CanvasView.html index 5f8ab0ecf36..618b64e8f76 100644 --- a/api/Rendering_Misc_CanvasView.html +++ b/api/Rendering_Misc_CanvasView.html @@ -48,8 +48,8 @@ - - + + @@ -355,7 +355,7 @@

diff --git a/api/Rendering_Misc_FullScreenRenderWindow.html b/api/Rendering_Misc_FullScreenRenderWindow.html index b01ad596f4e..ea9c11d3c88 100644 --- a/api/Rendering_Misc_FullScreenRenderWindow.html +++ b/api/Rendering_Misc_FullScreenRenderWindow.html @@ -48,8 +48,8 @@ - - + + @@ -276,7 +276,7 @@

diff --git a/api/Rendering_Misc_GenericRenderWindow.html b/api/Rendering_Misc_GenericRenderWindow.html index 15a69e7208b..649c5d81b40 100644 --- a/api/Rendering_Misc_GenericRenderWindow.html +++ b/api/Rendering_Misc_GenericRenderWindow.html @@ -48,8 +48,8 @@ - - + + @@ -245,7 +245,7 @@

diff --git a/api/Rendering_Misc_RemoteView.html b/api/Rendering_Misc_RemoteView.html index d4260452322..3321a3484f8 100644 --- a/api/Rendering_Misc_RemoteView.html +++ b/api/Rendering_Misc_RemoteView.html @@ -48,8 +48,8 @@ - - + + @@ -344,7 +344,7 @@

diff --git a/api/Rendering_Misc_RenderWindowWithControlBar.html b/api/Rendering_Misc_RenderWindowWithControlBar.html index af69a6dcc58..b16474a4190 100644 --- a/api/Rendering_Misc_RenderWindowWithControlBar.html +++ b/api/Rendering_Misc_RenderWindowWithControlBar.html @@ -48,8 +48,8 @@ - - + + @@ -220,7 +220,7 @@

diff --git a/api/Rendering_Misc_RenderingAPIs.html b/api/Rendering_Misc_RenderingAPIs.html index 15792f01198..6c096ba384f 100644 --- a/api/Rendering_Misc_RenderingAPIs.html +++ b/api/Rendering_Misc_RenderingAPIs.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_Misc_SynchronizableRenderWindow.html b/api/Rendering_Misc_SynchronizableRenderWindow.html index 13b8a581935..9bc10afcf43 100644 --- a/api/Rendering_Misc_SynchronizableRenderWindow.html +++ b/api/Rendering_Misc_SynchronizableRenderWindow.html @@ -48,8 +48,8 @@ - - + + @@ -288,7 +288,7 @@

diff --git a/api/Rendering_Misc_TextureLODsDownloader.html b/api/Rendering_Misc_TextureLODsDownloader.html index 4862733bc59..f4ceee75fc2 100644 --- a/api/Rendering_Misc_TextureLODsDownloader.html +++ b/api/Rendering_Misc_TextureLODsDownloader.html @@ -48,8 +48,8 @@ - - + + @@ -308,7 +308,7 @@

diff --git a/api/Rendering_OpenGL_Actor.html b/api/Rendering_OpenGL_Actor.html index 45d7ae54359..6a8852ddfaa 100644 --- a/api/Rendering_OpenGL_Actor.html +++ b/api/Rendering_OpenGL_Actor.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_OpenGL_Actor2D.html b/api/Rendering_OpenGL_Actor2D.html index 8adfa6d2a36..facefe568e6 100644 --- a/api/Rendering_OpenGL_Actor2D.html +++ b/api/Rendering_OpenGL_Actor2D.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_OpenGL_BufferObject.html b/api/Rendering_OpenGL_BufferObject.html index 3e595cd918f..28d8fa8200a 100644 --- a/api/Rendering_OpenGL_BufferObject.html +++ b/api/Rendering_OpenGL_BufferObject.html @@ -48,8 +48,8 @@ - - + + @@ -271,7 +271,7 @@

diff --git a/api/Rendering_OpenGL_Camera.html b/api/Rendering_OpenGL_Camera.html index 35de1975590..a937d94b8db 100644 --- a/api/Rendering_OpenGL_Camera.html +++ b/api/Rendering_OpenGL_Camera.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_OpenGL_CellArrayBufferObject.html b/api/Rendering_OpenGL_CellArrayBufferObject.html index db4db154855..31cf5c41ddf 100644 --- a/api/Rendering_OpenGL_CellArrayBufferObject.html +++ b/api/Rendering_OpenGL_CellArrayBufferObject.html @@ -48,8 +48,8 @@ - - + + @@ -136,7 +136,7 @@

diff --git a/api/Rendering_OpenGL_Convolution2DPass.html b/api/Rendering_OpenGL_Convolution2DPass.html index 6c60f7babc1..034c0e77118 100644 --- a/api/Rendering_OpenGL_Convolution2DPass.html +++ b/api/Rendering_OpenGL_Convolution2DPass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_CubeAxesActor.html b/api/Rendering_OpenGL_CubeAxesActor.html index 29983487c6c..f6113ea52ac 100644 --- a/api/Rendering_OpenGL_CubeAxesActor.html +++ b/api/Rendering_OpenGL_CubeAxesActor.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_ForwardPass.html b/api/Rendering_OpenGL_ForwardPass.html index 5f7a04d58c9..6762a6d3213 100644 --- a/api/Rendering_OpenGL_ForwardPass.html +++ b/api/Rendering_OpenGL_ForwardPass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_Framebuffer.html b/api/Rendering_OpenGL_Framebuffer.html index 15ca80c77d9..c395bc443e7 100644 --- a/api/Rendering_OpenGL_Framebuffer.html +++ b/api/Rendering_OpenGL_Framebuffer.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_Glyph3DMapper.html b/api/Rendering_OpenGL_Glyph3DMapper.html index 9efcb164dd2..9d28563ab4c 100644 --- a/api/Rendering_OpenGL_Glyph3DMapper.html +++ b/api/Rendering_OpenGL_Glyph3DMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_HardwareSelector.html b/api/Rendering_OpenGL_HardwareSelector.html index 393f8c1fe08..1b86ff58f69 100644 --- a/api/Rendering_OpenGL_HardwareSelector.html +++ b/api/Rendering_OpenGL_HardwareSelector.html @@ -48,8 +48,8 @@ - - + + @@ -669,7 +669,7 @@

diff --git a/api/Rendering_OpenGL_Helper.html b/api/Rendering_OpenGL_Helper.html index b74fbac0a26..30505dca355 100644 --- a/api/Rendering_OpenGL_Helper.html +++ b/api/Rendering_OpenGL_Helper.html @@ -48,8 +48,8 @@ - - + + @@ -124,7 +124,7 @@

diff --git a/api/Rendering_OpenGL_ImageCPRMapper.html b/api/Rendering_OpenGL_ImageCPRMapper.html index f82f153c470..dee003a6a27 100644 --- a/api/Rendering_OpenGL_ImageCPRMapper.html +++ b/api/Rendering_OpenGL_ImageCPRMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_ImageMapper.html b/api/Rendering_OpenGL_ImageMapper.html index 41045d6dd07..c76fba35c0b 100644 --- a/api/Rendering_OpenGL_ImageMapper.html +++ b/api/Rendering_OpenGL_ImageMapper.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_OpenGL_ImageResliceMapper.html b/api/Rendering_OpenGL_ImageResliceMapper.html index 5b3d81a9f4d..9b3ed9d8335 100644 --- a/api/Rendering_OpenGL_ImageResliceMapper.html +++ b/api/Rendering_OpenGL_ImageResliceMapper.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_OpenGL_ImageSlice.html b/api/Rendering_OpenGL_ImageSlice.html index 55e22c76b97..10b3189063b 100644 --- a/api/Rendering_OpenGL_ImageSlice.html +++ b/api/Rendering_OpenGL_ImageSlice.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_OrderIndependentTranslucentPass.html b/api/Rendering_OpenGL_OrderIndependentTranslucentPass.html index ee2e34e1b39..a916fe7a4f1 100644 --- a/api/Rendering_OpenGL_OrderIndependentTranslucentPass.html +++ b/api/Rendering_OpenGL_OrderIndependentTranslucentPass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_PixelSpaceCallbackMapper.html b/api/Rendering_OpenGL_PixelSpaceCallbackMapper.html index ac6f3acc66a..8e54cc43afa 100644 --- a/api/Rendering_OpenGL_PixelSpaceCallbackMapper.html +++ b/api/Rendering_OpenGL_PixelSpaceCallbackMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_PolyDataMapper.html b/api/Rendering_OpenGL_PolyDataMapper.html index ef56bd907d1..8ecfcd99c6b 100644 --- a/api/Rendering_OpenGL_PolyDataMapper.html +++ b/api/Rendering_OpenGL_PolyDataMapper.html @@ -48,8 +48,8 @@ - - + + @@ -154,7 +154,7 @@

diff --git a/api/Rendering_OpenGL_PolyDataMapper2D.html b/api/Rendering_OpenGL_PolyDataMapper2D.html index 6d36a0f4a9e..d93c428a863 100644 --- a/api/Rendering_OpenGL_PolyDataMapper2D.html +++ b/api/Rendering_OpenGL_PolyDataMapper2D.html @@ -48,8 +48,8 @@ - - + + @@ -154,7 +154,7 @@

diff --git a/api/Rendering_OpenGL_Profiles.html b/api/Rendering_OpenGL_Profiles.html index 0d4b1ef81c2..9886e256f2a 100644 --- a/api/Rendering_OpenGL_Profiles.html +++ b/api/Rendering_OpenGL_Profiles.html @@ -48,8 +48,8 @@ - - + + @@ -122,7 +122,7 @@

diff --git a/api/Rendering_OpenGL_RadialDistortionPass.html b/api/Rendering_OpenGL_RadialDistortionPass.html index 533acf63a39..1498926d4f6 100644 --- a/api/Rendering_OpenGL_RadialDistortionPass.html +++ b/api/Rendering_OpenGL_RadialDistortionPass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_RenderWindow.html b/api/Rendering_OpenGL_RenderWindow.html index 8fe675000ce..f1c9bc4aa33 100644 --- a/api/Rendering_OpenGL_RenderWindow.html +++ b/api/Rendering_OpenGL_RenderWindow.html @@ -48,8 +48,8 @@ - - + + @@ -955,7 +955,7 @@

diff --git a/api/Rendering_OpenGL_Renderer.html b/api/Rendering_OpenGL_Renderer.html index 06ee2ff6489..b23e17c06a8 100644 --- a/api/Rendering_OpenGL_Renderer.html +++ b/api/Rendering_OpenGL_Renderer.html @@ -48,8 +48,8 @@ - - + + @@ -121,7 +121,7 @@

diff --git a/api/Rendering_OpenGL_ReplacementShaderMapper.html b/api/Rendering_OpenGL_ReplacementShaderMapper.html index 1b6d465d3ef..2f7c6c3551a 100644 --- a/api/Rendering_OpenGL_ReplacementShaderMapper.html +++ b/api/Rendering_OpenGL_ReplacementShaderMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_ScalarBarActor.html b/api/Rendering_OpenGL_ScalarBarActor.html index 20f18365da6..484a339d915 100644 --- a/api/Rendering_OpenGL_ScalarBarActor.html +++ b/api/Rendering_OpenGL_ScalarBarActor.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_Shader.html b/api/Rendering_OpenGL_Shader.html index 401ed546fba..df18fd27018 100644 --- a/api/Rendering_OpenGL_Shader.html +++ b/api/Rendering_OpenGL_Shader.html @@ -48,8 +48,8 @@ - - + + @@ -124,7 +124,7 @@

diff --git a/api/Rendering_OpenGL_ShaderCache.html b/api/Rendering_OpenGL_ShaderCache.html index 313071a4c30..8df68530155 100644 --- a/api/Rendering_OpenGL_ShaderCache.html +++ b/api/Rendering_OpenGL_ShaderCache.html @@ -48,8 +48,8 @@ - - + + @@ -124,7 +124,7 @@

diff --git a/api/Rendering_OpenGL_ShaderProgram.html b/api/Rendering_OpenGL_ShaderProgram.html index 6b1698b2c1d..71a19eb6d89 100644 --- a/api/Rendering_OpenGL_ShaderProgram.html +++ b/api/Rendering_OpenGL_ShaderProgram.html @@ -48,8 +48,8 @@ - - + + @@ -178,7 +178,7 @@

diff --git a/api/Rendering_OpenGL_Skybox.html b/api/Rendering_OpenGL_Skybox.html index 73ba4e4989f..5ae5e007341 100644 --- a/api/Rendering_OpenGL_Skybox.html +++ b/api/Rendering_OpenGL_Skybox.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_SphereMapper.html b/api/Rendering_OpenGL_SphereMapper.html index 28c71705e00..11507b6766d 100644 --- a/api/Rendering_OpenGL_SphereMapper.html +++ b/api/Rendering_OpenGL_SphereMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/api/Rendering_OpenGL_StickMapper.html b/api/Rendering_OpenGL_StickMapper.html index 6b5b1ba77d7..3cfa327493f 100644 --- a/api/Rendering_OpenGL_StickMapper.html +++ b/api/Rendering_OpenGL_StickMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/api/Rendering_OpenGL_SurfaceLIC.html b/api/Rendering_OpenGL_SurfaceLIC.html index 2bdda3f5761..35899f983ea 100644 --- a/api/Rendering_OpenGL_SurfaceLIC.html +++ b/api/Rendering_OpenGL_SurfaceLIC.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_Texture.html b/api/Rendering_OpenGL_Texture.html index c7fc6768592..d501a455e28 100644 --- a/api/Rendering_OpenGL_Texture.html +++ b/api/Rendering_OpenGL_Texture.html @@ -48,8 +48,8 @@ - - + + @@ -1073,7 +1073,7 @@

diff --git a/api/Rendering_OpenGL_TextureUnitManager.html b/api/Rendering_OpenGL_TextureUnitManager.html index fed1c22151c..9de2ce3bfa5 100644 --- a/api/Rendering_OpenGL_TextureUnitManager.html +++ b/api/Rendering_OpenGL_TextureUnitManager.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_OpenGL_VertexArrayObject.html b/api/Rendering_OpenGL_VertexArrayObject.html index ce867435279..7278cb22667 100644 --- a/api/Rendering_OpenGL_VertexArrayObject.html +++ b/api/Rendering_OpenGL_VertexArrayObject.html @@ -48,8 +48,8 @@ - - + + @@ -136,7 +136,7 @@

diff --git a/api/Rendering_OpenGL_ViewNodeFactory.html b/api/Rendering_OpenGL_ViewNodeFactory.html index 81e73920760..0d713b75314 100644 --- a/api/Rendering_OpenGL_ViewNodeFactory.html +++ b/api/Rendering_OpenGL_ViewNodeFactory.html @@ -48,8 +48,8 @@ - - + + @@ -121,7 +121,7 @@

diff --git a/api/Rendering_OpenGL_Volume.html b/api/Rendering_OpenGL_Volume.html index 765ff0120ad..d0362b3baa4 100644 --- a/api/Rendering_OpenGL_Volume.html +++ b/api/Rendering_OpenGL_Volume.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_OpenGL_VolumeMapper.html b/api/Rendering_OpenGL_VolumeMapper.html index 14513293489..db4fdca0a2a 100644 --- a/api/Rendering_OpenGL_VolumeMapper.html +++ b/api/Rendering_OpenGL_VolumeMapper.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_OpenGL_glsl.html b/api/Rendering_OpenGL_glsl.html index 9c63d28c9f3..4155f5a4cdb 100644 --- a/api/Rendering_OpenGL_glsl.html +++ b/api/Rendering_OpenGL_glsl.html @@ -48,8 +48,8 @@ - - + + @@ -127,7 +127,7 @@

diff --git a/api/Rendering_SceneGraph_RenderPass.html b/api/Rendering_SceneGraph_RenderPass.html index 95ad7e80b97..d6d7d8919bc 100644 --- a/api/Rendering_SceneGraph_RenderPass.html +++ b/api/Rendering_SceneGraph_RenderPass.html @@ -48,8 +48,8 @@ - - + + @@ -268,7 +268,7 @@

diff --git a/api/Rendering_SceneGraph_RenderWindowViewNode.html b/api/Rendering_SceneGraph_RenderWindowViewNode.html index d652a6873d3..1149e9ec7ff 100644 --- a/api/Rendering_SceneGraph_RenderWindowViewNode.html +++ b/api/Rendering_SceneGraph_RenderWindowViewNode.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_SceneGraph_ViewNode.html b/api/Rendering_SceneGraph_ViewNode.html index fe17e1cc394..b0234461506 100644 --- a/api/Rendering_SceneGraph_ViewNode.html +++ b/api/Rendering_SceneGraph_ViewNode.html @@ -48,8 +48,8 @@ - - + + @@ -421,7 +421,7 @@

diff --git a/api/Rendering_SceneGraph_ViewNodeFactory.html b/api/Rendering_SceneGraph_ViewNodeFactory.html index 13b8e1ba692..beee55900d1 100644 --- a/api/Rendering_SceneGraph_ViewNodeFactory.html +++ b/api/Rendering_SceneGraph_ViewNodeFactory.html @@ -48,8 +48,8 @@ - - + + @@ -183,7 +183,7 @@

diff --git a/api/Rendering_WebGPU_Actor.html b/api/Rendering_WebGPU_Actor.html index ce79df97cf5..728949eb453 100644 --- a/api/Rendering_WebGPU_Actor.html +++ b/api/Rendering_WebGPU_Actor.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Actor2D.html b/api/Rendering_WebGPU_Actor2D.html index 85724e0e917..6a9408283a5 100644 --- a/api/Rendering_WebGPU_Actor2D.html +++ b/api/Rendering_WebGPU_Actor2D.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_BindGroup.html b/api/Rendering_WebGPU_BindGroup.html index f460966c684..56f8edd219f 100644 --- a/api/Rendering_WebGPU_BindGroup.html +++ b/api/Rendering_WebGPU_BindGroup.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Buffer.html b/api/Rendering_WebGPU_Buffer.html index 66b654dda74..b755524b695 100644 --- a/api/Rendering_WebGPU_Buffer.html +++ b/api/Rendering_WebGPU_Buffer.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_BufferManager.html b/api/Rendering_WebGPU_BufferManager.html index b06f4d2d408..0ff628a658a 100644 --- a/api/Rendering_WebGPU_BufferManager.html +++ b/api/Rendering_WebGPU_BufferManager.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_WebGPU_Camera.html b/api/Rendering_WebGPU_Camera.html index 73244b1c51c..378aa282790 100644 --- a/api/Rendering_WebGPU_Camera.html +++ b/api/Rendering_WebGPU_Camera.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_CellArrayMapper.html b/api/Rendering_WebGPU_CellArrayMapper.html index 1f9d9cc026d..c382a99cccf 100644 --- a/api/Rendering_WebGPU_CellArrayMapper.html +++ b/api/Rendering_WebGPU_CellArrayMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_CubeAxesActor.html b/api/Rendering_WebGPU_CubeAxesActor.html index 6556ee40fe0..0d1df074fb8 100644 --- a/api/Rendering_WebGPU_CubeAxesActor.html +++ b/api/Rendering_WebGPU_CubeAxesActor.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Device.html b/api/Rendering_WebGPU_Device.html index 9311cee1989..8fb9c727b4c 100644 --- a/api/Rendering_WebGPU_Device.html +++ b/api/Rendering_WebGPU_Device.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_ForwardPass.html b/api/Rendering_WebGPU_ForwardPass.html index 7181d49044a..a1eada20847 100644 --- a/api/Rendering_WebGPU_ForwardPass.html +++ b/api/Rendering_WebGPU_ForwardPass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_FullScreenQuad.html b/api/Rendering_WebGPU_FullScreenQuad.html index dce8bbc8302..95f493bbae5 100644 --- a/api/Rendering_WebGPU_FullScreenQuad.html +++ b/api/Rendering_WebGPU_FullScreenQuad.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Glyph3DMapper.html b/api/Rendering_WebGPU_Glyph3DMapper.html index 866a6a24ad2..d2b5198586a 100644 --- a/api/Rendering_WebGPU_Glyph3DMapper.html +++ b/api/Rendering_WebGPU_Glyph3DMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_HardwareSelectionPass.html b/api/Rendering_WebGPU_HardwareSelectionPass.html index 1a6c38e2f0b..9b4b29f5ecd 100644 --- a/api/Rendering_WebGPU_HardwareSelectionPass.html +++ b/api/Rendering_WebGPU_HardwareSelectionPass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_HardwareSelector.html b/api/Rendering_WebGPU_HardwareSelector.html index 0598560e26d..ca0c26953d4 100644 --- a/api/Rendering_WebGPU_HardwareSelector.html +++ b/api/Rendering_WebGPU_HardwareSelector.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_ImageMapper.html b/api/Rendering_WebGPU_ImageMapper.html index 590abe1016e..507cfaf7b3e 100644 --- a/api/Rendering_WebGPU_ImageMapper.html +++ b/api/Rendering_WebGPU_ImageMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_ImageSlice.html b/api/Rendering_WebGPU_ImageSlice.html index 8a73f78312e..fc515613f0f 100644 --- a/api/Rendering_WebGPU_ImageSlice.html +++ b/api/Rendering_WebGPU_ImageSlice.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_IndexBuffer.html b/api/Rendering_WebGPU_IndexBuffer.html index 3fd0d9e271a..e74b2fde475 100644 --- a/api/Rendering_WebGPU_IndexBuffer.html +++ b/api/Rendering_WebGPU_IndexBuffer.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_OpaquePass.html b/api/Rendering_WebGPU_OpaquePass.html index 773fdf67ca4..7bf72d00e50 100644 --- a/api/Rendering_WebGPU_OpaquePass.html +++ b/api/Rendering_WebGPU_OpaquePass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_OrderIndependentTranslucentPass.html b/api/Rendering_WebGPU_OrderIndependentTranslucentPass.html index b2a6d7d9167..ad65561e1d7 100644 --- a/api/Rendering_WebGPU_OrderIndependentTranslucentPass.html +++ b/api/Rendering_WebGPU_OrderIndependentTranslucentPass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Pipeline.html b/api/Rendering_WebGPU_Pipeline.html index 0653493a59b..e92c5ea5e70 100644 --- a/api/Rendering_WebGPU_Pipeline.html +++ b/api/Rendering_WebGPU_Pipeline.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_PixelSpaceCallbackMapper.html b/api/Rendering_WebGPU_PixelSpaceCallbackMapper.html index 380d3914663..1244865a713 100644 --- a/api/Rendering_WebGPU_PixelSpaceCallbackMapper.html +++ b/api/Rendering_WebGPU_PixelSpaceCallbackMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_PolyDataMapper.html b/api/Rendering_WebGPU_PolyDataMapper.html index f1aeb971370..d34a1ced918 100644 --- a/api/Rendering_WebGPU_PolyDataMapper.html +++ b/api/Rendering_WebGPU_PolyDataMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_PolyDataMapper2D.html b/api/Rendering_WebGPU_PolyDataMapper2D.html index eaa176917b4..75856b7a32b 100644 --- a/api/Rendering_WebGPU_PolyDataMapper2D.html +++ b/api/Rendering_WebGPU_PolyDataMapper2D.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Profiles.html b/api/Rendering_WebGPU_Profiles.html index 0b72b8f26b3..977779089db 100644 --- a/api/Rendering_WebGPU_Profiles.html +++ b/api/Rendering_WebGPU_Profiles.html @@ -48,8 +48,8 @@ - - + + @@ -122,7 +122,7 @@

diff --git a/api/Rendering_WebGPU_RenderEncoder.html b/api/Rendering_WebGPU_RenderEncoder.html index 661a9522afe..a4dd192fcd2 100644 --- a/api/Rendering_WebGPU_RenderEncoder.html +++ b/api/Rendering_WebGPU_RenderEncoder.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_RenderWindow.html b/api/Rendering_WebGPU_RenderWindow.html index b9f99a3952b..574debc5a57 100644 --- a/api/Rendering_WebGPU_RenderWindow.html +++ b/api/Rendering_WebGPU_RenderWindow.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Rendering_WebGPU_Renderer.html b/api/Rendering_WebGPU_Renderer.html index 5ce7bdec30b..1c99700c65e 100644 --- a/api/Rendering_WebGPU_Renderer.html +++ b/api/Rendering_WebGPU_Renderer.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Sampler.html b/api/Rendering_WebGPU_Sampler.html index 50f896ab0ff..4de276d1242 100644 --- a/api/Rendering_WebGPU_Sampler.html +++ b/api/Rendering_WebGPU_Sampler.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_ScalarBarActor.html b/api/Rendering_WebGPU_ScalarBarActor.html index e1419b4b40c..95ba8ea38c1 100644 --- a/api/Rendering_WebGPU_ScalarBarActor.html +++ b/api/Rendering_WebGPU_ScalarBarActor.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_ShaderCache.html b/api/Rendering_WebGPU_ShaderCache.html index bafd1beb249..70c84f0a8fe 100644 --- a/api/Rendering_WebGPU_ShaderCache.html +++ b/api/Rendering_WebGPU_ShaderCache.html @@ -48,8 +48,8 @@ - - + + @@ -118,7 +118,7 @@

diff --git a/api/Rendering_WebGPU_ShaderDescription.html b/api/Rendering_WebGPU_ShaderDescription.html index 487c7ed7285..7fcd31b1cb2 100644 --- a/api/Rendering_WebGPU_ShaderDescription.html +++ b/api/Rendering_WebGPU_ShaderDescription.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_ShaderModule.html b/api/Rendering_WebGPU_ShaderModule.html index bdbf53aab2a..99391f8c7d5 100644 --- a/api/Rendering_WebGPU_ShaderModule.html +++ b/api/Rendering_WebGPU_ShaderModule.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_SimpleMapper.html b/api/Rendering_WebGPU_SimpleMapper.html index c97f0074d62..9802bbe1009 100644 --- a/api/Rendering_WebGPU_SimpleMapper.html +++ b/api/Rendering_WebGPU_SimpleMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_SphereMapper.html b/api/Rendering_WebGPU_SphereMapper.html index 58f72e6f37a..2abd569a5b7 100644 --- a/api/Rendering_WebGPU_SphereMapper.html +++ b/api/Rendering_WebGPU_SphereMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_StickMapper.html b/api/Rendering_WebGPU_StickMapper.html index b2f65b7bbf8..3d4d925dbfa 100644 --- a/api/Rendering_WebGPU_StickMapper.html +++ b/api/Rendering_WebGPU_StickMapper.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_StorageBuffer.html b/api/Rendering_WebGPU_StorageBuffer.html index 5d64126617b..37a5027f492 100644 --- a/api/Rendering_WebGPU_StorageBuffer.html +++ b/api/Rendering_WebGPU_StorageBuffer.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Texture.html b/api/Rendering_WebGPU_Texture.html index b7b54b8546d..94d850f2ed5 100644 --- a/api/Rendering_WebGPU_Texture.html +++ b/api/Rendering_WebGPU_Texture.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_TextureManager.html b/api/Rendering_WebGPU_TextureManager.html index 19d69aec66a..7a19f0aca64 100644 --- a/api/Rendering_WebGPU_TextureManager.html +++ b/api/Rendering_WebGPU_TextureManager.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_TextureView.html b/api/Rendering_WebGPU_TextureView.html index 1e52e1196a3..6ca3c0f9aa4 100644 --- a/api/Rendering_WebGPU_TextureView.html +++ b/api/Rendering_WebGPU_TextureView.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Types.html b/api/Rendering_WebGPU_Types.html index 3772bfc1706..139cdfa0893 100644 --- a/api/Rendering_WebGPU_Types.html +++ b/api/Rendering_WebGPU_Types.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_UniformBuffer.html b/api/Rendering_WebGPU_UniformBuffer.html index 86bd03c3394..2f0108e0bcb 100644 --- a/api/Rendering_WebGPU_UniformBuffer.html +++ b/api/Rendering_WebGPU_UniformBuffer.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_VertexInput.html b/api/Rendering_WebGPU_VertexInput.html index 741872c979b..82c6d397aed 100644 --- a/api/Rendering_WebGPU_VertexInput.html +++ b/api/Rendering_WebGPU_VertexInput.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_ViewNodeFactory.html b/api/Rendering_WebGPU_ViewNodeFactory.html index cf93ed76179..fac0fc4264c 100644 --- a/api/Rendering_WebGPU_ViewNodeFactory.html +++ b/api/Rendering_WebGPU_ViewNodeFactory.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_Volume.html b/api/Rendering_WebGPU_Volume.html index 3948b2fe227..ed4996e9e03 100644 --- a/api/Rendering_WebGPU_Volume.html +++ b/api/Rendering_WebGPU_Volume.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_VolumePass.html b/api/Rendering_WebGPU_VolumePass.html index 722a7d50674..477392a9154 100644 --- a/api/Rendering_WebGPU_VolumePass.html +++ b/api/Rendering_WebGPU_VolumePass.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebGPU_VolumePassFSQ.html b/api/Rendering_WebGPU_VolumePassFSQ.html index ea4985a1c39..4e2c012fd6b 100644 --- a/api/Rendering_WebGPU_VolumePassFSQ.html +++ b/api/Rendering_WebGPU_VolumePassFSQ.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Rendering_WebXR_RenderWindowHelper.html b/api/Rendering_WebXR_RenderWindowHelper.html index 50399b6581c..b9e573beae1 100644 --- a/api/Rendering_WebXR_RenderWindowHelper.html +++ b/api/Rendering_WebXR_RenderWindowHelper.html @@ -48,8 +48,8 @@ - - + + @@ -198,7 +198,7 @@

diff --git a/api/Testing_Examples_ActorSerialization.html b/api/Testing_Examples_ActorSerialization.html index 73f7f073287..7d13ca38189 100644 --- a/api/Testing_Examples_ActorSerialization.html +++ b/api/Testing_Examples_ActorSerialization.html @@ -48,8 +48,8 @@ - - + + @@ -116,7 +116,7 @@

ActorSerialization

Source

diff --git a/api/Testing_Examples_PipelineExecution.html b/api/Testing_Examples_PipelineExecution.html index 84b08203b32..4d105c470b5 100644 --- a/api/Testing_Examples_PipelineExecution.html +++ b/api/Testing_Examples_PipelineExecution.html @@ -48,8 +48,8 @@ - - + + @@ -116,7 +116,7 @@

PipelineExecution

Source

diff --git a/api/Testing_Examples_PolyDataSerialization.html b/api/Testing_Examples_PolyDataSerialization.html index 4586237c6f2..d66768e0c65 100644 --- a/api/Testing_Examples_PolyDataSerialization.html +++ b/api/Testing_Examples_PolyDataSerialization.html @@ -48,8 +48,8 @@ - - + + @@ -116,7 +116,7 @@

PolyDataSerialization

Source

diff --git a/api/Testing_Examples_StandaloneSceneLoader.html b/api/Testing_Examples_StandaloneSceneLoader.html index 712357223ab..efa31a45609 100644 --- a/api/Testing_Examples_StandaloneSceneLoader.html +++ b/api/Testing_Examples_StandaloneSceneLoader.html @@ -48,8 +48,8 @@ - - + + @@ -116,7 +116,7 @@

StandaloneSceneLoader

Source

diff --git a/api/Testing_Examples_WindTunnel.html b/api/Testing_Examples_WindTunnel.html index 89581aee411..466a4946e9c 100644 --- a/api/Testing_Examples_WindTunnel.html +++ b/api/Testing_Examples_WindTunnel.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Widgets_Core_AbstractWidget.html b/api/Widgets_Core_AbstractWidget.html index a88e4a0d533..b09aa151c9f 100644 --- a/api/Widgets_Core_AbstractWidget.html +++ b/api/Widgets_Core_AbstractWidget.html @@ -48,8 +48,8 @@ - - + + @@ -372,7 +372,7 @@

diff --git a/api/Widgets_Core_AbstractWidgetFactory.html b/api/Widgets_Core_AbstractWidgetFactory.html index 4a8c3d2468d..12248298ed7 100644 --- a/api/Widgets_Core_AbstractWidgetFactory.html +++ b/api/Widgets_Core_AbstractWidgetFactory.html @@ -48,8 +48,8 @@ - - + + @@ -298,7 +298,7 @@

diff --git a/api/Widgets_Core_StateBuilder.html b/api/Widgets_Core_StateBuilder.html index 36fe3e12d58..3dcbdc8c0ac 100644 --- a/api/Widgets_Core_StateBuilder.html +++ b/api/Widgets_Core_StateBuilder.html @@ -48,8 +48,8 @@ - - + + @@ -132,7 +132,7 @@

diff --git a/api/Widgets_Core_WidgetManager.html b/api/Widgets_Core_WidgetManager.html index e490c7172de..a383a41f819 100644 --- a/api/Widgets_Core_WidgetManager.html +++ b/api/Widgets_Core_WidgetManager.html @@ -48,8 +48,8 @@ - - + + @@ -330,7 +330,7 @@

diff --git a/api/Widgets_Core_WidgetState.html b/api/Widgets_Core_WidgetState.html index 36601ed5f15..4d8ae5d97f0 100644 --- a/api/Widgets_Core_WidgetState.html +++ b/api/Widgets_Core_WidgetState.html @@ -48,8 +48,8 @@ - - + + @@ -259,7 +259,7 @@

diff --git a/api/Widgets_Manipulators_AbstractManipulator.html b/api/Widgets_Manipulators_AbstractManipulator.html index 0f021d2f68d..53349d0e6c2 100644 --- a/api/Widgets_Manipulators_AbstractManipulator.html +++ b/api/Widgets_Manipulators_AbstractManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -602,7 +602,7 @@

diff --git a/api/Widgets_Manipulators_CPRManipulator.html b/api/Widgets_Manipulators_CPRManipulator.html index de2ce1f86f7..46fc68b1c25 100644 --- a/api/Widgets_Manipulators_CPRManipulator.html +++ b/api/Widgets_Manipulators_CPRManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Manipulators_LineManipulator.html b/api/Widgets_Manipulators_LineManipulator.html index 59c57b6f3f2..fce23ac8eaf 100644 --- a/api/Widgets_Manipulators_LineManipulator.html +++ b/api/Widgets_Manipulators_LineManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -195,7 +195,7 @@

diff --git a/api/Widgets_Manipulators_PickerManipulator.html b/api/Widgets_Manipulators_PickerManipulator.html index 861f9303092..1a5937fe81b 100644 --- a/api/Widgets_Manipulators_PickerManipulator.html +++ b/api/Widgets_Manipulators_PickerManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -149,7 +149,7 @@

- + diff --git a/api/Widgets_Manipulators_PlaneManipulator.html b/api/Widgets_Manipulators_PlaneManipulator.html index 9919c0a9d18..b91a8b10642 100644 --- a/api/Widgets_Manipulators_PlaneManipulator.html +++ b/api/Widgets_Manipulators_PlaneManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -195,7 +195,7 @@

diff --git a/api/Widgets_Manipulators_TrackballManipulator.html b/api/Widgets_Manipulators_TrackballManipulator.html index 758e15befd4..0c2cf8e2d70 100644 --- a/api/Widgets_Manipulators_TrackballManipulator.html +++ b/api/Widgets_Manipulators_TrackballManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -207,7 +207,7 @@

diff --git a/api/Widgets_Representations_ArrowHandleRepresentation.html b/api/Widgets_Representations_ArrowHandleRepresentation.html index 75926b01d1e..4d9acae61d6 100644 --- a/api/Widgets_Representations_ArrowHandleRepresentation.html +++ b/api/Widgets_Representations_ArrowHandleRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_CircleContextRepresentation.html b/api/Widgets_Representations_CircleContextRepresentation.html index 8b56d3b0e3b..c8426b5f4ab 100644 --- a/api/Widgets_Representations_CircleContextRepresentation.html +++ b/api/Widgets_Representations_CircleContextRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_ContextRepresentation.html b/api/Widgets_Representations_ContextRepresentation.html index ee681908b17..2d7742891e7 100644 --- a/api/Widgets_Representations_ContextRepresentation.html +++ b/api/Widgets_Representations_ContextRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_ConvexFaceContextRepresentation.html b/api/Widgets_Representations_ConvexFaceContextRepresentation.html index 4f4c2d563c8..7f47332f3c2 100644 --- a/api/Widgets_Representations_ConvexFaceContextRepresentation.html +++ b/api/Widgets_Representations_ConvexFaceContextRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_CroppingOutlineRepresentation.html b/api/Widgets_Representations_CroppingOutlineRepresentation.html index 19c354a05e9..4eb8786131f 100644 --- a/api/Widgets_Representations_CroppingOutlineRepresentation.html +++ b/api/Widgets_Representations_CroppingOutlineRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_CubeHandleRepresentation.html b/api/Widgets_Representations_CubeHandleRepresentation.html index fa4070f6bdc..962eb58ddd7 100644 --- a/api/Widgets_Representations_CubeHandleRepresentation.html +++ b/api/Widgets_Representations_CubeHandleRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_GlyphRepresentation.html b/api/Widgets_Representations_GlyphRepresentation.html index efb45f9d7f8..533ba96783f 100644 --- a/api/Widgets_Representations_GlyphRepresentation.html +++ b/api/Widgets_Representations_GlyphRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_HandleRepresentation.html b/api/Widgets_Representations_HandleRepresentation.html index 4965405e0ff..11eec7f7901 100644 --- a/api/Widgets_Representations_HandleRepresentation.html +++ b/api/Widgets_Representations_HandleRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_ImplicitPlaneRepresentation.html b/api/Widgets_Representations_ImplicitPlaneRepresentation.html index 71ee536b9cd..7f25d474548 100644 --- a/api/Widgets_Representations_ImplicitPlaneRepresentation.html +++ b/api/Widgets_Representations_ImplicitPlaneRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_LineHandleRepresentation.html b/api/Widgets_Representations_LineHandleRepresentation.html index 3557edeb3b7..766986cf87a 100644 --- a/api/Widgets_Representations_LineHandleRepresentation.html +++ b/api/Widgets_Representations_LineHandleRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_OutlineContextRepresentation.html b/api/Widgets_Representations_OutlineContextRepresentation.html index c4ab173601a..9410f840394 100644 --- a/api/Widgets_Representations_OutlineContextRepresentation.html +++ b/api/Widgets_Representations_OutlineContextRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_PolyLineRepresentation.html b/api/Widgets_Representations_PolyLineRepresentation.html index 3db5b0f830b..70734f7f8e2 100644 --- a/api/Widgets_Representations_PolyLineRepresentation.html +++ b/api/Widgets_Representations_PolyLineRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_RectangleContextRepresentation.html b/api/Widgets_Representations_RectangleContextRepresentation.html index 9665a270d48..e740b439f79 100644 --- a/api/Widgets_Representations_RectangleContextRepresentation.html +++ b/api/Widgets_Representations_RectangleContextRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_SphereContextRepresentation.html b/api/Widgets_Representations_SphereContextRepresentation.html index ea62702b4cb..17ad29bce2e 100644 --- a/api/Widgets_Representations_SphereContextRepresentation.html +++ b/api/Widgets_Representations_SphereContextRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_SphereHandleRepresentation.html b/api/Widgets_Representations_SphereHandleRepresentation.html index 7190371014a..9ea26d911c4 100644 --- a/api/Widgets_Representations_SphereHandleRepresentation.html +++ b/api/Widgets_Representations_SphereHandleRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_SplineContextRepresentation.html b/api/Widgets_Representations_SplineContextRepresentation.html index 00ca34b28ab..8053e1a06e6 100644 --- a/api/Widgets_Representations_SplineContextRepresentation.html +++ b/api/Widgets_Representations_SplineContextRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -117,7 +117,7 @@

diff --git a/api/Widgets_Representations_WidgetRepresentation.html b/api/Widgets_Representations_WidgetRepresentation.html index 685de427b63..c0ad5054999 100644 --- a/api/Widgets_Representations_WidgetRepresentation.html +++ b/api/Widgets_Representations_WidgetRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -251,7 +251,7 @@

diff --git a/api/Widgets_Widgets3D_AngleWidget.html b/api/Widgets_Widgets3D_AngleWidget.html index ade5a5eb4d0..0837799ef06 100644 --- a/api/Widgets_Widgets3D_AngleWidget.html +++ b/api/Widgets_Widgets3D_AngleWidget.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Widgets_Widgets3D_EllipseWidget.html b/api/Widgets_Widgets3D_EllipseWidget.html index 0398fa3cfc7..aee10e53397 100644 --- a/api/Widgets_Widgets3D_EllipseWidget.html +++ b/api/Widgets_Widgets3D_EllipseWidget.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Widgets_Widgets3D_ImageCroppingWidget.html b/api/Widgets_Widgets3D_ImageCroppingWidget.html index dbd5233943c..b44b168c920 100644 --- a/api/Widgets_Widgets3D_ImageCroppingWidget.html +++ b/api/Widgets_Widgets3D_ImageCroppingWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/api/Widgets_Widgets3D_ImplicitPlaneWidget.html b/api/Widgets_Widgets3D_ImplicitPlaneWidget.html index 3066c7d6c4a..700d90986c5 100644 --- a/api/Widgets_Widgets3D_ImplicitPlaneWidget.html +++ b/api/Widgets_Widgets3D_ImplicitPlaneWidget.html @@ -48,8 +48,8 @@ - - + + @@ -122,7 +122,7 @@

diff --git a/api/Widgets_Widgets3D_InteractiveOrientationWidget.html b/api/Widgets_Widgets3D_InteractiveOrientationWidget.html index 79530aed84e..1bab0882543 100644 --- a/api/Widgets_Widgets3D_InteractiveOrientationWidget.html +++ b/api/Widgets_Widgets3D_InteractiveOrientationWidget.html @@ -48,8 +48,8 @@ - - + + @@ -155,7 +155,7 @@

diff --git a/api/Widgets_Widgets3D_LabelWidget.html b/api/Widgets_Widgets3D_LabelWidget.html index 94a19808a50..4ebe1d900c1 100644 --- a/api/Widgets_Widgets3D_LabelWidget.html +++ b/api/Widgets_Widgets3D_LabelWidget.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Widgets_Widgets3D_LineWidget.html b/api/Widgets_Widgets3D_LineWidget.html index 668e9112321..3ff0807de79 100644 --- a/api/Widgets_Widgets3D_LineWidget.html +++ b/api/Widgets_Widgets3D_LineWidget.html @@ -48,8 +48,8 @@ - - + + @@ -133,7 +133,7 @@

diff --git a/api/Widgets_Widgets3D_PaintWidget.html b/api/Widgets_Widgets3D_PaintWidget.html index ccb2021ec2d..d9ce74fcf73 100644 --- a/api/Widgets_Widgets3D_PaintWidget.html +++ b/api/Widgets_Widgets3D_PaintWidget.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Widgets_Widgets3D_PolyLineWidget.html b/api/Widgets_Widgets3D_PolyLineWidget.html index 624ee549268..bd9ec4d5d94 100644 --- a/api/Widgets_Widgets3D_PolyLineWidget.html +++ b/api/Widgets_Widgets3D_PolyLineWidget.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Widgets_Widgets3D_RectangleWidget.html b/api/Widgets_Widgets3D_RectangleWidget.html index 452c0bc4219..97380b22000 100644 --- a/api/Widgets_Widgets3D_RectangleWidget.html +++ b/api/Widgets_Widgets3D_RectangleWidget.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Widgets_Widgets3D_ResliceCursorWidget.html b/api/Widgets_Widgets3D_ResliceCursorWidget.html index d17e9670343..5fa97dace63 100644 --- a/api/Widgets_Widgets3D_ResliceCursorWidget.html +++ b/api/Widgets_Widgets3D_ResliceCursorWidget.html @@ -48,8 +48,8 @@ - - + + @@ -187,7 +187,7 @@

diff --git a/api/Widgets_Widgets3D_SeedWidget.html b/api/Widgets_Widgets3D_SeedWidget.html index 756041a548f..18b72477427 100644 --- a/api/Widgets_Widgets3D_SeedWidget.html +++ b/api/Widgets_Widgets3D_SeedWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/api/Widgets_Widgets3D_ShapeWidget.html b/api/Widgets_Widgets3D_ShapeWidget.html index 475f1d8855d..52fadb337cc 100644 --- a/api/Widgets_Widgets3D_ShapeWidget.html +++ b/api/Widgets_Widgets3D_ShapeWidget.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/Widgets_Widgets3D_SphereWidget.html b/api/Widgets_Widgets3D_SphereWidget.html index bdde746223f..58e1e6070bf 100644 --- a/api/Widgets_Widgets3D_SphereWidget.html +++ b/api/Widgets_Widgets3D_SphereWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/api/Widgets_Widgets3D_SplineWidget.html b/api/Widgets_Widgets3D_SplineWidget.html index 3e33ebf398b..44719b401fe 100644 --- a/api/Widgets_Widgets3D_SplineWidget.html +++ b/api/Widgets_Widgets3D_SplineWidget.html @@ -48,8 +48,8 @@ - - + + @@ -119,7 +119,7 @@

diff --git a/api/index.html b/api/index.html index 2fc5b330ef4..ec16034651b 100644 --- a/api/index.html +++ b/api/index.html @@ -49,8 +49,8 @@ - - + + @@ -146,7 +146,7 @@

API

diff --git a/atom.xml b/atom.xml index 10468d9504f..1ef586efef0 100644 --- a/atom.xml +++ b/atom.xml @@ -6,7 +6,7 @@ - 2024-11-13T17:24:26.441Z + 2024-11-20T14:48:42.071Z https://kitware.github.io/vtk-js/ @@ -21,7 +21,7 @@ https://kitware.github.io/vtk-js/2016/04/29/kw-doc/ 2016-04-29T00:00:00.000Z - 2024-11-13T17:24:26.441Z + 2024-11-20T14:48:42.071Z Thanks for using kw-doc which is based on Hexo and its template from its own documentation.

]]>
diff --git a/coverage/Sources/Common/Core/Base64/index.html b/coverage/Sources/Common/Core/Base64/index.html index 95ba3155185..2068701229a 100644 --- a/coverage/Sources/Common/Core/Base64/index.html +++ b/coverage/Sources/Common/Core/Base64/index.html @@ -101,7 +101,7 @@

All files Sources/Common/Core/Base64 Code coverage generated by istanbul - at Wed Nov 13 2024 17:22:00 GMT+0000 (Coordinated Universal Time) + at Wed Nov 20 2024 14:46:11 GMT+0000 (Coordinated Universal Time) diff --git a/examples/GLTFImporter/GLTFImporter.js b/examples/GLTFImporter/GLTFImporter.js index 754e71eb11c..ae348a8d32e 100644 --- a/examples/GLTFImporter/GLTFImporter.js +++ b/examples/GLTFImporter/GLTFImporter.js @@ -1 +1 @@ -!function(){var e={974:function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,{add:function(){return Y},adjoint:function(){return m},clone:function(){return l},copy:function(){return c},create:function(){return s},determinant:function(){return h},equals:function(){return te},exactEquals:function(){return ee},frob:function(){return X},fromQuat:function(){return N},fromQuat2:function(){return R},fromRotation:function(){return P},fromRotationTranslation:function(){return M},fromRotationTranslationScale:function(){return V},fromRotationTranslationScaleOrigin:function(){return _},fromScaling:function(){return w},fromTranslation:function(){return A},fromValues:function(){return u},fromXRotation:function(){return I},fromYRotation:function(){return O},fromZRotation:function(){return E},frustum:function(){return F},getRotation:function(){return L},getScaling:function(){return B},getTranslation:function(){return D},identity:function(){return p},invert:function(){return g},lookAt:function(){return $},mul:function(){return ne},multiply:function(){return v},multiplyScalar:function(){return Z},multiplyScalarAndAdd:function(){return J},ortho:function(){return H},orthoNO:function(){return W},orthoZO:function(){return j},perspective:function(){return U},perspectiveFromFieldOfView:function(){return z},perspectiveNO:function(){return k},perspectiveZO:function(){return G},rotate:function(){return T},rotateX:function(){return x},rotateY:function(){return S},rotateZ:function(){return C},scale:function(){return y},set:function(){return d},str:function(){return q},sub:function(){return re},subtract:function(){return Q},targetTo:function(){return K},translate:function(){return b},transpose:function(){return f}});var o={};n.r(o),n.d(o,{add:function(){return Oe},adjoint:function(){return fe},clone:function(){return ie},copy:function(){return se},create:function(){return oe},determinant:function(){return ge},equals:function(){return Be},exactEquals:function(){return De},frob:function(){return Ie},fromMat2d:function(){return Se},fromMat4:function(){return ae},fromQuat:function(){return Ce},fromRotation:function(){return Te},fromScaling:function(){return xe},fromTranslation:function(){return ye},fromValues:function(){return le},identity:function(){return ue},invert:function(){return pe},mul:function(){return Le},multiply:function(){return me},multiplyScalar:function(){return Me},multiplyScalarAndAdd:function(){return Re},normalFromMat4:function(){return Ae},projection:function(){return we},rotate:function(){return ve},scale:function(){return be},set:function(){return ce},str:function(){return Pe},sub:function(){return Ve},subtract:function(){return Ee},translate:function(){return he},transpose:function(){return de}});var a=1e-6,i="undefined"!=typeof Float32Array?Float32Array:Array;function s(){var e=new i(16);return i!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function l(e){var t=new i(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function c(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function u(e,t,n,r,o,a,s,l,c,u,d,p,f,g,m,h){var v=new i(16);return v[0]=e,v[1]=t,v[2]=n,v[3]=r,v[4]=o,v[5]=a,v[6]=s,v[7]=l,v[8]=c,v[9]=u,v[10]=d,v[11]=p,v[12]=f,v[13]=g,v[14]=m,v[15]=h,v}function d(e,t,n,r,o,a,i,s,l,c,u,d,p,f,g,m,h){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e[9]=u,e[10]=d,e[11]=p,e[12]=f,e[13]=g,e[14]=m,e[15]=h,e}function p(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function f(e,t){if(e===t){var n=t[1],r=t[2],o=t[3],a=t[6],i=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=r,e[9]=a,e[11]=t[14],e[12]=o,e[13]=i,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function g(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],b=n*s-r*i,y=n*l-o*i,T=n*c-a*i,x=r*l-o*s,S=r*c-a*s,C=o*c-a*l,A=u*m-d*g,w=u*h-p*g,P=u*v-f*g,I=d*h-p*m,O=d*v-f*m,E=p*v-f*h,M=b*E-y*O+T*I+x*P-S*w+C*A;return M?(M=1/M,e[0]=(s*E-l*O+c*I)*M,e[1]=(o*O-r*E-a*I)*M,e[2]=(m*C-h*S+v*x)*M,e[3]=(p*S-d*C-f*x)*M,e[4]=(l*P-i*E-c*w)*M,e[5]=(n*E-o*P+a*w)*M,e[6]=(h*T-g*C-v*y)*M,e[7]=(u*C-p*T+f*y)*M,e[8]=(i*O-s*P+c*A)*M,e[9]=(r*P-n*O-a*A)*M,e[10]=(g*S-m*T+v*b)*M,e[11]=(d*T-u*S-f*b)*M,e[12]=(s*w-i*I-l*A)*M,e[13]=(n*I-r*w+o*A)*M,e[14]=(m*y-g*x-h*b)*M,e[15]=(u*x-d*y+p*b)*M,e):null}function m(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15];return e[0]=s*(p*v-f*h)-d*(l*v-c*h)+m*(l*f-c*p),e[1]=-(r*(p*v-f*h)-d*(o*v-a*h)+m*(o*f-a*p)),e[2]=r*(l*v-c*h)-s*(o*v-a*h)+m*(o*c-a*l),e[3]=-(r*(l*f-c*p)-s*(o*f-a*p)+d*(o*c-a*l)),e[4]=-(i*(p*v-f*h)-u*(l*v-c*h)+g*(l*f-c*p)),e[5]=n*(p*v-f*h)-u*(o*v-a*h)+g*(o*f-a*p),e[6]=-(n*(l*v-c*h)-i*(o*v-a*h)+g*(o*c-a*l)),e[7]=n*(l*f-c*p)-i*(o*f-a*p)+u*(o*c-a*l),e[8]=i*(d*v-f*m)-u*(s*v-c*m)+g*(s*f-c*d),e[9]=-(n*(d*v-f*m)-u*(r*v-a*m)+g*(r*f-a*d)),e[10]=n*(s*v-c*m)-i*(r*v-a*m)+g*(r*c-a*s),e[11]=-(n*(s*f-c*d)-i*(r*f-a*d)+u*(r*c-a*s)),e[12]=-(i*(d*h-p*m)-u*(s*h-l*m)+g*(s*p-l*d)),e[13]=n*(d*h-p*m)-u*(r*h-o*m)+g*(r*p-o*d),e[14]=-(n*(s*h-l*m)-i*(r*h-o*m)+g*(r*l-o*s)),e[15]=n*(s*p-l*d)-i*(r*p-o*d)+u*(r*l-o*s),e}function h(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8],u=e[9],d=e[10],p=e[11],f=e[12],g=e[13],m=e[14],h=e[15];return(t*i-n*a)*(d*h-p*m)-(t*s-r*a)*(u*h-p*g)+(t*l-o*a)*(u*m-d*g)+(n*s-r*i)*(c*h-p*f)-(n*l-o*i)*(c*m-d*f)+(r*l-o*s)*(c*g-u*f)}function v(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],m=t[12],h=t[13],v=t[14],b=t[15],y=n[0],T=n[1],x=n[2],S=n[3];return e[0]=y*r+T*s+x*d+S*m,e[1]=y*o+T*l+x*p+S*h,e[2]=y*a+T*c+x*f+S*v,e[3]=y*i+T*u+x*g+S*b,y=n[4],T=n[5],x=n[6],S=n[7],e[4]=y*r+T*s+x*d+S*m,e[5]=y*o+T*l+x*p+S*h,e[6]=y*a+T*c+x*f+S*v,e[7]=y*i+T*u+x*g+S*b,y=n[8],T=n[9],x=n[10],S=n[11],e[8]=y*r+T*s+x*d+S*m,e[9]=y*o+T*l+x*p+S*h,e[10]=y*a+T*c+x*f+S*v,e[11]=y*i+T*u+x*g+S*b,y=n[12],T=n[13],x=n[14],S=n[15],e[12]=y*r+T*s+x*d+S*m,e[13]=y*o+T*l+x*p+S*h,e[14]=y*a+T*c+x*f+S*v,e[15]=y*i+T*u+x*g+S*b,e}function b(e,t,n){var r,o,a,i,s,l,c,u,d,p,f,g,m=n[0],h=n[1],v=n[2];return t===e?(e[12]=t[0]*m+t[4]*h+t[8]*v+t[12],e[13]=t[1]*m+t[5]*h+t[9]*v+t[13],e[14]=t[2]*m+t[6]*h+t[10]*v+t[14],e[15]=t[3]*m+t[7]*h+t[11]*v+t[15]):(r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=c,e[7]=u,e[8]=d,e[9]=p,e[10]=f,e[11]=g,e[12]=r*m+s*h+d*v+t[12],e[13]=o*m+l*h+p*v+t[13],e[14]=a*m+c*h+f*v+t[14],e[15]=i*m+u*h+g*v+t[15]),e}function y(e,t,n){var r=n[0],o=n[1],a=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*o,e[5]=t[5]*o,e[6]=t[6]*o,e[7]=t[7]*o,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function T(e,t,n,r){var o,i,s,l,c,u,d,p,f,g,m,h,v,b,y,T,x,S,C,A,w,P,I,O,E=r[0],M=r[1],R=r[2],D=Math.hypot(E,M,R);return D0?(n[0]=2*(l*s+d*r+c*a-u*o)/p,n[1]=2*(c*s+d*o+u*r-l*a)/p,n[2]=2*(u*s+d*a+l*o-c*r)/p):(n[0]=2*(l*s+d*r+c*a-u*o),n[1]=2*(c*s+d*o+u*r-l*a),n[2]=2*(u*s+d*a+l*o-c*r)),M(e,t,n),e}function D(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function B(e,t){var n=t[0],r=t[1],o=t[2],a=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,o),e[1]=Math.hypot(a,i,s),e[2]=Math.hypot(l,c,u),e}function L(e,t){var n=new i(3);B(n,t);var r=1/n[0],o=1/n[1],a=1/n[2],s=t[0]*r,l=t[1]*o,c=t[2]*a,u=t[4]*r,d=t[5]*o,p=t[6]*a,f=t[8]*r,g=t[9]*o,m=t[10]*a,h=s+d+m,v=0;return h>0?(v=2*Math.sqrt(h+1),e[3]=.25*v,e[0]=(p-g)/v,e[1]=(f-c)/v,e[2]=(l-u)/v):s>d&&s>m?(v=2*Math.sqrt(1+s-d-m),e[3]=(p-g)/v,e[0]=.25*v,e[1]=(l+u)/v,e[2]=(f+c)/v):d>m?(v=2*Math.sqrt(1+d-s-m),e[3]=(f-c)/v,e[0]=(l+u)/v,e[1]=.25*v,e[2]=(p+g)/v):(v=2*Math.sqrt(1+m-s-d),e[3]=(l-u)/v,e[0]=(f+c)/v,e[1]=(p+g)/v,e[2]=.25*v),e}function V(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=t[3],l=o+o,c=a+a,u=i+i,d=o*l,p=o*c,f=o*u,g=a*c,m=a*u,h=i*u,v=s*l,b=s*c,y=s*u,T=r[0],x=r[1],S=r[2];return e[0]=(1-(g+h))*T,e[1]=(p+y)*T,e[2]=(f-b)*T,e[3]=0,e[4]=(p-y)*x,e[5]=(1-(d+h))*x,e[6]=(m+v)*x,e[7]=0,e[8]=(f+b)*S,e[9]=(m-v)*S,e[10]=(1-(d+g))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function _(e,t,n,r,o){var a=t[0],i=t[1],s=t[2],l=t[3],c=a+a,u=i+i,d=s+s,p=a*c,f=a*u,g=a*d,m=i*u,h=i*d,v=s*d,b=l*c,y=l*u,T=l*d,x=r[0],S=r[1],C=r[2],A=o[0],w=o[1],P=o[2],I=(1-(m+v))*x,O=(f+T)*x,E=(g-y)*x,M=(f-T)*S,R=(1-(p+v))*S,D=(h+b)*S,B=(g+y)*C,L=(h-b)*C,V=(1-(p+m))*C;return e[0]=I,e[1]=O,e[2]=E,e[3]=0,e[4]=M,e[5]=R,e[6]=D,e[7]=0,e[8]=B,e[9]=L,e[10]=V,e[11]=0,e[12]=n[0]+A-(I*A+M*w+B*P),e[13]=n[1]+w-(O*A+R*w+L*P),e[14]=n[2]+P-(E*A+D*w+V*P),e[15]=1,e}function N(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[1]=u+v,e[2]=p-h,e[3]=0,e[4]=u-v,e[5]=1-c-g,e[6]=f+m,e[7]=0,e[8]=p+h,e[9]=f-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function F(e,t,n,r,o,a,i){var s=1/(n-t),l=1/(o-r),c=1/(a-i);return e[0]=2*a*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*a*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(o+r)*l,e[10]=(i+a)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*a*2*c,e[15]=0,e}function k(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&&o!==1/0?(a=1/(r-o),e[10]=(o+r)*a,e[14]=2*o*r*a):(e[10]=-1,e[14]=-2*r),e}Math.random,Math.PI,Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var U=k;function G(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&&o!==1/0?(a=1/(r-o),e[10]=o*a,e[14]=o*r*a):(e[10]=-1,e[14]=-r),e}function z(e,t,n,r){var o=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(o+a);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(o-a)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e}function W(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=(i+a)*c,e[15]=1,e}var H=W;function j(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=a*c,e[15]=1,e}function $(e,t,n,r){var o,i,s,l,c,u,d,f,g,m,h=t[0],v=t[1],b=t[2],y=r[0],T=r[1],x=r[2],S=n[0],C=n[1],A=n[2];return Math.abs(h-S)0&&(u*=f=1/Math.sqrt(f),d*=f,p*=f);var g=l*p-c*d,m=c*u-s*p,h=s*d-l*u;return(f=g*g+m*m+h*h)>0&&(g*=f=1/Math.sqrt(f),m*=f,h*=f),e[0]=g,e[1]=m,e[2]=h,e[3]=0,e[4]=d*h-p*m,e[5]=p*g-u*h,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=p,e[11]=0,e[12]=o,e[13]=a,e[14]=i,e[15]=1,e}function q(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function X(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function Y(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function Q(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function Z(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}function J(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e}function ee(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function te(e,t){var n=e[0],r=e[1],o=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=e[9],f=e[10],g=e[11],m=e[12],h=e[13],v=e[14],b=e[15],y=t[0],T=t[1],x=t[2],S=t[3],C=t[4],A=t[5],w=t[6],P=t[7],I=t[8],O=t[9],E=t[10],M=t[11],R=t[12],D=t[13],B=t[14],L=t[15];return Math.abs(n-y)<=a*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(r-T)<=a*Math.max(1,Math.abs(r),Math.abs(T))&&Math.abs(o-x)<=a*Math.max(1,Math.abs(o),Math.abs(x))&&Math.abs(i-S)<=a*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(s-C)<=a*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(l-A)<=a*Math.max(1,Math.abs(l),Math.abs(A))&&Math.abs(c-w)<=a*Math.max(1,Math.abs(c),Math.abs(w))&&Math.abs(u-P)<=a*Math.max(1,Math.abs(u),Math.abs(P))&&Math.abs(d-I)<=a*Math.max(1,Math.abs(d),Math.abs(I))&&Math.abs(p-O)<=a*Math.max(1,Math.abs(p),Math.abs(O))&&Math.abs(f-E)<=a*Math.max(1,Math.abs(f),Math.abs(E))&&Math.abs(g-M)<=a*Math.max(1,Math.abs(g),Math.abs(M))&&Math.abs(m-R)<=a*Math.max(1,Math.abs(m),Math.abs(R))&&Math.abs(h-D)<=a*Math.max(1,Math.abs(h),Math.abs(D))&&Math.abs(v-B)<=a*Math.max(1,Math.abs(v),Math.abs(B))&&Math.abs(b-L)<=a*Math.max(1,Math.abs(b),Math.abs(L))}var ne=v,re=Q;function oe(){var e=new i(9);return i!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function ae(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function ie(e){var t=new i(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function se(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function le(e,t,n,r,o,a,s,l,c){var u=new i(9);return u[0]=e,u[1]=t,u[2]=n,u[3]=r,u[4]=o,u[5]=a,u[6]=s,u[7]=l,u[8]=c,u}function ce(e,t,n,r,o,a,i,s,l,c){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e}function ue(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function de(e,t){if(e===t){var n=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function pe(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=u*i-s*c,p=-u*a+s*l,f=c*a-i*l,g=n*d+r*p+o*f;return g?(g=1/g,e[0]=d*g,e[1]=(-u*r+o*c)*g,e[2]=(s*r-o*i)*g,e[3]=p*g,e[4]=(u*n-o*l)*g,e[5]=(-s*n+o*a)*g,e[6]=f*g,e[7]=(-c*n+r*l)*g,e[8]=(i*n-r*a)*g,e):null}function fe(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8];return e[0]=i*u-s*c,e[1]=o*c-r*u,e[2]=r*s-o*i,e[3]=s*l-a*u,e[4]=n*u-o*l,e[5]=o*a-n*s,e[6]=a*c-i*l,e[7]=r*l-n*c,e[8]=n*i-r*a,e}function ge(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8];return t*(c*a-i*l)+n*(-c*o+i*s)+r*(l*o-a*s)}function me(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1],g=n[2],m=n[3],h=n[4],v=n[5],b=n[6],y=n[7],T=n[8];return e[0]=p*r+f*i+g*c,e[1]=p*o+f*s+g*u,e[2]=p*a+f*l+g*d,e[3]=m*r+h*i+v*c,e[4]=m*o+h*s+v*u,e[5]=m*a+h*l+v*d,e[6]=b*r+y*i+T*c,e[7]=b*o+y*s+T*u,e[8]=b*a+y*l+T*d,e}function he(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1];return e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=p*r+f*i+c,e[7]=p*o+f*s+u,e[8]=p*a+f*l+d,e}function ve(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=Math.sin(n),f=Math.cos(n);return e[0]=f*r+p*i,e[1]=f*o+p*s,e[2]=f*a+p*l,e[3]=f*i-p*r,e[4]=f*s-p*o,e[5]=f*l-p*a,e[6]=c,e[7]=u,e[8]=d,e}function be(e,t,n){var r=n[0],o=n[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function ye(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e}function Te(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function xe(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Se(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e}function Ce(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[3]=u-v,e[6]=p+h,e[1]=u+v,e[4]=1-c-g,e[7]=f-m,e[2]=p-h,e[5]=f+m,e[8]=1-c-d,e}function Ae(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],b=n*s-r*i,y=n*l-o*i,T=n*c-a*i,x=r*l-o*s,S=r*c-a*s,C=o*c-a*l,A=u*m-d*g,w=u*h-p*g,P=u*v-f*g,I=d*h-p*m,O=d*v-f*m,E=p*v-f*h,M=b*E-y*O+T*I+x*P-S*w+C*A;return M?(M=1/M,e[0]=(s*E-l*O+c*I)*M,e[1]=(l*P-i*E-c*w)*M,e[2]=(i*O-s*P+c*A)*M,e[3]=(o*O-r*E-a*I)*M,e[4]=(n*E-o*P+a*w)*M,e[5]=(r*P-n*O-a*A)*M,e[6]=(m*C-h*S+v*x)*M,e[7]=(h*T-g*C-v*y)*M,e[8]=(g*S-m*T+v*b)*M,e):null}function we(e,t,n){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function Pe(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function Ie(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function Oe(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e}function Ee(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e}function Me(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e}function Re(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e}function De(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]}function Be(e,t){var n=e[0],r=e[1],o=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=t[0],f=t[1],g=t[2],m=t[3],h=t[4],v=t[5],b=t[6],y=t[7],T=t[8];return Math.abs(n-p)<=a*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(r-f)<=a*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(o-g)<=a*Math.max(1,Math.abs(o),Math.abs(g))&&Math.abs(i-m)<=a*Math.max(1,Math.abs(i),Math.abs(m))&&Math.abs(s-h)<=a*Math.max(1,Math.abs(s),Math.abs(h))&&Math.abs(l-v)<=a*Math.max(1,Math.abs(l),Math.abs(v))&&Math.abs(c-b)<=a*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(u-y)<=a*Math.max(1,Math.abs(u),Math.abs(y))&&Math.abs(d-T)<=a*Math.max(1,Math.abs(d),Math.abs(T))}var Le=me,Ve=Ee,_e=n(152),Ne=n.n(_e),Fe=n(177);const ke=n.n(Fe)()(),Ue={vtkObject:()=>null};function Ge(e){if(null==e)return e;if(e.isA)return e;if(!e.vtkClass)return ke.console&&ke.console.error&&ke.console.error("Invalid VTK object"),null;const t=Ue[e.vtkClass];if(!t)return ke.console&&ke.console.error&&ke.console.error(`No vtk class found for Object of type ${e.vtkClass}`),null;const n={...e};Object.keys(n).forEach((e=>{n[e]&&"object"==typeof n[e]&&n[e].vtkClass&&(n[e]=Ge(n[e]))}));const r=t(n);return r&&r.modified&&r.modified(),r}Ge.register=function(e,t){Ue[e]=t};class ze extends Array{push(){for(let e=0;e{je[e]=$e})),ke.console=console.hasOwnProperty("log")?console:je;const Ke={debug:$e,error:ke.console.error||$e,info:ke.console.info||$e,log:ke.console.log||$e,warn:ke.console.warn||$e};function qe(e,t){Ke[e]&&(Ke[e]=t||$e)}function Xe(){Ke.log(...arguments)}function Ye(){Ke.info(...arguments)}function Qe(){Ke.debug(...arguments)}function Ze(){Ke.error(...arguments)}function Je(){Ke.warn(...arguments)}const et={};function tt(e){et[e]||(Ke.error(e),et[e]=!0)}const nt=Object.create(null);nt.Float32Array=Float32Array,nt.Float64Array=Float64Array,nt.Uint8Array=Uint8Array,nt.Int8Array=Int8Array,nt.Uint16Array=Uint16Array,nt.Int16Array=Int16Array,nt.Uint32Array=Uint32Array,nt.Int32Array=Int32Array,nt.Uint8ClampedArray=Uint8ClampedArray;try{nt.BigInt64Array=BigInt64Array,nt.BigUint64Array=BigUint64Array}catch{}function rt(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3;const r=["TB","GB","MB","KB"];let o=Number(e),a="B";for(;o>n;)o/=n,a=r.pop();return`${o.toFixed(t)} ${a}`}function ct(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";const n=[];let r=e;for(;r>1e3;)n.push(("000"+r%1e3).slice(-3)),r=Math.floor(r/1e3);return r>0&&n.push(r),n.reverse(),n.join(t)}function ut(e){Object.keys(e).forEach((t=>{Array.isArray(e[t])&&(e[t]=[].concat(e[t]))}))}function dt(e){return Object.values(nt).some((t=>e instanceof t))}function pt(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n{const e=performance.now()-n;t(e)}))}function ht(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ut(t);const n=[];if(Number.isInteger(t.mtime)||(t.mtime=++We),"classHierarchy"in t){if(!(t.classHierarchy instanceof ze)){const e=new ze;for(let n=0;n!!t.deleted,e.modified=r=>{t.deleted?Ze("instance deleted - cannot call any method"):r&&rt&&t(e))))},e.onModified=e=>{if(t.deleted)return Ze("instance deleted - cannot call any method"),null;const r=n.length;return n.push(e),o(r)},e.getMTime=()=>t.mtime,e.isA=e=>{let n=t.classHierarchy.length;for(;n--;)if(t.classHierarchy[n]===e)return!0;return!1},e.getClassName=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.classHierarchy[t.classHierarchy.length-1-e]},e.set=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=!1;return Object.keys(n).forEach((i=>{const s=o?null:e[`set${at(i)}`];s&&Array.isArray(n[i])&&s.length>1?a=s(...n[i])||a:s?a=s(n[i])||a:(-1!==["mtime"].indexOf(i)||r||Je(`Warning: Set value to model directly ${i}, ${n[i]}`),a=t[i]!==n[i]||a,t[i]=n[i])})),a},e.get=function(){for(var e=arguments.length,n=new Array(e),r=0;r{o[e]=t[e]})),o},e.getReferenceByName=e=>t[e],e.delete=()=>{Object.keys(t).forEach((e=>delete t[e])),n.forEach(((e,t)=>r(t))),t.deleted=!0},e.getState=()=>{if(t.deleted)return null;const n={...t,vtkClass:e.getClassName()};Object.keys(n).forEach((e=>{null===n[e]||void 0===n[e]||"_"===e[0]?delete n[e]:n[e].isA?n[e]=n[e].getState():Array.isArray(n[e])?n[e]=n[e].map(ft):dt(n[e])&&(n[e]=Array.from(n[e]))}));const r={};return Object.keys(n).sort().forEach((e=>{r[e]=n[e]})),r.mtime&&delete r.mtime,r},e.shallowCopy=function(n){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(n.getClassName()!==e.getClassName())throw new Error(`Cannot ShallowCopy ${n.getClassName()} into ${e.getClassName()}`);const o=n.get(),a=Object.keys(t).sort(),i=Object.keys(o).sort();i.forEach((e=>{const n=a.indexOf(e);-1===n?r&&Qe(`add ${e} in shallowCopy`):a.splice(n,1),t[e]=o[e]})),a.length&&r&&Qe(`Untouched keys: ${a.join(", ")}`),e.modified()},e.toJSON=function(){return e.getState()},e}const vt={object:(e,t,n)=>function(){return{...t[n.name]}}};function bt(e,t,n){n.forEach((n=>{if("object"==typeof n){const r=vt[n.type];e[`get${it(n.name)}`]=r?r(e,t,n):()=>t[n.name]}else e[`get${it(n)}`]=()=>t[n]}))}const yt={enum(e,t,n){const r=`_on${it(n.name)}Changed`;return o=>{if("string"==typeof o){if(void 0!==n.enum[o])return t[n.name]!==n.enum[o]&&(t[n.name]=n.enum[o],e.modified(),!0);throw Ze(`Set Enum with invalid argument ${n}, ${o}`),new RangeError("Set Enum with invalid string argument")}if("number"==typeof o){if(t[n.name]!==o){if(-1!==Object.keys(n.enum).map((e=>n.enum[e])).indexOf(o)){const a=t[n.name];return t[n.name]=o,t[r]?.(e,t,o,a),e.modified(),!0}throw Ze(`Set Enum outside numeric range ${n}, ${o}`),new RangeError("Set Enum outside numeric range")}return!1}throw Ze(`Set Enum with invalid argument (String/Number) ${n}, ${o}`),new TypeError("Set Enum with invalid argument (String/Number)")}},object(e,t,n){1===n.params?.length&&Je('Setter of type "object" with a single "param" field is not supported');const r=`_on${it(n.name)}Changed`;return function(){for(var o=arguments.length,a=new Array(o),i=0;i1&&n.params?.length?n.params.reduce(((e,t,n)=>Object.assign(e,{[t]:a[n]})),{}):a[0],!Ne()(t[n.name],s)){const o=t[n.name];return t[n.name]=s,t[r]?.(e,t,s,o),e.modified(),!0}return!1}}};function Tt(e){if("object"==typeof e){const t=yt[e.type];if(t)return(n,r)=>t(n,r,e);throw Ze(`No setter for field ${e}`),new TypeError("No setter for field")}return function(t,n){const r=`_on${it(e)}Changed`;return function(o){if(n.deleted)return Ze("instance deleted - cannot call any method"),!1;if(n[e]!==o){const a=n[e.name];return n[e]=o,n[r]?.(t,n,o,a),t.modified(),!0}return!1}}}function xt(e,t,n){n.forEach((n=>{"object"==typeof n?e[`set${it(n.name)}`]=Tt(n)(e,t):e[`set${it(n)}`]=Tt(n)(e,t)}))}function St(e,t,n){bt(e,t,n),xt(e,t,n)}function Ct(e,t,n){n.forEach((n=>{e[`get${it(n)}`]=()=>t[n]?Array.from(t[n]):t[n],e[`get${it(n)}ByReference`]=()=>t[n]}))}function At(e,t,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;n.forEach((n=>{if(t[n]&&r&&t[n].length!==r)throw new RangeError(`Invalid initial number of values for array (${n})`);const a=`_on${it(n)}Changed`;e[`set${it(n)}`]=function(){if(t.deleted)return Ze("instance deleted - cannot call any method"),!1;for(var i=arguments.length,s=new Array(i),l=0;l=0)&&(u=u[0],d=!0),null==u)c=t[n]!==u;else{if(r&&u.length!==r){if(!(u.length{const r=t[n];e.forEach(((e,t)=>{r[t]=e}))}}))}function wt(e,t,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;Ct(e,t,n),At(e,t,n,r,o)}function Pt(e,t,n){for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:0;t.deleted?Ze("instance deleted - cannot call any method"):r>=t.numberOfInputs?Ze(`algorithm ${e.getClassName()} only has ${t.numberOfInputs} input ports. To add more input ports, use addInputData()`):(t.inputData[r]!==n||t.inputConnection[r])&&(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&&e.modified())}function a(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.deleted)Ze("instance deleted - cannot call any method");else{if(r>=t.numberOfInputs){let n=`algorithm ${e.getClassName()} only has `;return n+=`${t.numberOfInputs}`,n+=" input ports. To add more input ports, use addInputConnection()",void Ze(n)}t.inputData[r]=null,t.inputConnection[r]=n}}function i(){let e=t.numberOfInputs;for(;e&&!t.inputData[e-1]&&!t.inputConnection[e-1];)e--;return e===t.numberOfInputs&&t.numberOfInputs++,e}function s(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.deleted?(Ze("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(Ge):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(Ge):t.inputConnection=[],t.output?t.output=t.output.map(Ge):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(Ge):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=()=>{const n=e.getMTime();let o=1/0,a=r;for(;a--;){if(!t.output[a]||t.output[a].isDeleted())return!0;const e=t.output[a].getMTime();if(eo)return!0;return!1},t.numberOfInputs){let n=t.numberOfInputs;for(;n--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=a,e.addInputData=function(e){t.deleted?Ze("instance deleted - cannot call any method"):o(e,i())},e.addInputConnection=function(e){t.deleted?Ze("instance deleted - cannot call any method"):a(e,i())},e.getInputData=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]&&(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]}}r&&(e.getOutputData=s,e.getOutputPort=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const n=()=>s(t);return n.filter=e,n}),e.update=()=>{const n=[];if(t.numberOfInputs){let r=0;for(;rt.numberOfInputs,e.getNumberOfOutputPorts=()=>r||t.output.length,e.getInputArrayToProcess=e=>{const n=t.inputArrayToProcess[e],r=t.inputData[e];return n&&r?r[`get${n.fieldAssociation}`]().getArray(n.arrayName):null},e.setInputArrayToProcess=function(e,n,r){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"Scalars";for(;t.inputArrayToProcess.lengthr.apply(e,arguments)),1-o);else if(r.apply(e,arguments)===Ot)break}},e[`on${it(n)}`]=function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!e.apply)return console.error(`Invalid callback for event ${n}`),null;if(t.deleted)return Ze("instance deleted - cannot call any method"),null;const i=a++;return r.push([i,e,o]),r.sort(((e,t)=>t[2]-e[2])),s(i)},e.delete=()=>{o(),r.forEach((e=>{let[t]=e;return i(t)}))}}function Mt(e,t){const n=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n={},r={};return e(r,n,t),Object.freeze(r)};return t&&Ge.register(t,n),n}function Rt(){for(var e=arguments.length,t=new Array(e),n=0;n!!e)).map((e=>e(...n)))}}function Dt(e){return e&&e.isA&&e.isA("vtkObject")}function Bt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(Dt(e)){if(r.indexOf(e)>=0)return n;r.push(e);const o=t(e);void 0!==o&&n.push(o);const a=e.get();Object.keys(a).forEach((e=>{const o=a[e];Array.isArray(o)?o.forEach((e=>{Bt(e,t,n,r)})):Bt(o,t,n,r)}))}return n}function Lt(e,t,n){var r=this;let o;const a=function(){for(var a=arguments.length,i=new Array(a),s=0;s{o=null,n||e.apply(l,i)},u=n&&!o;clearTimeout(o),o=setTimeout(c,t),u&&e.apply(l,i)};return a.cancel=()=>clearTimeout(o),a}function Vt(e,t){let n=!1,r=null;function o(){n=!1,null!==r&&(a(...r),r=null)}function a(){for(var a=arguments.length,i=new Array(a),s=0;s2&&void 0!==arguments[2]?arguments[2]:{};t.keystore=Object.assign(t.keystore||{},n),e.setKey=(e,n)=>{t.keystore[e]=n},e.getKey=e=>t.keystore[e],e.getAllKeys=()=>Object.keys(t.keystore),e.deleteKey=e=>delete t.keystore[e],e.clearKeystore=()=>e.getAllKeys().forEach((e=>delete t.keystore[e]))}let Nt=1;const Ft="__root__";function kt(e,t){_t(e,t);const n=e.delete;t.proxyId=""+Nt++,t.ui=JSON.parse(JSON.stringify(t.ui||[])),bt(e,t,["proxyId","proxyGroup","proxyName"]),St(e,t,["proxyManager"]);const r={},o={};function a(e,t){o[t]||(o[t]=[]);const n=o[t];for(let t=0;t0&&void 0!==arguments[0]?arguments[0]:Ft;return o[e]}function s(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ft;const r=[],o=t.proxyId,a=i(n)||[];for(let t=0;t{t.ui=JSON.parse(JSON.stringify(n||[])),Object.keys(r).forEach((e=>delete r[e])),Object.keys(o).forEach((e=>delete o[e])),a(t.ui,Ft),e.modified()},e.updateProxyProperty=(e,t)=>{const n=r[e];n?Object.assign(n,t):r[e]={...t}},e.activate=()=>{if(t.proxyManager){const n=`setActive${it(e.getProxyGroup().slice(0,-1))}`;t.proxyManager[n]&&t.proxyManager[n](e)}},t.propertyLinkSubscribers={},e.registerPropertyLinkForGC=(e,n)=>{n in t.propertyLinkSubscribers||(t.propertyLinkSubscribers[n]=[]),t.propertyLinkSubscribers[n].push(e)},e.gcPropertyLinks=n=>{const r=t.propertyLinkSubscribers[n]||[];for(;r.length;)r.pop().unbind(e)},t.propertyLinkMap={},e.getPropertyLink=function(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t.propertyLinkMap[e])return t.propertyLinkMap[e];let r=null;const o=[];let a=0,i=!1;function s(n){let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(i)return null;const l=[];let c=null;for(a=o.length;a--;){const e=o[a];e.instance===n?c=e:l.push(e)}if(!c)return null;const u=c.instance[`get${it(c.propertyName)}`]();if(!pt(u,r)||s){for(r=u,i=!0;l.length;){const e=l.pop();e.instance.set({[e.propertyName]:r})}i=!1}return t.propertyLinkMap[e].persistent&&(t.propertyLinkMap[e].value=u),u}function l(e,t){const n=[];for(a=o.length;a--;){const r=o[a];r.instance!==e||r.propertyName!==t&&void 0!==t||(r.subscription.unsubscribe(),n.push(a))}for(;n.length;)o.splice(n.pop(),1)}function c(n,r){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=n.onModified(s),c=o[0];return o.push({instance:n,propertyName:r,subscription:i}),a&&(t.propertyLinkMap[e].persistent&&void 0!==t.propertyLinkMap[e].value?n.set({[r]:t.propertyLinkMap[e].value}):c&&s(c.instance,!0)),{unsubscribe:()=>l(n,r)}}function u(){for(;o.length;)o.pop().subscription.unsubscribe()}const d={bind:c,unbind:l,unsubscribe:u,persistent:n};return t.propertyLinkMap[e]=d,d},e.listPropertyNames=()=>s().map((e=>e.name)),e.getPropertyByName=e=>s().find((t=>t.name===e)),e.getPropertyDomainByName=e=>(r[e]||{}).domain,e.getProxySection=()=>({id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:s()}),e.delete=()=>{const r=Object.keys(t.propertyLinkMap);let o=r.length;for(;o--;)t.propertyLinkMap[r[o]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},e.getState=()=>null,gt((function(){if(t.links)for(let n=0;n{for(;o.length;)o.pop().unsubscribe();r()}}function Gt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};function o(e){const n=Object.keys(e);let r=n.length;for(;r--;){const o=n[r];t[o].set(e[o])}}t.this=e;const a=Object.keys(r);let i=a.length;for(;i--;){const s=a[i];t[s]=r[s];const l=n[s];e[`set${it(s)}`]=n=>{n!==t[s]&&(t[s]=n,o(l[n]),e.modified())}}a.length&&bt(e,t,a)}function zt(e){let t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n||t,pixelX:r,pixelY:o||r}}var Wt={algo:It,capitalize:at,chain:Rt,debounce:Lt,enumToString:function(e,t){return Object.keys(e).find((n=>e[n]===t))},event:Et,EVENT_ABORT:Ot,formatBytesToProperUnit:lt,formatNumbersWithThousandSeparator:ct,get:bt,getArray:Ct,getCurrentGlobalMTime:function(){return We},getStateArrayMapFunc:ft,isVtkObject:Dt,keystore:_t,measurePromiseExecution:mt,moveToProtected:Pt,newInstance:Mt,newTypedArray:rt,newTypedArrayFrom:ot,normalizeWheel:zt,obj:ht,proxy:kt,proxyPropertyMapping:Ut,proxyPropertyState:Gt,safeArrays:ut,set:xt,setArray:At,setGet:St,setGetArray:wt,setImmediate:gt,setLoggerFunction:qe,throttle:Vt,traverseInstanceTree:Bt,TYPED_ARRAYS:nt,uncapitalize:st,VOID:He,vtkDebugMacro:Qe,vtkErrorMacro:Ze,vtkInfoMacro:Ye,vtkLogMacro:Xe,vtkOnceErrorMacro:tt,vtkWarningMacro:Je,objectSetterMap:yt},Ht=Object.freeze({__proto__:null,VOID:He,setLoggerFunction:qe,vtkLogMacro:Xe,vtkInfoMacro:Ye,vtkDebugMacro:Qe,vtkErrorMacro:Ze,vtkWarningMacro:Je,vtkOnceErrorMacro:tt,TYPED_ARRAYS:nt,newTypedArray:rt,newTypedArrayFrom:ot,capitalize:at,_capitalize:it,uncapitalize:st,formatBytesToProperUnit:lt,formatNumbersWithThousandSeparator:ct,setImmediateVTK:gt,measurePromiseExecution:mt,obj:ht,get:bt,set:xt,setGet:St,getArray:Ct,setArray:At,setGetArray:wt,moveToProtected:Pt,algo:It,EVENT_ABORT:Ot,event:Et,newInstance:Mt,chain:Rt,isVtkObject:Dt,traverseInstanceTree:Bt,debounce:Lt,throttle:Vt,keystore:_t,proxy:kt,proxyPropertyMapping:Ut,proxyPropertyState:Gt,normalizeWheel:zt,default:Wt});const{vtkErrorMacro:jt}=Wt;function $t(e,t){t.classHierarchy.push("vtkViewNode"),e.build=e=>{},e.render=e=>{},e.traverse=n=>{const r=n.getTraverseOperation(),o=e[r];if(o)o(n);else{e.apply(n,!0);for(let e=0;e{const r=e[t.getOperation()];r&&r(n,t)},e.getViewNodeFor=n=>{if(t.renderable===n)return e;for(let e=0;et._parent?t._parent.isA(e)?t._parent:t._parent.getFirstAncestorOfType(e):null,e.getLastAncestorOfType=e=>{if(!t._parent)return null;return t._parent.getLastAncestorOfType(e)||(t._parent.isA(e)?t._parent:null)},e.addMissingNode=n=>{if(!n)return;const r=t._renderableChildMap.get(n);if(void 0!==r)return r.setVisited(!0),r;const o=e.createViewNode(n);return o?(o.setParent(e),o.setVisited(!0),t._renderableChildMap.set(n,o),t.children.push(o),o):void 0},e.addMissingNodes=t=>{if(t&&t.length)for(let n=0;n{if(n&&n.length)for(let r=0;r{const n=t.children.findIndex((t=>t===e));if(n<0)return!1;const r=e.getRenderable();return r&&t._renderableChildMap.delete(r),e.delete(),t.children.splice(n,1),!0},e.prepareNodes=()=>{for(let e=0;e{t.visited=e},e.removeUnusedNodes=()=>{let e=0;for(let n=0;n{if(!t.myFactory)return jt("Cannot create view nodes without my own factory"),null;const n=t.myFactory.createNode(e);return n&&n.setRenderable(e),n};const n=e.delete;e.delete=()=>{for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kt,n),Wt.obj(e,t),Wt.event(e,t,"event"),t._renderableChildMap=new Map,Wt.get(e,t,["visited"]),Wt.setGet(e,t,["_parent","renderable","myFactory"]),Wt.getArray(e,t,["children"]),Wt.moveToProtected(e,t,["parent"]),$t(e,t)}var Xt={newInstance:Wt.newInstance(qt,"vtkViewNode"),extend:qt,PASS_TYPES:["Build","Render"]};function Yt(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push("vtkViewNodeFactory"),e.createNode=n=>{if(n.isDeleted())return null;let r=0,o=n.getClassName(r++),a=!1;const i=Object.keys(t.overrides);for(;o&&!a;)-1!==i.indexOf(o)?a=!0:o=n.getClassName(r++);if(!a)return null;const s=t.overrides[o]();return s.setMyFactory(e),s}}const Qt={};function Zt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qt,n),Wt.obj(e,t),Yt(e,t)}var Jt={newInstance:Wt.newInstance(Zt,"vtkViewNodeFactory"),extend:Zt};const en=Object.create(null);function tn(e,t){en[e]=t}function nn(e,t){t.classHierarchy.push("vtkOpenGLViewNodeFactory")}const rn={};function on(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rn,n),t.overrides=en,Jt.extend(e,t,n),nn(0,t)}var an={newInstance:Wt.newInstance(on,"vtkOpenGLViewNodeFactory"),extend:on};function sn(e,t){t.classHierarchy.push("vtkOpenGLCamera"),e.buildPass=n=>{n&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext())},e.opaquePass=e=>{if(e){const e=t._openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize),t.context.scissor(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize)}},e.translucentPass=e.opaquePass,e.zBufferPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=n=>{if(n!==t.lastRenderer||t._openGLRenderWindow.getMTime()>t.keyMatrixTime.getMTime()||e.getMTime()>t.keyMatrixTime.getMTime()||n.getMTime()>t.keyMatrixTime.getMTime()||t.renderable.getMTime()>t.keyMatrixTime.getMTime()){c(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),ae(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),pe(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),f(t.keyMatrices.wcvc,t.keyMatrices.wcvc);const e=t._openGLRenderer.getAspectRatio();c(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(e,-1,1)),f(t.keyMatrices.vcpc,t.keyMatrices.vcpc),v(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}const ln={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};const cn=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ln,n),Xt.extend(e,t,n),t.keyMatrixTime={},ht(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},St(e,t,["context","keyMatrixTime"]),sn(e,t)}));tn("vtkCamera",cn);const{vtkDebugMacro:un}=Ht;function dn(e,t){t.classHierarchy.push("vtkOpenGLRenderer"),e.buildPass=n=>{if(n){if(!t.renderable)return;e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes()}},e.updateLights=()=>{let e=0;const n=t.renderable.getLightsByReference();for(let t=0;t0&&e++;return e||(un("No lights are on, creating one."),t.renderable.createLight()),e},e.zBufferPass=n=>{if(n){let n=0;const r=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),n|=r.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,t.context.depthMask(!0));const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.colorMask(!0,!0,!0,!0),n&&r.clear(n),r.enable(r.DEPTH_TEST)}},e.opaqueZBufferPass=t=>e.zBufferPass(t),e.cameraPass=t=>{t&&e.clear()},e.getAspectRatio=()=>{const e=t._parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=()=>{const e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=e[0]-n[0],o=e[1]-n[1],a=t._parent.normalizedDisplayToDisplay(r,o),i=Math.round(a[0]),s=Math.round(a[1]),l=e[2]-n[0],c=e[3]-n[1],u=t._parent.normalizedDisplayToDisplay(l,c);let d=Math.round(u[0])-i,p=Math.round(u[1])-s;return d<0&&(d=0),p<0&&(p=0),{usize:d,vsize:p,lowerLeftU:i,lowerLeftV:s}},e.clear=()=>{let n=0;const r=t.context;if(!t.renderable.getTransparent()){const e=t.renderable.getBackgroundByReference();r.clearColor(e[0],e[1],e[2],e[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),n&&r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=()=>{null!==t.selector&&t.selector.releaseGraphicsResources(),t.renderable&&t.renderable.getViewProps().forEach((e=>{e.modified()}))},e.setOpenGLRenderWindow=n=>{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))}}const pn={context:null,_openGLRenderWindow:null,selector:null};const fn=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pn,n),Xt.extend(e,t,n),bt(e,t,["shaderCache"]),St(e,t,["selector"]),Pt(0,t,["openGLRenderWindow"]),dn(e,t)}),"vtkOpenGLRenderer");function gn(e,t){t.classHierarchy.push("vtkOpenGLActor"),e.buildPass=n=>{if(n){t._openGLRenderWindow=e.getLastAncestorOfType("vtkOpenGLRenderWindow"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e{t.renderable&&t.renderable.getNestedVisibility()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOpaqueZBufferPass=t=>e.traverseOpaquePass(t),e.traverseOpaquePass=n=>{t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=>{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=>{if(t.ogltextures){t.activeTextures=[];for(let e=0;e{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.zBufferPass=(t,n)=>e.opaquePass(t,n),e.opaqueZBufferPass=(t,n)=>e.opaquePass(t,n),e.opaquePass=(n,r)=>{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e{if(n)t.context.depthMask(t._openGLRenderer.getSelector()&&t.renderable.getNestedPickable()),e.activateTextures();else if(t.activeTextures)for(let e=0;e(t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),c(t.keyMatrices.mcwc,t.renderable.getMatrix()),f(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?ue(t.keyMatrices.normalMatrix):(ae(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),pe(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),de(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices)}tn("vtkRenderer",fn);const mn={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};const hn=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,mn,n),Xt.extend(e,t,n),t.keyMatrixTime={},ht(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:ue(new Float64Array(9)),mcwc:p(new Float64Array(16))},St(e,t,["context"]),bt(e,t,["activeTextures"]),gn(e,t)}));function vn(e,t){t.classHierarchy.push("vtkOpenGLActor2D"),e.buildPass=n=>{if(n){if(!t.renderable)return;t._openGLRenderWindow=e.getLastAncestorOfType("vtkOpenGLRenderWindow"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOverlayActorCount()}},e.traverseOpaquePass=n=>{t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=>{t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&!t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOverlayPass=n=>{t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable)&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=>{if(t.ogltextures){t.activeTextures=[];for(let e=0;e{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e{if(n)t.context.depthMask(!1),e.activateTextures();else if(t.activeTextures)for(let e=0;e{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bn,n),Xt.extend(e,t,n),St(e,t,["context"]),bt(e,t,["activeTextures"]),vn(e,t)}));function Tn(){var e=new i(3);return i!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function xn(e,t,n){var r=new i(3);return r[0]=e,r[1]=t,r[2]=n,r}function Sn(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function Cn(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function An(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function wn(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Pn(e,t){var n=t[0],r=t[1],o=t[2],a=n*n+r*r+o*o;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function In(e,t,n){var r=t[0],o=t[1],a=t[2],i=n[3]*r+n[7]*o+n[11]*a+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*o+n[8]*a+n[12])/i,e[1]=(n[1]*r+n[5]*o+n[9]*a+n[13])/i,e[2]=(n[2]*r+n[6]*o+n[10]*a+n[14])/i,e}function On(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function En(e,t){var n=e[0],r=e[1],o=e[2],i=t[0],s=t[1],l=t[2];return Math.abs(n-i)<=a*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(r-s)<=a*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(o-l)<=a*Math.max(1,Math.abs(o),Math.abs(l))}tn("vtkActor2D",yn);var Mn=An,Rn=(Tn(),Math.sqrt(50)),Dn=Math.sqrt(10),Bn=Math.sqrt(2);function Ln(e,t,n){var r=(t-e)/Math.max(0,n),o=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,o);return o>=0?(a>=Rn?10:a>=Dn?5:a>=Bn?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(a>=Rn?10:a>=Dn?5:a>=Bn?2:1)}function Vn(e,t){return null==e||null==t?NaN:et?1:e>=t?0:NaN}function _n(e){let t=e,n=e,r=e;function o(e,t,o=0,a=e.length){if(o>>1;r(e[n],t)<0?o=n+1:a=n}while(oe(t)-n,n=Vn,r=(t,n)=>Vn(e(t),n)),{left:o,center:function(e,n,r=0,a=e.length){const i=o(e,n,r,a-1);return i>r&&t(e[i-1],n)>-t(e[i],n)?i-1:i},right:function(e,t,o=0,a=e.length){if(o>>1;r(e[n],t)<=0?o=n+1:a=n}while(o>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?ir(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?ir(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Xn.exec(e))?new cr(t[1],t[2],t[3],1):(t=Yn.exec(e))?new cr(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Qn.exec(e))?ir(t[1],t[2],t[3],t[4]):(t=Zn.exec(e))?ir(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Jn.exec(e))?mr(t[1],t[2]/100,t[3]/100,1):(t=er.exec(e))?mr(t[1],t[2]/100,t[3]/100,t[4]):tr.hasOwnProperty(e)?ar(tr[e]):"transparent"===e?new cr(NaN,NaN,NaN,0):null}function ar(e){return new cr(e>>16&255,e>>8&255,255&e,1)}function ir(e,t,n,r){return r<=0&&(e=t=n=NaN),new cr(e,t,n,r)}function sr(e){return e instanceof zn||(e=or(e)),e?new cr((e=e.rgb()).r,e.g,e.b,e.opacity):new cr}function lr(e,t,n,r){return 1===arguments.length?sr(e):new cr(e,t,n,null==r?1:r)}function cr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function ur(){return`#${gr(this.r)}${gr(this.g)}${gr(this.b)}`}function dr(){const e=pr(this.opacity);return`${1===e?"rgb(":"rgba("}${fr(this.r)}, ${fr(this.g)}, ${fr(this.b)}${1===e?")":`, ${e})`}`}function pr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function fr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gr(e){return((e=fr(e))<16?"0":"")+e.toString(16)}function mr(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new vr(e,t,n,r)}function hr(e){if(e instanceof vr)return new vr(e.h,e.s,e.l,e.opacity);if(e instanceof zn||(e=or(e)),!e)return new vr;if(e instanceof vr)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,s=a-o,l=(a+o)/2;return s?(i=t===a?(n-r)/s+6*(n0&&l<1?0:i,new vr(i,s,l,e.opacity)}function vr(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function br(e){return(e=(e||0)%360)<0?e+360:e}function yr(e){return Math.max(0,Math.min(1,e||0))}function Tr(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function xr(e,t,n,r,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*n+(1+3*e+3*a-3*i)*r+i*o)/6}Un(zn,or,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:nr,formatHex:nr,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return hr(this).formatHsl()},formatRgb:rr,toString:rr}),Un(cr,lr,Gn(zn,{brighter(e){return e=null==e?Hn:Math.pow(Hn,e),new cr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?Wn:Math.pow(Wn,e),new cr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new cr(fr(this.r),fr(this.g),fr(this.b),pr(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ur,formatHex:ur,formatHex8:function(){return`#${gr(this.r)}${gr(this.g)}${gr(this.b)}${gr(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:dr,toString:dr})),Un(vr,(function(e,t,n,r){return 1===arguments.length?hr(e):new vr(e,t,n,null==r?1:r)}),Gn(zn,{brighter(e){return e=null==e?Hn:Math.pow(Hn,e),new vr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Wn:Math.pow(Wn,e),new vr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new cr(Tr(e>=240?e-240:e+120,o,r),Tr(e,o,r),Tr(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new vr(br(this.h),yr(this.s),yr(this.l),pr(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=pr(this.opacity);return`${1===e?"hsl(":"hsla("}${br(this.h)}, ${100*yr(this.s)}%, ${100*yr(this.l)}%${1===e?")":`, ${e})`}`}}));var Sr=e=>()=>e;function Cr(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Sr(isNaN(e)?t:e)}var Ar=function e(t){var n=function(e){return 1==(e=+e)?Cr:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Sr(isNaN(t)?n:t)}}(t);function r(e,t){var r=n((e=lr(e)).r,(t=lr(t)).r),o=n(e.g,t.g),a=n(e.b,t.b),i=Cr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=a(t),e.opacity=i(t),e+""}}return r.gamma=e,r}(1);function wr(e){return function(t){var n,r,o=t.length,a=new Array(o),i=new Array(o),s=new Array(o);for(n=0;n=1?(n=1,t-1):Math.floor(n*t),o=e[r],a=e[r+1],i=r>0?e[r-1]:2*o-a,s=ra&&(o=t.slice(a,o),s[i]?s[i]+=o:s[++i]=o),(n=n[0])===(r=r[0])?s[i]?s[i]+=r:s[++i]=r:(s[++i]=null,l.push({i:i,x:Or(n,r)})),a=Rr.lastIndex;return at&&(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),r=l>2?Gr:Ur,o=a=null,d}function d(t){return null==t||isNaN(t=+t)?n:(o||(o=r(i.map(e),s,l)))(e(c(t)))}return d.invert=function(n){return c(t((a||(a=r(s,i.map(e),Or)))(n)))},d.domain=function(e){return arguments.length?(i=Array.from(e,_r),u()):i.slice()},d.range=function(e){return arguments.length?(s=Array.from(e),u()):s.slice()},d.rangeRound=function(e){return s=Array.from(e),l=Vr,u()},d.clamp=function(e){return arguments.length?(c=!!e||Fr,u()):c!==Fr},d.interpolate=function(e){return arguments.length?(l=e,u()):l},d.unknown=function(e){return arguments.length?(n=e,d):n},function(n,r){return e=n,t=r,u()}}()(Fr,Fr)}function Hr(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var jr,$r=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Kr(e){if(!(t=$r.exec(e)))throw new Error("invalid format: "+e);var t;return new qr({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function qr(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function Xr(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Yr(e){return(e=Xr(Math.abs(e)))?e[1]:NaN}function Qr(e,t){var n=Xr(e,t);if(!n)return e+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}Kr.prototype=qr.prototype,qr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Zr={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Qr(100*e,t),r:Qr,s:function(e,t){var n=Xr(e,t);if(!n)return e+"";var r=n[0],o=n[1],a=o-(jr=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,i=r.length;return a===i?r:a>i?r+new Array(a-i+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Xr(e,Math.max(0,t+a-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Jr(e){return e}var eo,to,no,ro=Array.prototype.map,oo=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ao(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){var r,o,a,i,s=-1;if(n=+n,(e=+e)==(t=+t)&&n>0)return[e];if((r=t0){let n=Math.round(e/i),r=Math.round(t/i);for(n*it&&--r,a=new Array(o=r-n+1);++st&&--r,a=new Array(o=r-n+1);++s=Rn?o*=10:a>=Dn?o*=5:a>=Bn&&(o*=2),t0;){if((o=Ln(l,c,n))===r)return a[i]=l,a[s]=c,t(a);if(o>0)l=Math.floor(l/o)*o,c=Math.ceil(c/o)*o;else{if(!(o<0))break;l=Math.ceil(l*o)/o,c=Math.floor(c*o)/o}r=o}return e},e}function io(){var e=Wr();return e.copy=function(){return zr(e,io())},Hr.apply(e,arguments),ao(e)}eo=function(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?Jr:(t=ro.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var o=e.length,a=[],i=0,s=t[0],l=0;o>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(e.substring(o-=s,o+s)),!((l+=s+1)>r));)s=t[i=(i+1)%t.length];return a.reverse().join(n)}),o=void 0===e.currency?"":e.currency[0]+"",a=void 0===e.currency?"":e.currency[1]+"",i=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?Jr:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(ro.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",c=void 0===e.minus?"−":e.minus+"",u=void 0===e.nan?"NaN":e.nan+"";function d(e){var t=(e=Kr(e)).fill,n=e.align,d=e.sign,p=e.symbol,f=e.zero,g=e.width,m=e.comma,h=e.precision,v=e.trim,b=e.type;"n"===b?(m=!0,b="g"):Zr[b]||(void 0===h&&(h=12),v=!0,b="g"),(f||"0"===t&&"="===n)&&(f=!0,t="0",n="=");var y="$"===p?o:"#"===p&&/[boxX]/.test(b)?"0"+b.toLowerCase():"",T="$"===p?a:/[%p]/.test(b)?l:"",x=Zr[b],S=/[defgprs%]/.test(b);function C(e){var o,a,l,p=y,C=T;if("c"===b)C=x(e)+C,e="";else{var A=(e=+e)<0||1/e<0;if(e=isNaN(e)?u:x(Math.abs(e),h),v&&(e=function(e){e:for(var t,n=e.length,r=1,o=-1;r0&&(o=0)}return o>0?e.slice(0,o)+e.slice(t+1):e}(e)),A&&0==+e&&"+"!==d&&(A=!1),p=(A?"("===d?d:c:"-"===d||"("===d?"":d)+p,C=("s"===b?oo[8+jr/3]:"")+C+(A&&"("===d?")":""),S)for(o=-1,a=e.length;++o(l=e.charCodeAt(o))||l>57){C=(46===l?i+e.slice(o+1):e.slice(o))+C,e=e.slice(0,o);break}}m&&!f&&(e=r(e,1/0));var w=p.length+e.length+C.length,P=w>1)+p+e+C+P.slice(w);break;default:e=P+p+e+C}return s(e)}return h=void 0===h?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),C.toString=function(){return e+""},C}return{format:d,formatPrefix:function(e,t){var n=d(((e=Kr(e)).type="f",e)),r=3*Math.max(-8,Math.min(8,Math.floor(Yr(t)/3))),o=Math.pow(10,-r),a=oo[8+r/3];return function(e){return n(o*e)+a}}}}({thousands:",",grouping:[3],currency:["$",""]}),to=eo.format,no=eo.formatPrefix;var so=n(640),lo=n.n(so);const co=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],uo=[1,0,0,0,1,0,0,0,1],po=1e-6,fo=1e-12,{vtkErrorMacro:go,vtkWarningMacro:mo}=Wt;let ho=0;function vo(e){return()=>go(`vtkMath::${e} - NOT IMPLEMENTED`)}function bo(e,t,n,r){let o;for(let a=0;a0&&void 0!==arguments[0]?arguments[0]:3;const t=Array(e);for(let n=0;n1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:{let n=0;for(let r=0;r2&&void 0!==arguments[2]?arguments[2]:po;if(e.length!==t.length)return!1;function r(e,r){return Math.abs(e-t[r])<=n}return e.every(r)}const Qo=Yo;function Zo(e){for(let t=0;t<3;t++)e[3*t]=e[3*t+1]=e[3*t+2]=0,e[3*t+t]=1}function Jo(e,t){for(let n=0;n1&&void 0!==arguments[1]?arguments[1]:0;if(!`${e}`.includes("e"))return+`${Math.round(`${e}e+${t}`)}e-${t}`;const n=`${e}`.split("e");let r="";return+n[1]+t>0&&(r="+"),+`${Math.round(`${+n[0]}e${r}${+n[1]+t}`)}e-${t}`}function na(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t[0]=ta(e[0],n),t[1]=ta(e[1],n),t[2]=ta(e[2],n),t}function ra(e,t,n,r){let o,a,i,s,l,c,u,d,p,f,g,m,h,v,b,y;const T=To(t),x=To(t),S=(e,t,n)=>{v=e[t],h=e[n],e[t]=v-m*(h+v*f),e[n]=h+m*(v-h*f)};for(Jo(t,r),l=0;l3&&Math.abs(n[l])+v===Math.abs(n[l])&&Math.abs(n[s])+v===Math.abs(n[s]))e[l*t+s]=0;else if(Math.abs(e[l*t+s])>u){for(h=n[s]-n[l],Math.abs(h)+v===Math.abs(h)?p=e[l*t+s]/h:(d=.5*h/e[l*t+s],p=1/(Math.abs(d)+Math.sqrt(1+d*d)),d<0&&(p=-p)),b=1/Math.sqrt(1+p*p),m=p*b,f=m/(1+b),h=p*e[l*t+s],x[l]-=h,x[s]+=h,n[l]-=h,n[s]+=h,e[l*t+s]=0,a=0;a<=l-1;a++)S(e,a*t+l,a*t+s);for(a=l+1;a<=s-1;a++)S(e,l*t+a,a*t+s);for(a=s+1;a=20)return mo("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(a=0;a=y||Math.abs(n[o]-y)>1)+(1&t);for(c=0,o=0;o=0&&c++;if(cr?a:r,o=i>o?i:o,n[e]=1,0!==o&&(n[e]/=o)}const a=Math.abs(t[0])*n[0],i=Math.abs(t[3])*n[1],s=Math.abs(t[6])*n[2];r[0]=0,o=a,i>=o&&(o=i,r[0]=1),s>=o&&(r[0]=2),0!==r[0]&&(yo(t,3,r[0],0),n[r[0]]=n[0]);const l=Math.abs(t[4])*n[1],c=Math.abs(t[7])*n[2];r[1]=1,o=l,c>=o&&(r[1]=2,yo(t,3,1,2)),r[2]=2;let u=0;if(Xo(t)<0){u=1;for(let e=0;e<9;e++)t[e]=-t[e]}const d=To(4);if(oa(t,d),ea(d,t),u)for(let e=0;e<9;e++)t[e]=-t[e];1!==r[1]&&yo(t,3,r[1],1),0!==r[0]&&yo(t,3,r[0],0)}function ia(e,t,n){let r,o,a,i,s,l;if(ra([...e],3,t,n),t[0]!==t[1]||t[0]!==t[2]){for(qo(n,n),r=0;r<3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[3*r]),i=0,o=1;o<3;o++)l<(s=Math.abs(n[3*r+o]))&&(l=s,i=o);i!==r&&(s=t[i],t[i]=t[r],t[r]=s,bo(n,3,r,i)),n[3*i+i]<0&&(n[3*i]=-n[3*i],n[3*i+1]=-n[3*i+1],n[3*i+2]=-n[3*i+2]),o=(i+1)%3,a=(i+2)%3,n[3*o]=0,n[3*o+1]=0,n[3*o+2]=0,n[3*o+o]=1;const e=ko([n[3*i],n[3*i+1],n[3*i+2]],[n[3*o],n[3*o+1],n[3*o+2]],[]);Go(e);const c=ko(e,[n[3*i],n[3*i+1],n[3*i+2]],[]);for(let t=0;t<3;t++)n[3*a+t]=e[t],n[3*o+t]=c[t];return void qo(n,n)}for(l=Math.abs(n[0]),i=0,r=1;r<3;r++)l<(s=Math.abs(n[3*r]))&&(l=s,i=r);if(0!==i){const e=t[i];t[i]=t[0],t[0]=e,bo(n,3,i,0)}if(Math.abs(n[4])i&&(i=c);if(0===i)return mo("Unable to factor linear system"),0;d[r]=1/i}for(o=0;o=i&&(i=l,u=r)}if(o!==u){for(a=0;a=0)for(a=i;a<=o-1;a++)l-=e[o*r+a]*n[a];else 0!==l&&(i=o);n[o]=l}for(o=r-1;o>=0;o--){for(l=n[o],a=o+1;a3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;const a=r||To(n),i=o||To(n);if(0===sa(e,a,n))return null;for(let r=0;ri&&n<=a?(u=1,c=(a-n)/i,d=0):n>a&&n<=.5?(u=1,d=(n-a)/i,c=0):n>.5&&n<=s?(d=1,u=(s-n)/i,c=0):n>s&&n<=l?(d=1,c=(n-s)/i,u=0):n>l&&n<=1?(c=1,d=(1-n)/i,u=0):(c=1,u=n/i,d=0),c=r*c+(1-r),u=r*u+(1-r),d=r*d+(1-r),c*=o,u*=o,d*=o,t[0]=c,t[1]=u,t[2]=d}function fa(e,t){const[n,r,o]=e;let a=(n+16)/116,i=r/500+a,s=a-o/200;a**3>.008856?a**=3:a=(a-16/116)/7.787,i**3>.008856?i**=3:i=(i-16/116)/7.787,s**3>.008856?s**=3:s=(s-16/116)/7.787,t[0]=.9505*i,t[1]=1*a,t[2]=1.089*s}function ga(e,t){const[n,r,o]=e;let a=n/.9505,i=r/1,s=o/1.089;a>.008856?a**=1/3:a=7.787*a+16/116,i>.008856?i**=1/3:i=7.787*i+16/116,s>.008856?s**=1/3:s=7.787*s+16/116,t[0]=116*i-16,t[1]=500*(a-i),t[2]=200*(i-s)}function ma(e,t){const[n,r,o]=e;let a=3.2406*n+-1.5372*r+-.4986*o,i=-.9689*n+1.8758*r+.0415*o,s=.0557*n+-.204*r+1.057*o;a>.0031308?a=1.055*a**(1/2.4)-.055:a*=12.92,i>.0031308?i=1.055*i**(1/2.4)-.055:i*=12.92,s>.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92;let l=a;l1&&(a/=l,i/=l,s/=l),a<0&&(a=0),i<0&&(i=0),s<0&&(s=0),t[0]=a,t[1]=i,t[2]=s}function ha(e,t){let[n,r,o]=e;n>.04045?n=((n+.055)/1.055)**2.4:n/=12.92,r>.04045?r=((r+.055)/1.055)**2.4:r/=12.92,o>.04045?o=((o+.055)/1.055)**2.4:o/=12.92,t[0]=.4124*n+.3576*r+.1805*o,t[1]=.2126*n+.7152*r+.0722*o,t[2]=.0193*n+.1192*r+.9505*o}function va(e){return e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1,e}function ba(e){return!(e[1]-e[0]<0)}function ya(e,t,n){return en?n:e}function Ta(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[0,0,0];return r[0]=ya(e[0],t[0],n[0]),r[1]=ya(e[1],t[1],n[1]),r[2]=ya(e[2],t[2],n[2]),r}const xa=vo("GetScalarTypeFittingRange"),Sa=vo("GetAdjustedScalarRange");const{isFinite:Ca,isNaN:Aa}=Number,wa=Aa;function Pa(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Ia(e){const t=Math.floor(255*e);return t>15?t.toString(16):`0${t.toString(16)}`}function Oa(e){return Math.round(255*e)}var Ea={Pi:()=>Math.PI,ldexp:function(e,t){return t>1023?e*2**1023*2**(t-1023):t<-1074?5e-324*e*2**(t+1074):e*2**t},radiansFromDegrees:xo,degreesFromRadians:So,round:Co,floor:Ao,ceil:wo,ceilLog2:Oo,min:Po,max:Io,arrayMin:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0;for(let o=t,a=e.length;o1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=-1/0;for(let o=t,a=e.length;o1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,o=-1/0;for(let a=t,i=e.length;a=0;--o)if(n[o]0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=t-e;return e+n*Math.random()},gaussian:Do,add:Bo,subtract:Lo,multiplyScalar:Vo,multiplyScalar2D:_o,multiplyAccumulate:No,multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:Fo,outer:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[0]*t[2],n[3]=e[1]*t[0],n[4]=e[1]*t[1],n[5]=e[1]*t[2],n[6]=e[2]*t[0],n[7]=e[2]*t[1],n[8]=e[2]*t[2]},cross:ko,norm:Uo,normalize:Go,perpendiculars:function(e,t,n,r){const o=e[0]*e[0],a=e[1]*e[1],i=e[2]*e[2],s=Math.sqrt(o+a+i);let l,c,u;o>a&&o>i?(l=0,c=1,u=2):a>i?(l=1,c=2,u=0):(l=2,c=0,u=1);const d=e[l]/s,p=e[c]/s,f=e[u]/s,g=Math.sqrt(d*d+f*f);if(0!==r){const e=Math.sin(r),o=Math.cos(r);t&&(t[l]=(f*o-d*p*e)/g,t[c]=e*g,t[u]=(-d*o-p*f*e)/g),n&&(n[l]=(-f*e-d*p*o)/g,n[c]=o*g,n[u]=(d*e-p*f*o)/g)}else t&&(t[l]=f/g,t[c]=0,t[u]=-d/g),n&&(n[l]=-d*p/g,n[c]=g,n[u]=-p*f/g)},projectVector:function(e,t,n){const r=Fo(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;const o=Fo(e,t)/r;for(let e=0;e<3;e++)n[e]=t[e];return Vo(n,o),!0},projectVector2D:function(e,t,n){const r=zo(t,t);if(0===r)return n[0]=0,n[1]=0,!1;const o=zo(e,t)/r;for(let e=0;e<2;e++)n[e]=t[e];return _o(n,o),!0},distance2BetweenPoints:Wo,angleBetweenVectors:function(e,t){const n=[0,0,0];return ko(e,t,n),Math.atan2(Uo(n),Fo(e,t))},gaussianAmplitude:function(e,t,n){const r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-(r**2)/(2*t))},gaussianWeight:function(e,t,n){const r=Math.abs(e-n);return Math.exp(-(r**2)/(2*t))},dot2D:zo,outer2D:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[1]*t[0],n[3]=e[1]*t[1]},norm2D:Ho,normalize2D:jo,determinant2x2:$o,LUFactor3x3:function(e,t){let n,r,o;const a=[0,0,0];for(let t=0;t<3;t++)o=Math.abs(e[3*t]),(r=Math.abs(e[3*t+1]))>o&&(o=r),(r=Math.abs(e[3*t+2]))>o&&(o=r),a[t]=1/o;o=a[0]*Math.abs(e[0]),n=0,(r=a[1]*Math.abs(e[3]))>=o&&(o=r,n=1),(r=a[2]*Math.abs(e[6]))>=o&&(n=2),0!==n&&(bo(e,3,n,0),a[n]=a[0]),t[0]=n,e[3]/=e[0],e[6]/=e[0],e[4]-=e[3]*e[1],e[7]-=e[6]*e[1],o=a[1]*Math.abs(e[4]),n=1,(r=a[2]*Math.abs(e[7]))>=o&&(n=2,bo(e,3,1,2),a[2]=a[1]),t[1]=n,e[7]/=e[4],e[5]-=e[3]*e[2],e[8]-=e[6]*e[2]+e[7]*e[5],t[2]=2},LUSolve3x3:function(e,t,n){let r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[3]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[6]*n[0]-e[7]*n[1],n[2]/=e[8],n[1]=(n[1]-e[5]*n[2])/e[4],n[0]=(n[0]-e[1]*n[1]-e[2]*n[2])/e[0]},linearSolve3x3:function(e,t,n){const r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=+$o(s,u,l,d),f=-$o(i,c,l,d),g=+$o(i,c,s,u),m=-$o(o,u,a,d),h=+$o(r,c,a,d),v=-$o(r,c,o,u),b=+$o(o,s,a,l),y=-$o(r,i,a,l),T=+$o(r,i,o,s),x=r*p+o*f+a*g,S=p*t[0]+m*t[1]+b*t[2],C=f*t[0]+h*t[1]+y*t[2],A=g*t[0]+v*t[1]+T*t[2];n[0]=S/x,n[1]=C/x,n[2]=A/x},multiply3x3_vect3:function(e,t,n){const r=e[0]*t[0]+e[1]*t[1]+e[2]*t[2],o=e[3]*t[0]+e[4]*t[1]+e[5]*t[2],a=e[6]*t[0]+e[7]*t[1]+e[8]*t[2];n[0]=r,n[1]=o,n[2]=a},multiply3x3_mat3:Ko,multiplyMatrix:function(e,t,n,r,o,a,i){r!==o&&go("Number of columns of A must match number of rows of B.");const s=[...e],l=[...t];for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:po;return Qo(e,co,t)},isIdentity3x3:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:po;return Qo(e,uo,t)},determinant3x3:Xo,quaternionToMatrix3x3:ea,areEquals:Yo,areMatricesEqual:Qo,roundNumber:ta,roundVector:na,matrix3x3ToQuaternion:oa,multiplyQuaternion:function(e,t,n){const r=e[0]*t[0],o=e[0]*t[1],a=e[0]*t[2],i=e[0]*t[3],s=e[1]*t[0],l=e[1]*t[1],c=e[1]*t[2],u=e[1]*t[3],d=e[2]*t[0],p=e[2]*t[1],f=e[2]*t[2],g=e[2]*t[3],m=e[3]*t[0],h=e[3]*t[1],v=e[3]*t[2],b=e[3]*t[3];n[0]=r-l-f-b,n[1]=o+s+g-v,n[2]=a-u+d+h,n[3]=i+c-p+m},orthogonalize3x3:aa,diagonalize3x3:ia,singularValueDecomposition3x3:function(e,t,n,r){let o;const a=[...e],i=Xo(a);if(i<0)for(o=0;o<9;o++)a[o]=-a[o];aa(a,t),qo(a,a),Ko(a,t,r),ia(r,n,r),Ko(t,r,t),qo(r,r),i<0&&(n[0]=-n[0],n[1]=-n[1],n[2]=-n[2])},solveLinearSystem:ca,invertMatrix:ua,luFactorLinearSystem:sa,luSolveLinearSystem:la,estimateMatrixCondition:function(e,t){let n=+Number.MAX_VALUE,r=-Number.MAX_VALUE;for(let n=0;nr&&(r=Math.abs(e[n*t+o]));for(let r=0;r6&&void 0!==arguments[6])||arguments[6];if(efo&&(p=0,s[u]=0);if(p&&1===o)return mo("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),da(e,t,n,a);if(p)g=1;else for(u=0;u1&&void 0!==arguments[1]?arguments[1]:[0,.5,1];switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:function(e,t){let n,r;const[o,a,i]=e,s=1/6;let l=o,c=o;a>l?l=a:al?l=i:i0?(l-c)/l:0,r>0?(n=o===l?s*(a-i)/(l-c):a===l?.3333333333333333+s*(i-o)/(l-c):.6666666666666666+s*(o-a)/(l-c),n<0&&(n+=1)):n=0,t[0]=n,t[1]=r,t[2]=u},hsv2rgb:pa,lab2xyz:fa,xyz2lab:ga,xyz2rgb:ma,rgb2xyz:ha,rgb2lab:function(e,t){const n=[0,0,0];ha(e,n),ga(n,t)},lab2rgb:function(e,t){const n=[0,0,0];fa(e,n),ma(n,t)},uninitializeBounds:va,areBoundsInitialized:ba,computeBoundsFromPoints:function(e,t,n){return n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2]),n},clampValue:ya,clampVector:Ta,clampAndNormalizeValue:function(e,t){let n=0;return t[0]!==t[1]&&(n=et[1]?t[1]:e,n=(n-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:xa,getAdjustedScalarRange:Sa,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(let n=0;n<6;n+=2)if(e[n]t[n+1]||e[n+1]t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(let r=0;r<6;r+=2)if(e[r]+n[r/2]t[r+1]||e[r+1]+n[r/2]t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(let r=0;r<3;r++)if(e[r]+n[r]t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){const o=To(3),a=To(3),i=To(3),s=To(3),l=To(3),c=To(3);for(let r=0;r<3;++r)o[r]=e[r]-t[r],a[r]=t[r]-n[r],i[r]=n[r]-e[r],s[r]=-o[r],l[r]=-a[r],c[r]=-i[r];const u=Uo(s),d=Uo(l),p=Uo(i),f=To(3);ko(o,a,f);const g=Uo(f),m=u*d*p/(2*g),h=2*g*g,v=d*d*Fo(o,c)/h,b=p*p*Fo(s,a)/h,y=u*u*Fo(i,l)/h;for(let o=0;o<3;++o)r[o]=v*e[o]+b*t[o]+y*n[o];return m},inf:1/0,negInf:-1/0,isInf:e=>!Number.isFinite(e),isNan:Aa,isNaN:Aa,isFinite:Ca,createUninitializedBounds:Pa,getMajorAxisIndex:function(e){let t=-1,n=-1;for(let r=0;rt&&(n=r,t=o)}return n},getSparseOrthogonalMatrix:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;const n=new Array(t),r=new Array(t);for(let e=0;e0;o--){let a=-1/0,i=0,s=0;for(let l=0;l<=o;++l){const c=n[l];for(let n=0;n<=o;++n){const o=r[n],u=Math.abs(e[c+t*o]);u>a&&(a=u,i=l,s=n)}}[n[o],n[i]]=[n[i],n[o]],[r[o],r[s]]=[r[s],r[o]]}const o=new Array(t*t).fill(0);for(let a=0;a1&&void 0!==arguments[1]?arguments[1]:"#";return`${t}${e.map(Ia).join("")}`},float2CssRGBA:function(e){return 3===e.length?`rgb(${e.map(Oa).join(", ")})`:`rgba(${Oa(e[0]||0)}, ${Oa(e[1]||0)}, ${Oa(e[2]||0)}, ${e[3]||0})`}};function Ma(e,t){t.classHierarchy.push("vtkImplicitFunction"),e.functionValue=n=>{if(!t.transform)return e.evaluateFunction(n);const r=[];return t.transform.transformPoint(n,r),e.evaluateFunction(r)},e.evaluateFunction=e=>{Wt.vtkErrorMacro("not implemented")}}const Ra={};function Da(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ra,n),Wt.obj(e,t),Wt.setGet(e,t,["transform"]),Ma(e,t)}var Ba={newInstance:Wt.newInstance(Da,"vtkImplicitFunction"),extend:Da};const La=1e-6,Va="coincide",_a="disjoint";function Na(e,t,n){const r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function Fa(e,t,n,r){const o=[];Lo(e,t,o);const a=Fo(n,o);r[0]=e[0]-a*n[0],r[1]=e[1]-a*n[1],r[2]=e[2]-a*n[2]}function ka(e,t,n){const r=Fo(e,t);let o=Fo(t,t);return 0===o&&(o=1),n[0]=e[0]-r*t[0]/o,n[1]=e[1]-r*t[1]/o,n[2]=e[2]-r*t[2]/o,n}function Ua(e,t,n,r){const o=[];Lo(e,t,o);const a=Fo(n,o),i=Fo(n,n);0!==i?(r[0]=e[0]-a*n[0]/i,r[1]=e[1]-a*n[1]/i,r[2]=e[2]-a*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function Ga(e,t,n,r){const o={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},a=[],i=[];Lo(t,e,a),Lo(n,e,i);const s=Fo(r,i),l=Fo(r,a);let c,u;return c=l<0?-l:l,u=s<0?-s*La:s*La,c<=u||(o.t=s/l,o.x[0]=e[0]+o.t*a[0],o.x[1]=e[1]+o.t*a[1],o.x[2]=e[2]+o.t*a[2],o.intersection=!0,o.betweenPoints=o.t>=0&&o.t<=1),o}function za(e,t,n,r){const o={intersection:!1,l0:[],l1:[],error:null},a=[];ko(t,r,a);const i=a.map((e=>Math.abs(e)));if(i[0]+i[1]+i[2]i[1]&&i[0]>i[2]?"x":i[1]>i[2]?"y":"z";const l=[],c=-Fo(t,e),u=-Fo(r,n);switch(s){case"x":l[0]=0,l[1]=(u*t[2]-c*r[2])/a[0],l[2]=(c*r[1]-u*t[1])/a[0];break;case"y":l[0]=(c*r[2]-u*t[2])/a[1],l[1]=0,l[2]=(u*t[0]-c*r[0])/a[1];break;case"z":l[0]=(u*t[1]-c*r[1])/a[2],l[1]=(c*r[0]-u*t[0])/a[2],l[2]=0}return o.l0=l,Bo(l,a,o.l1),o.intersection=!0,o}const Wa={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:Na,projectPoint:Fa,projectVector:ka,generalizedProjectPoint:Ua,intersectWithLine:Ga,intersectWithPlane:za,DISJOINT:_a,COINCIDE:Va};function Ha(e,t){t.classHierarchy.push("vtkPlane"),e.distanceToPlane=e=>Na(e,t.origin,t.normal),e.projectPoint=(e,n)=>{Fa(e,t.origin,t.normal,n)},e.projectVector=(e,n)=>ka(e,t.normal,n),e.push=e=>{if(0!==e)for(let n=0;n<3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=(e,n)=>{Ua(e,t.origin,t.normal,n)},e.evaluateFunction=(e,n,r)=>Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2]),e.evaluateGradient=e=>[t.normal[0],t.normal[1],t.normal[2]],e.intersectWithLine=(e,n)=>Ga(e,n,t.origin,t.normal),e.intersectWithPlane=(e,n)=>za(e,n,t.origin,t.normal)}const ja={normal:[0,0,1],origin:[0,0,0]};function $a(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ja,n),Ba.extend(e,t,n),Wt.setGetArray(e,t,["normal","origin"],3),Ha(e,t)}var Ka={newInstance:Wt.newInstance($a,"vtkPlane"),extend:$a,...Wa};const qa=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function Xa(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function Ya(e){return e?.length>=6&&e[0]<=e[1]&&e[2]<=e[3]&&e[4]<=e[5]}function Qa(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Za(e){return Qa(e,qa)}function Ja(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=ot?a:t,e[2]=in?s:n,e[4]=lr?c:r,e}function ei(e,t){if(0===t.length)return e;if(Array.isArray(t[0]))for(let n=0;na?t:a,e[2]=n,e[3]=n>s?n:s,e[4]=r,e[5]=r>c?r:c,o!==t||i!==n||l!==r}function ri(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=t=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n>=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r>=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function ii(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function si(e,t){return e[2*t+1]-e[2*t]}function li(e){return[si(e,0),si(e,1),si(e,2)]}function ci(e){return e.slice(0,2)}function ui(e){return e.slice(2,4)}function di(e){return e.slice(4,6)}function pi(e){const t=li(e);return t[0]>t[1]?t[0]>t[2]?t[0]:t[2]:t[1]>t[2]?t[1]:t[2]}function fi(e){if(Ya(e)){const t=li(e);return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}return null}function gi(e){return[e[0],e[2],e[4]]}function mi(e){return[e[1],e[3],e[5]]}function hi(e,t){return e<=0&&t>=0||e>=0&&t<=0}function vi(e,t){let n=0;for(let r=0;r<2;r++)for(let o=2;o<4;o++)for(let a=4;a<6;a++)t[n++]=[e[r],e[o],e[a]];return t}function bi(e,t,n){return t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5],t}function yi(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const r=vi(e,[]);for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:[];return t[0]=.5*(e[1]-e[0]),t[1]=.5*(e[3]-e[2]),t[2]=.5*(e[5]-e[4]),t}function xi(e,t,n,r){const o=[].concat(qa),a=e.getData();for(let e=0;ee[2*n+1]?(i[n]=0,c[n]=e[2*n+1],a=!1):i[n]=2;if(a)return r[0]=t[0],r[1]=t[1],r[2]=t[2],o[0]=0,1;for(let e=0;e<3;e++)2!==i[e]&&0!==n[e]?l[e]=(c[e]-t[e])/n[e]:l[e]=-1;for(let e=0;e<3;e++)l[s]1||l[s]<0)return 0;o[0]=l[s];for(let o=0;o<3;o++)if(s!==o){if(r[o]=t[o]+l[s]*n[o],r[o]e[2*o+1])return 0}else r[o]=c[o];return 1}function Ci(e,t,n){const r=[];let o=0,a=1,i=1;for(let s=4;s<=5;++s){r[2]=e[s];for(let s=2;s<=3;++s){r[1]=e[s];for(let s=0;s<=1;++s)if(r[0]=e[s],o=Ka.evaluate(n,t,r),i&&(a=o>=0?1:-1,i=0),0===o||a>0&&o<0||a<0&&o>0)return 1}}return 0}function Ai(e,t){if(!Ya(e)||!Ya(t))return!1;const n=[0,0,0,0,0,0];let r;for(let o=0;o<3;o++)if(r=!1,t[2*o]>=e[2*o]&&t[2*o]<=e[2*o+1]?(r=!0,n[2*o]=t[2*o]):e[2*o]>=t[2*o]&&e[2*o]<=t[2*o+1]&&(r=!0,n[2*o]=e[2*o]),t[2*o+1]>=e[2*o]&&t[2*o+1]<=e[2*o+1]?(r=!0,n[2*o+1]=t[2*o+1]):e[2*o+1]>=t[2*o]&&e[2*o+1]<=t[2*o+1]&&(r=!0,n[2*o+1]=e[2*o+1]),!r)return!1;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],!0}function wi(e,t){if(!Ya(e)||!Ya(t))return!1;for(let n=0;n<3;n++)if(!(t[2*n]>=e[2*n]&&t[2*n]<=e[2*n+1]||e[2*n]>=t[2*n]&&e[2*n]<=t[2*n+1]||t[2*n+1]>=e[2*n]&&t[2*n+1]<=e[2*n+1]||e[2*n+1]>=t[2*n]&&e[2*n+1]<=t[2*n+1]))return!1;return!0}function Pi(e,t,n,r){return!(te[1]||ne[3]||re[5])}function Ii(e,t,n){const r=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],o=[0,0,0,0,0,0,0,0];let a=0;for(let r=0;r<2;r++)for(let i=2;i<4;i++)for(let s=4;s<6;s++){const l=[e[r],e[i],e[s]];o[a++]=Ka.evaluate(n,t,l)}let i=2;for(;i--&&!(hi(o[r[i][0]],o[r[i][4]])&&hi(o[r[i][1]],o[r[i][5]])&&hi(o[r[i][2]],o[r[i][6]])&&hi(o[r[i][3]],o[r[i][7]])););if(i<0)return!1;const s=Math.sign(n[i]),l=Math.abs((e[2*i+1]-e[2*i])*n[i]);let c=s>0?1:0;for(let e=0;e<4;e++){if(0===l)continue;const t=Math.abs(o[r[i][e]])/l;s>0&&tc&&(c=t)}const u=(1-c)*e[2*i]+c*e[2*i+1];return s>0?e[2*i]=u:e[2*i+1]=u,!0}class Oi{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(qa))}getBounds(){return this.bounds}equals(e){return Xa(this.bounds,e)}isValid(){return Ya(this.bounds)}setBounds(e){return Qa(this.bounds,e)}reset(){return Za(this.bounds)}addPoint(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];return yi(this.bounds,e,t)}computeScale3(e){return Ti(this.bounds,e)}cutWithPlane(e,t){return Ii(this.bounds,e,t)}intersectBox(e,t,n,r){return Si(this.bounds,e,t,n,r)}intersectPlane(e,t){return Ci(this.bounds,e,t)}intersect(e){return Ai(this.bounds,e)}intersects(e){return wi(this.bounds,e)}containsPoint(e,t,n){return Pi(this.bounds,e,t,n)}contains(e){return wi(this.bounds,e)}}var Ei,Mi={newInstance:function(e){const t=e&&e.bounds;return new Oi(t)},equals:Xa,isValid:Ya,setBounds:Qa,reset:Za,addPoint:Ja,addPoints:ei,addBounds:ti,setMinPoint:ni,setMaxPoint:ri,inflate:oi,scale:ai,scaleAboutCenter:function(e,t,n,r){if(!Ya(e))return!1;const o=ii(e);return e[0]-=o[0],e[1]-=o[0],e[2]-=o[1],e[3]-=o[1],e[4]-=o[2],e[5]-=o[2],ai(e,t,n,r),e[0]+=o[0],e[1]+=o[0],e[2]+=o[1],e[3]+=o[1],e[4]+=o[2],e[5]+=o[2],!0},getCenter:ii,getLength:si,getLengths:li,getMaxLength:pi,getDiagonalLength:fi,getMinPoint:gi,getMaxPoint:mi,getXRange:ci,getYRange:ui,getZRange:di,getCorners:vi,computeCornerPoints:bi,computeLocalBounds:xi,transformBounds:yi,computeScale3:Ti,cutWithPlane:Ii,intersectBox:Si,intersectPlane:Ci,intersect:Ai,intersects:wi,containsPoint:Pi,contains:function(e,t){return!!wi(e,t)&&!!Pi(e,...gi(t))&&!!Pi(e,...mi(t))},INIT_BOUNDS:qa};function Ri(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3];return e[0]=n[0]*r+n[4]*o+n[8]*a+n[12]*i,e[1]=n[1]*r+n[5]*o+n[9]*a+n[13]*i,e[2]=n[2]*r+n[6]*o+n[10]*a+n[14]*i,e[3]=n[3]*r+n[7]*o+n[11]*a+n[15]*i,e}function Di(){var e=new i(4);return i!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Bi(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function Li(e,t){var n=2*Math.acos(t[3]),r=Math.sin(n/2);return r>a?(e[0]=t[0]/r,e[1]=t[1]/r,e[2]=t[2]/r):(e[0]=1,e[1]=0,e[2]=0),n}function Vi(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+o*c-a*l,e[1]=o*u+i*l+a*s-r*c,e[2]=a*u+i*c+r*l-o*s,e[3]=i*u-r*s-o*l-a*c,e}function _i(e,t,n,r){var o,i,s,l,c,u=t[0],d=t[1],p=t[2],f=t[3],g=n[0],m=n[1],h=n[2],v=n[3];return(i=u*g+d*m+p*h+f*v)<0&&(i=-i,g=-g,m=-m,h=-h,v=-v),1-i>a?(o=Math.acos(i),s=Math.sin(o),l=Math.sin((1-r)*o)/s,c=Math.sin(r*o)/s):(l=1-r,c=r),e[0]=l*u+c*g,e[1]=l*d+c*m,e[2]=l*p+c*h,e[3]=l*f+c*v,e}Ei=new i(4),i!=Float32Array&&(Ei[0]=0,Ei[1]=0,Ei[2]=0,Ei[3]=0);var Ni=function(e,t,n,r){var o=new i(4);return o[0]=e,o[1]=t,o[2]=n,o[3]=r,o};Tn(),xn(1,0,0),xn(0,1,0),Di(),Di(),oe();var Fi={CoordinateSystem:{DISPLAY:0,WORLD:1}};const{CoordinateSystem:ki}=Fi;function Ui(e){return()=>Wt.vtkErrorMacro(`vtkProp::${e} - NOT IMPLEMENTED`)}function Gi(e,t){t.classHierarchy.push("vtkProp"),e.getMTime=()=>{let e=t.mtime;for(let n=0;ne&&(e=r)}return e},e.processSelectorPixelBuffers=(e,t)=>{},e.getNestedProps=()=>null,e.getActors=()=>[],e.getActors2D=()=>[],e.getVolumes=()=>[],e.pick=Ui("pick"),e.hasKey=Ui("hasKey"),e.getNestedVisibility=()=>t.visibility&&(!t._parentProp||t._parentProp.getNestedVisibility()),e.getNestedPickable=()=>t.pickable&&(!t._parentProp||t._parentProp.getNestedPickable()),e.getNestedDragable=()=>t.dragable&&(!t._parentProp||t._parentProp.getNestedDragable()),e.getRedrawMTime=()=>t.mtime,e.setEstimatedRenderTime=e=>{t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=()=>{t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=e=>{t.estimatedRenderTime+=e},e.setAllocatedRenderTime=e=>{t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=()=>!1,e.getTextures=()=>t.textures,e.hasTexture=e=>-1!==t.textures.indexOf(e),e.addTexture=n=>{n&&!e.hasTexture(n)&&(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=n=>{const r=t.textures.filter((e=>e!==n));t.textures.length!==r.length&&(t.textures=r,e.modified())},e.removeAllTextures=()=>{t.textures=[],e.modified()},e.setCoordinateSystemToWorld=()=>e.setCoordinateSystem(ki.WORLD),e.setCoordinateSystemToDisplay=()=>e.setCoordinateSystem(ki.DISPLAY)}const zi={allocatedRenderTime:10,coordinateSystem:ki.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function Wi(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zi,n),Wt.obj(e,t),Wt.get(e,t,["estimatedRenderTime","allocatedRenderTime"]),Wt.setGet(e,t,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),Wt.moveToProtected(e,t,["parentProp"]),Gi(e,t)}var Hi={newInstance:Wt.newInstance(Wi,"vtkProp"),extend:Wi,...Fi};function ji(e,t){t.classHierarchy.push("vtkProp3D"),e.addPosition=n=>{t.position=t.position.map(((e,t)=>e+n[t])),e.modified()},e.getOrientationWXYZ=()=>{const e=Di();L(e,t.rotation);const n=new Float64Array(3);return[So(Li(n,e)),n[0],n[1],n[2]]},e.getOrientationQuaternion=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return L(e,t.rotation)},e.rotateX=n=>{0!==n&&(x(t.rotation,t.rotation,xo(n)),e.modified())},e.rotateY=n=>{0!==n&&(S(t.rotation,t.rotation,xo(n)),e.modified())},e.rotateZ=n=>{0!==n&&(C(t.rotation,t.rotation,xo(n)),e.modified())},e.rotateWXYZ=(n,r,o,a)=>{if(0===n||0===r&&0===o&&0===a)return;const i=xo(n),s=Di();Bi(s,[r,o,a],i);const l=new Float64Array(16);N(l,s),v(t.rotation,t.rotation,l),e.modified()},e.rotateQuaternion=n=>{if(Math.abs(n[3])>=.999999)return;const r=N(new Float64Array(16),n);v(t.rotation,t.rotation,r),e.modified()},e.setOrientation=(n,r,o)=>(n!==t.orientation[0]||r!==t.orientation[1]||o!==t.orientation[2])&&(t.orientation=[n,r,o],p(t.rotation),e.rotateZ(o),e.rotateX(n),e.rotateY(r),e.modified(),!0),e.setUserMatrix=n=>!Qo(t.userMatrix,n)&&(c(t.userMatrix,n),e.modified(),!0),e.getMatrix=()=>(e.computeMatrix(),t.matrix),e.computeMatrix=()=>{if(e.getMTime()>t.matrixMTime.getMTime()){p(t.matrix),t.userMatrix&&v(t.matrix,t.matrix,t.userMatrix),b(t.matrix,t.matrix,t.origin),b(t.matrix,t.matrix,t.position),v(t.matrix,t.matrix,t.rotation),y(t.matrix,t.matrix,t.scale),b(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),f(t.matrix,t.matrix),t.isIdentity=!0;for(let e=0;e<4;++e)for(let n=0;n<4;++n)(e===n?1:0)!==t.matrix[e+4*n]&&(t.isIdentity=!1);t.matrixMTime.modified()}},e.getCenter=()=>Mi.getCenter(t.bounds),e.getLength=()=>Mi.getLength(t.bounds),e.getXRange=()=>Mi.getXRange(t.bounds),e.getYRange=()=>Mi.getYRange(t.bounds),e.getZRange=()=>Mi.getZRange(t.bounds),e.getUserMatrix=()=>t.userMatrix,e.onModified((function(){e.computeMatrix()}))}const $i={origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],bounds:[1,-1,1,-1,1,-1],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function Ki(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$i,n),Hi.extend(e,t,n),t.matrixMTime={},Wt.obj(t.matrixMTime),Wt.get(e,t,["bounds","isIdentity"]),Wt.getArray(e,t,["orientation"]),Wt.setGetArray(e,t,["origin","position","scale"],3),t.matrix=p(new Float64Array(16)),t.rotation=p(new Float64Array(16)),t.userMatrix=p(new Float64Array(16)),t.transform=null,ji(e,t)}var qi={newInstance:Wt.newInstance(Ki,"vtkProp3D"),extend:Ki};const Xi={FLAT:0,GOURAUD:1,PHONG:2},Yi={POINTS:0,WIREFRAME:1,SURFACE:2};var Qi={Shading:Xi,Representation:Yi,Interpolation:Xi};const{Representation:Zi,Interpolation:Ji}=Qi;function es(e){return()=>Wt.vtkErrorMacro(`vtkProperty::${e} - NOT IMPLEMENTED`)}function ts(e,t){t.classHierarchy.push("vtkProperty"),e.setColor=(n,r,o)=>{Array.isArray(n)?t.color[0]===n[0]&&t.color[1]===n[1]&&t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&&t.color[1]===r&&t.color[2]===o||(t.color[0]=n,t.color[1]=r,t.color[2]=o,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=es("ComputeCompositeColor"),e.getColor=()=>{let e=0;t.ambient+t.diffuse+t.specular>0&&(e=1/(t.ambient+t.diffuse+t.specular));for(let n=0;n<3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.setSpecularPower=n=>{const r=1/Math.max(1,n);t.roughness===r&&t.specularPower===n||(t.specularPower=n,t.roughness=r,e.modified())},e.addShaderVariable=es("AddShaderVariable"),e.setInterpolationToFlat=()=>e.setInterpolation(Ji.FLAT),e.setInterpolationToGouraud=()=>e.setInterpolation(Ji.GOURAUD),e.setInterpolationToPhong=()=>e.setInterpolation(Ji.PHONG),e.getInterpolationAsString=()=>Wt.enumToString(Ji,t.interpolation),e.setRepresentationToWireframe=()=>e.setRepresentation(Zi.WIREFRAME),e.setRepresentationToSurface=()=>e.setRepresentation(Zi.SURFACE),e.setRepresentationToPoints=()=>e.setRepresentation(Zi.POINTS),e.getRepresentationAsString=()=>Wt.enumToString(Zi,t.representation)}const ns={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,interpolation:Ji.GOURAUD,representation:Zi.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null};function rs(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ns,n),Wt.obj(e,t),Wt.setGet(e,t,["lighting","interpolation","ambient","diffuse","metallic","roughness","normalStrength","emission","baseIOR","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation","diffuseTexture","metallicTexture","roughnessTexture","normalTexture","ambientOcclusionTexture","emissionTexture"]),Wt.setGetArray(e,t,["ambientColor","specularColor","diffuseColor","edgeColor"],3),ts(e,t)}var os={newInstance:Wt.newInstance(rs,"vtkProperty"),extend:rs,...Qi};const{vtkDebugMacro:as}=Wt;function is(e,t){t.classHierarchy.push("vtkActor");const n={...e};e.getActors=()=>[e],e.getIsOpaque=()=>{if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.property||e.getProperty();let n=t.property.getOpacity()>=1;return n=n&&(!t.texture||!t.texture.isTranslucent()),n=n&&(!t.mapper||t.mapper.getIsOpaque()),n},e.hasTranslucentPolygonalGeometry=()=>null!==t.mapper&&(null===t.property&&e.setProperty(e.makeProperty()),!e.getIsOpaque()),e.makeProperty=os.newInstance,e.getProperty=()=>(null===t.property&&(t.property=e.makeProperty()),t.property),e.getBounds=()=>{if(null===t.mapper)return t.bounds;const n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||n[0]!==t.mapperBounds[0]||n[1]!==t.mapperBounds[1]||n[2]!==t.mapperBounds[2]||n[3]!==t.mapperBounds[3]||n[4]!==t.mapperBounds[4]||n[5]!==t.mapperBounds[5]||e.getMTime()>t.boundsMTime.getMTime()){as("Recomputing bounds..."),t.mapperBounds=n.concat();const r=[];Mi.getCorners(n,r),e.computeMatrix();const o=new Float64Array(16);f(o,t.matrix),r.forEach((e=>In(e,e,o))),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(((e,t)=>t%2==0?r.reduce(((e,n)=>e>n[t/2]?n[t/2]:e),e):r.reduce(((e,n)=>e{let e=n.getMTime();if(null!==t.property){const n=t.property.getMTime();e=n>e?n:e}if(null!==t.backfaceProperty){const n=t.backfaceProperty.getMTime();e=n>e?n:e}return e},e.getRedrawMTime=()=>{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n>e?n:e)}return e},e.getSupportsSelection=()=>!!t.mapper&&t.mapper.getSupportsSelection(),e.processSelectorPixelBuffers=(e,n)=>{t.mapper&&t.mapper.processSelectorPixelBuffers&&t.mapper.processSelectorPixelBuffers(e,n)}}const ss={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function ls(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ss,n),qi.extend(e,t,n),t.boundsMTime={},Wt.obj(t.boundsMTime),Wt.set(e,t,["property"]),Wt.setGet(e,t,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),is(e,t)}var cs={newInstance:Wt.newInstance(ls,"vtkActor"),extend:ls};const us={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},ds={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",UNSIGNED_CHAR_CLAMPED:"Uint8ClampedArray",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"};var ps={DefaultDataType:ds.FLOAT,DataTypeByteSize:us,VtkDataTypes:ds};const{vtkErrorMacro:fs}=Ht,{DefaultDataType:gs}=ps,ms=1e-6;function hs(e,t,n){const r=e.length;let o,a,i=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(a=t;as&&(s=o);return{min:i,max:s}}function vs(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(t<0&&n>1){const t=e.length/n,r=new Float64Array(t);for(let o=0,a=0;o1&&void 0!==arguments[1]?arguments[1]:0;const n=e||[];for(;n.length<=t;)n.push(null);return n}function ys(e){return Object.prototype.toString.call(e).slice(8,-1)}const Ts={computeRange:vs,createRangeHelper:function(){let e=Number.MAX_VALUE,t=-Number.MAX_VALUE,n=0,r=0;return{add(o){e>o&&(e=o),t({min:e,max:t,count:n,sum:r,mean:r/n}),getRange:()=>({min:e,max:t})}},fastComputeRange:hs,getDataType:ys,getMaxNorm:function(e){const t=e.getNumberOfComponents();let n=0;const r=new Array(t);for(let o=0;on&&(n=a)}return n}};function xs(e,t){function n(n){if(n<0)return!1;const r=e.getNumberOfComponents(),o=t.values.length/(r>0?r:1);if(n===o)return!0;if(n>o){const e=t.values;return t.values=rt(t.dataType,(n+o)*r),t.values.set(e),!0}return t.size>n*r&&(t.size=n*r,e.dataChange()),!0}t.classHierarchy.push("vtkDataArray"),e.dataChange=()=>{t.ranges=null,e.modified()},e.resize=r=>{n(r);const o=r*e.getNumberOfComponents();return t.size!==o&&(t.size=o,e.dataChange(),!0)},e.initialize=()=>{e.resize(0)},e.getElementComponentSize=()=>t.values.BYTES_PER_ELEMENT,e.getComponent=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.values[e*t.numberOfComponents+n]},e.setComponent=(n,r,o)=>{o!==t.values[n*t.numberOfComponents+r]&&(t.values[n*t.numberOfComponents+r]=o,e.dataChange())},e.getValue=n=>{const r=n/t.numberOfComponents,o=n%t.numberOfComponents;return e.getComponent(r,o)},e.setValue=(n,r)=>{const o=n/t.numberOfComponents,a=n%t.numberOfComponents;e.setComponent(o,a,r)},e.getData=()=>t.size===t.values.length?t.values:t.values.subarray(0,t.size),e.getRange=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,r=n;r<0&&(r=1===t.numberOfComponents?0:t.numberOfComponents);let o=null;return t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents)),o=t.ranges[r],o?(t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple):(o=vs(e.getData(),n,t.numberOfComponents),t.ranges[r]=o,t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple)},e.setRange=(e,n)=>{t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents));const r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.setTuple=(e,n)=>{const r=e*t.numberOfComponents;for(let e=0;e{let r=e*t.numberOfComponents;const o=Math.min(n.length,t.size-r);for(let e=0;e(t.size<=r*t.numberOfComponents&&(t.size=(r+1)*t.numberOfComponents,n(r+1)),e.setTuple(r,o),r),e.insertTuples=(r,o)=>{const a=r+o.length/t.numberOfComponents;return t.size{const r=t.size/t.numberOfComponents;return e.insertTuple(r,n)},e.insertNextTuples=n=>{const r=t.size/t.numberOfComponents;return e.insertTuples(r,n)},e.findTuple=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ms;for(let r=0;rn){o=!1;break}if(o)return r/t.numberOfComponents}return-1},e.getTuple=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const r=t.numberOfComponents||1,o=e*r;switch(r){case 4:n[3]=t.values[o+3];case 3:n[2]=t.values[o+2];case 2:n[1]=t.values[o+1];case 1:n[0]=t.values[o];break;default:for(let e=r-1;e>=0;--e)n[e]=t.values[o+e]}return n},e.getTuples=(n,r)=>{const o=(n??0)*t.numberOfComponents,a=(r??e.getNumberOfTuples())*t.numberOfComponents,i=e.getData().subarray(o,a);return i.length>0?i:null},e.getTupleLocation=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return e*t.numberOfComponents},e.getNumberOfComponents=()=>t.numberOfComponents,e.getNumberOfValues=()=>t.size,e.getNumberOfTuples=()=>t.size/t.numberOfComponents,e.getDataType=()=>t.dataType,e.newClone=()=>As({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents}),e.getName=()=>(t.name||(e.modified(),t.name=`vtkDataArray${e.getMTime()}`),t.name),e.setData=(n,r)=>{t.values=n,t.size=n.length,t.dataType=ys(n),r&&(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&&(t.numberOfComponents=1),e.dataChange()},e.getState=()=>{if(t.deleted)return null;const n={...t,vtkClass:e.getClassName()};n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach((e=>{n[e]||delete n[e]}));const r={};return Object.keys(n).sort().forEach((e=>{r[e]=n[e]})),r.mtime&&delete r.mtime,r},e.deepCopy=n=>{const r=e.getDataType(),o=t.values;e.shallowCopy(n),o?.length>=n.getNumberOfValues()&&r===n.getDataType()?(o.set(n.getData()),t.values=o,e.dataChange()):e.setData(n.getData().slice())},e.interpolateTuple=(n,r,o,a,i,s)=>{const l=t.numberOfComponents||1;l===r.getNumberOfComponents()&&l===a.getNumberOfComponents()||fs("numberOfComponents must match");const c=r.getTuple(o),u=a.getTuple(i),d=[];switch(d.length=l,l){case 4:d[3]=c[3]+(u[3]-c[3])*s;case 3:d[2]=c[2]+(u[2]-c[2])*s;case 2:d[1]=c[1]+(u[1]-c[1])*s;case 1:d[0]=c[0]+(u[0]-c[0])*s;break;default:for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,Ss,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");if(t.values?Array.isArray(t.values)&&(t.values=ot(t.dataType,t.values)):t.values=rt(t.dataType,t.size),t.values&&(t.size=t.size??t.values.length,t.dataType=ys(t.values)),ht(e,t),xt(e,t,["name","numberOfComponents"]),t.size%t.numberOfComponents!=0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");xs(e,t)}const As=Mt(Cs,"vtkDataArray");var ws={newInstance:As,extend:Cs,...Ts,...ps};function Ps(e,t){t.classHierarchy.push("vtkAbstractMapper"),e.update=()=>{e.getInputData()},e.addClippingPlane=n=>!!n.isA("vtkPlane")&&!t.clippingPlanes.includes(n)&&(t.clippingPlanes.push(n),e.modified(),!0),e.getNumberOfClippingPlanes=()=>t.clippingPlanes.length,e.removeAllClippingPlanes=()=>0!==t.clippingPlanes.length&&(t.clippingPlanes.length=0,e.modified(),!0),e.removeClippingPlane=n=>{const r=t.clippingPlanes.indexOf(n);return-1!==r&&(t.clippingPlanes.splice(r,1),e.modified(),!0)},e.getClippingPlanes=()=>t.clippingPlanes,e.setClippingPlanes=t=>{if(t)if(Array.isArray(t)){const n=t.length;for(let r=0;r{const o=t.clippingPlanes,a=e;if(o){const e=o.length;if(n>=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Is,n),Wt.obj(e,t),Wt.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),Ps(e,t)};function Es(e,t){e.getBounds=()=>(Wt.vtkErrorMacro("vtkAbstractMapper3D.getBounds - NOT IMPLEMENTED"),Pa()),e.getCenter=()=>{const n=e.getBounds();return t.center=Mi.isValid(n)?Mi.getCenter(n):null,t.center?.slice()},e.getLength=()=>{const t=e.getBounds();return Mi.getDiagonalLength(t)}}const Ms=e=>({bounds:[...Mi.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...e});var Rs=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ms(n)),Os(e,t,n),Wt.setGet(e,t,["viewSpecificProperties"]),Es(e,t)};const{vtkErrorMacro:Ds,vtkWarningMacro:Bs}=Wt;function Ls(e,t){t.classHierarchy.push("vtkFieldData");const n=e.getState;t.arrays&&(t.arrays=t.arrays.map((e=>({data:Ge(e.data)})))),e.initialize=()=>{e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=()=>{t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=n=>{e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map((e=>e)),t.arrays=n.arrays().map((e=>({array:e})))},e.getNumberOfArrays=()=>t.arrays.length,e.getNumberOfActiveArrays=()=>t.arrays.length,e.addArray=n=>{const r=n.getName(),{array:o,index:a}=e.getArrayWithIndex(r);return null!=o?(t.arrays[a]={data:n},a):(t.arrays=[].concat(t.arrays,{data:n}),t.arrays.length-1)},e.removeAllArrays=()=>{t.arrays=[]},e.removeArray=n=>{const r=t.arrays.findIndex((e=>e.data.getName()===n));return e.removeArrayByIndex(r)},e.removeArrayByIndex=e=>-1!==e&&et.arrays.map((e=>e.data)),e.getArray=t=>"number"==typeof t?e.getArrayByIndex(t):e.getArrayByName(t),e.getArrayByName=e=>t.arrays.reduce(((t,n,r)=>n.data.getName()===e?n.data:t),null),e.getArrayWithIndex=e=>{const n=t.arrays.findIndex((t=>t.data.getName()===e));return{array:-1!==n?t.arrays[n].data:null,index:n}},e.getArrayByIndex=e=>e>=0&&ee.getArrayWithIndex(t).index>=0,e.getArrayName=e=>{const n=t.arrays[e];return n?n.data.getName():""},e.getCopyFieldFlags=()=>t.copyFieldFlags,e.getFlag=e=>t.copyFieldFlags[e],e.passData=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;n.getArrays().forEach((a=>{const i=e.getFlag(a.getName());if(!1!==i&&(!t.doCopyAllOff||!0===i)&&a){let t=e.getArrayByName(a.getName());if(t)if(a.getNumberOfComponents()===t.getNumberOfComponents())if(r>-1&&r-1?o:r;t.insertTuple(e,a.getTuple(r))}else t.insertTuples(0,a.getTuples());else Ds("Unhandled case in passData");else if(r<0||r>a.getNumberOfTuples())e.addArray(a),n.getAttributes(a).forEach((t=>{e.setAttribute(a,t)}));else{const i=a.getNumberOfComponents();let s=a.getNumberOfValues();const l=o>-1?o:r;s<=l*i&&(s=(l+1)*i),t=ws.newInstance({name:a.getName(),dataType:a.getDataType(),numberOfComponents:i,values:Wt.newTypedArray(a.getDataType(),s),size:0}),t.insertTuple(l,a.getTuple(r)),e.addArray(t),n.getAttributes(a).forEach((n=>{e.setAttribute(t,n)}))}}}))},e.interpolateData=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5;n.getArrays().forEach((s=>{const l=e.getFlag(s.getName());if(!1!==l&&(!t.doCopyAllOff||!0===l)&&s){let t=e.getArrayByName(s.getName());if(t)if(s.getNumberOfComponents()===t.getNumberOfComponents())if(r>-1&&r-1?a:r;t.interpolateTuple(e,s,r,s,o,i),Bs("Unexpected case in interpolateData")}else t.insertTuples(s.getTuples());else Ds("Unhandled case in interpolateData");else if(r<0||o<0||r>s.getNumberOfTuples())e.addArray(s),n.getAttributes(s).forEach((t=>{e.setAttribute(s,t)}));else{const l=s.getNumberOfComponents();let c=s.getNumberOfValues();const u=a>-1?a:r;c<=u*l&&(c=(u+1)*l),t=ws.newInstance({name:s.getName(),dataType:s.getDataType(),numberOfComponents:l,values:Wt.newTypedArray(s.getDataType(),c),size:0}),t.interpolateTuple(u,s,r,s,o,i),e.addArray(t),n.getAttributes(s).forEach((n=>{e.setAttribute(t,n)}))}}}))},e.copyFieldOn=e=>{t.copyFieldFlags[e]=!0},e.copyFieldOff=e=>{t.copyFieldFlags[e]=!1},e.copyAllOn=()=>{t.doCopyAllOn&&!t.doCopyAllOff||(t.doCopyAllOn=!0,t.doCopyAllOff=!1,e.modified())},e.copyAllOff=()=>{!t.doCopyAllOn&&t.doCopyAllOff||(t.doCopyAllOn=!1,t.doCopyAllOff=!0,e.modified())},e.clearFieldFlags=()=>{t.copyFieldFlags={}},e.deepCopy=e=>{t.arrays=e.getArrays().map((e=>{const t=e.newClone();return t.deepCopy(e),{data:t}}))},e.copyFlags=e=>e.getCopyFieldFlags().map((e=>e)),e.reset=()=>t.arrays.forEach((e=>e.data.reset())),e.getMTime=()=>t.arrays.reduce(((e,t)=>t.data.getMTime()>e?t.data.getMTime():e),t.mtime),e.getNumberOfComponents=()=>t.arrays.reduce(((e,t)=>e+t.data.getNumberOfComponents()),0),e.getNumberOfTuples=()=>t.arrays.length>0?t.arrays[0].getNumberOfTuples():0,e.getState=()=>{const e=n();return e&&(e.arrays=t.arrays.map((e=>({data:e.data.getState()})))),e}}const Vs={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function _s(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vs,n),Wt.obj(e,t),Ls(e,t)}var Ns={newInstance:Wt.newInstance(_s,"vtkFieldData"),extend:_s},Fs={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:{DEFAULT:0,SINGLE:1,DOUBLE:2},PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:"vtkGhostType"};const{AttributeTypes:ks,AttributeCopyOperations:Us}=Fs,{vtkWarningMacro:Gs}=Wt;function zs(e,t){const n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(e){let t=n.find((t=>ks[t.toUpperCase()]===e||"number"!=typeof e&&t.toLowerCase()===e.toLowerCase()));return void 0===t&&(t=null),t}t.classHierarchy.push("vtkDataSetAttributes");const o={...e};e.checkNumberOfComponents=e=>!0,e.setAttribute=(n,o)=>{const a=r(o);if(n&&"PEDIGREEIDS"===a.toUpperCase()&&!n.isA("vtkDataArray"))return Gs(`Cannot set attribute ${a}. The attribute must be a vtkDataArray.`),-1;if(n&&!e.checkNumberOfComponents(n,a))return Gs(`Cannot set attribute ${a}. Incorrect number of components.`),-1;let i=t[`active${a}`];if(i>=0&&in.filter((n=>e[`get${n}`]()===t)),e.setActiveAttributeByName=(t,n)=>e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e.setActiveAttributeByIndex=(n,o)=>{const a=r(o);if(n>=0&&n{const n=r(t);return e[`get${n}`]()},e.removeAllArrays=()=>{n.forEach((e=>{t[`active${e}`]=-1})),o.removeAllArrays()},e.removeArrayByIndex=e=>(-1!==e&&n.forEach((n=>{e===t[`active${n}`]?t[`active${n}`]=-1:e{const r=`active${n}`;e[`get${n}`]=()=>e.getArrayByIndex(t[r]),e[`set${n}`]=t=>e.setAttribute(t,n),e[`setActive${n}`]=t=>e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e[`copy${n}Off`]=()=>{const e=n.toUpperCase();t.copyAttributeFlags[Us.PASSDATA][ks[e]]=!1},e[`copy${n}On`]=()=>{const e=n.toUpperCase();t.copyAttributeFlags[Us.PASSDATA][ks[e]]=!0}})),e.initializeAttributeCopyFlags=()=>{t.copyAttributeFlags=[],Object.keys(Us).filter((e=>"ALLCOPY"!==e)).forEach((e=>{t.copyAttributeFlags[Us[e]]=Object.keys(ks).filter((e=>"NUM_ATTRIBUTES"!==e)).reduce(((e,t)=>(e[ks[t]]=!0,e)),[])})),t.copyAttributeFlags[Us.COPYTUPLE][ks.GLOBALIDS]=!1,t.copyAttributeFlags[Us.INTERPOLATE][ks.GLOBALIDS]=!1,t.copyAttributeFlags[Us.COPYTUPLE][ks.PEDIGREEIDS]=!1},e.initialize=Wt.chain(e.initialize,e.initializeAttributeCopyFlags),t.dataArrays&&Object.keys(t.dataArrays).length&&Object.keys(t.dataArrays).forEach((n=>{t.dataArrays[n].ref||"vtkDataArray"!==t.dataArrays[n].type||e.addArray(ws.newInstance(t.dataArrays[n]))}));const a=e.shallowCopy;e.shallowCopy=(e,n)=>{a(e,n),t.arrays=e.getArrays().map((e=>{const t=e.newClone();return t.shallowCopy(e,n),{data:t}}))},e.initializeAttributeCopyFlags()}const Ws={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function Hs(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ws,n),Ns.extend(e,t,n),Wt.setGet(e,t,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),t.arrays||(t.arrays={}),zs(e,t)}var js={newInstance:Wt.newInstance(Hs,"vtkDataSetAttributes"),extend:Hs,...Fs};const $s=["pointData","cellData","fieldData"];function Ks(e,t){t.classHierarchy.push("vtkDataSet"),$s.forEach((e=>{t[e]?t[e]=Ge(t[e]):t[e]=js.newInstance()}));const n=e.shallowCopy;e.shallowCopy=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),$s.forEach((n=>{t[n]=js.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))}}const qs={};function Xs(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qs,n),Wt.obj(e,t),Wt.setGet(e,t,$s),Ks(e,t)}var Ys={newInstance:Wt.newInstance(Xs,"vtkDataSet"),extend:Xs,FieldDataTypes:{UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},FieldAssociations:{FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7}};const Qs={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9};var Zs={StructuredType:Qs};const{StructuredType:Js}=Zs;var el={getDataDescriptionFromExtent:function(e){let t=0;for(let n=0;n<3;++n)e[2*n]e[1]||e[2]>e[3]||e[4]>e[5]?Js.EMPTY:3===t?Js.XYZ_GRID:2===t?e[0]===e[1]?Js.YZ_PLANE:e[2]===e[3]?Js.XZ_PLANE:Js.XY_PLANE:1===t?e[0]e!==a[t]));return i&&(t.extent=a.slice(),t.dataDescription=el.getDataDescriptionFromExtent(t.extent),e.modified()),i},e.setDimensions=function(){let n,r,o;if(t.deleted)tl("instance deleted - cannot call any method");else{if(1===arguments.length){const e=arguments.length<=0?void 0:arguments[0];n=e[0],r=e[1],o=e[2]}else{if(3!==arguments.length)return void tl("Bad dimension specification");n=arguments.length<=0?void 0:arguments[0],r=arguments.length<=1?void 0:arguments[1],o=arguments.length<=2?void 0:arguments[2]}e.setExtent(0,n-1,0,r-1,0,o-1)}},e.getDimensions=()=>[t.extent[1]-t.extent[0]+1,t.extent[3]-t.extent[2]+1,t.extent[5]-t.extent[4]+1],e.getNumberOfCells=()=>{const t=e.getDimensions();let n=1;for(let e=0;e<3;e++){if(0===t[e])return 0;t[e]>1&&(n*=t[e]-1)}return n},e.getNumberOfPoints=()=>{const t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=n=>{const r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return tl("Requesting a point from an empty image."),null;const o=new Float64Array(3);switch(t.dataDescription){case Qs.EMPTY:return null;case Qs.SINGLE_POINT:break;case Qs.X_LINE:o[0]=n;break;case Qs.Y_LINE:o[1]=n;break;case Qs.Z_LINE:o[2]=n;break;case Qs.XY_PLANE:o[0]=n%r[0],o[1]=n/r[0];break;case Qs.YZ_PLANE:o[1]=n%r[1],o[2]=n/r[1];break;case Qs.XZ_PLANE:o[0]=n%r[0],o[2]=n/r[0];break;case Qs.XYZ_GRID:o[0]=n%r[0],o[1]=n/r[0]%r[1],o[2]=n/(r[0]*r[1]);break;default:tl("Invalid dataDescription")}const a=[0,0,0];return e.indexToWorld(o,a),a},e.getBounds=()=>e.extentToBounds(e.getSpatialExtent()),e.extentToBounds=e=>Mi.transformBounds(e,t.indexToWorld),e.getSpatialExtent=()=>Mi.inflate([...t.extent],.5),e.computeTransforms=()=>{A(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],y(t.indexToWorld,t.indexToWorld,t.spacing),g(t.worldToIndex,t.indexToWorld)},e.indexToWorld=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return In(n,e,t.indexToWorld),n},e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return In(n,e,t.worldToIndex),n},e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Mi.transformBounds(e,t.indexToWorld,n)},e.worldToIndexBounds=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Mi.transformBounds(e,t.worldToIndex,n)},e.onModified(e.computeTransforms),e.computeTransforms(),e.getCenter=()=>Mi.getCenter(e.getBounds()),e.computeHistogram=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);const o=[0,0,0],a=[0,0,0];Mi.computeCornerPoints(r,o,a),na(o,o),na(a,a);const i=e.getDimensions();Ta(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o),Ta(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a);const s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData();let u=-1/0,d=1/0,p=0,f=0,g=0;for(let e=o[2];e<=a[2];e++)for(let t=o[1];t<=a[1];t++){let i=o[0]+t*s+e*l;for(let s=o[0];s<=a[0];s++){if(!n||n([s,t,e],r)){const e=c[i];e>u&&(u=e),e0?f/g:0,h=g?Math.abs(p/g-m*m):0,v=Math.sqrt(h);return{minimum:d,maximum:u,average:m,variance:h,sigma:v,count:g}},e.computeIncrements=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=[];let r=t;for(let t=0;t<3;++t)n[t]=r,r*=e[2*t+1]-e[2*t]+1;return n},e.computeOffsetIndex=t=>{let[n,r,o]=t;const a=e.getExtent(),i=e.getPointData().getScalars().getNumberOfComponents(),s=e.computeIncrements(a,i);return Math.floor((Math.round(n)-a[0])*s[0]+(Math.round(r)-a[2])*s[1]+(Math.round(o)-a[4])*s[2])},e.getOffsetIndexFromWorld=t=>{const n=e.getExtent(),r=e.worldToIndex(t);for(let e=0;e<3;++e)if(r[e]n[2*e+1])return tl(`GetScalarPointer: Pixel ${r} is not in memory. Current extent = ${n}`),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const r=e.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=r)return tl(`GetScalarPointer: Scalar Component ${n} is not within bounds. Current Scalar numberOfComponents: ${r}`),NaN;const o=e.getOffsetIndexFromWorld(t);return Number.isNaN(o)?o:e.getPointData().getScalars().getComponent(o,n)}}const rl={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:Qs.EMPTY};function ol(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rl,n),Ys.extend(e,t,n),t.direction?Array.isArray(t.direction)&&(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=ue(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),Wt.get(e,t,["indexToWorld","worldToIndex"]),Wt.setGetArray(e,t,["origin","spacing"],3),Wt.setGetArray(e,t,["direction"],9),Wt.getArray(e,t,["extent"],6),nl(e,t)}var al={newInstance:Wt.newInstance(ol,"vtkImageData"),extend:ol};const il={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var sl={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:il},ll={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:{DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5}};const{ScalarMappingTarget:cl,VectorMode:ul}=sl,{VtkDataTypes:dl}=ws,{ColorMode:pl}=ll,{vtkErrorMacro:fl}=Wt;function gl(e){return e}function ml(e){return Math.floor(255*e+.5)}function hl(e,t){t.classHierarchy.push("vtkScalarsToColors"),e.setVectorModeToMagnitude=()=>e.setVectorMode(ul.MAGNITUDE),e.setVectorModeToComponent=()=>e.setVectorMode(ul.COMPONENT),e.setVectorModeToRGBColors=()=>e.setVectorMode(ul.RGBCOLORS),e.build=()=>{},e.isOpaque=()=>!0,e.setAnnotations=(n,r)=>{if(!(n&&!r||!n&&r))if(n&&r&&n.length!==r.length)fl("Values and annotations do not have the same number of tuples so ignoring");else{if(t.annotationArray=[],r&&n){const e=r.length;for(let o=0;o{let o=e.checkForAnnotatedValue(n),a=!1;return o>=0?t.annotationArray[o].annotation!==r&&(t.annotationArray[o].annotation=r,a=!0):(t.annotationArray.push({value:n,annotation:r}),o=t.annotationArray.length-1,a=!0),a&&(e.updateAnnotatedValueMap(),e.modified()),o},e.getNumberOfAnnotatedValues=()=>t.annotationArray.length,e.getAnnotatedValue=e=>e<0||e>=t.annotationArray.length?null:t.annotationArray[e].value,e.getAnnotation=e=>void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation,e.getAnnotatedValueIndex=n=>t.annotationArray.length?e.checkForAnnotatedValue(n):-1,e.removeAnnotation=n=>{const r=e.checkForAnnotatedValue(n),o=r>=0;return o&&(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),o},e.resetAnnotations=()=>{t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=(n,r)=>{if(t.indexedLookup){const t=e.getAnnotatedValueIndex(n);e.getIndexedColor(t,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=t=>e.getAnnotatedValueIndexInternal(t),e.getAnnotatedValueIndexInternal=e=>{if(void 0!==t.annotatedValueMap[e]){const n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=(e,t)=>{t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=()=>{t.annotatedValueMap=[];const e=t.annotationArray.length;for(let n=0;n{const o=t.getNumberOfComponents();let a=null;if(n===pl.DEFAULT&&(t.getDataType()===dl.UNSIGNED_CHAR||t.getDataType()===dl.UNSIGNED_CHAR_CLAMPED)||n===pl.DIRECT_SCALARS&&t)a=e.convertToRGBA(t,o,t.getNumberOfTuples());else{const n={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:dl.UNSIGNED_CHAR},i=Wt.newTypedArray(n.dataType,4*t.getNumberOfTuples());n.values=i,n.size=i.length,a=ws.newInstance(n);let s=r;s<0&&o>1?e.mapVectorsThroughTable(t,a,cl.RGBA,-1,-1):(s<0&&(s=0),s>=o&&(s=o-1),e.mapScalarsThroughTable(t,a,cl.RGBA,s))}return a},e.mapVectorsToMagnitude=(e,t,n)=>{const r=e.getNumberOfTuples(),o=e.getNumberOfComponents(),a=t.getData(),i=e.getData();for(let e=0;e{let i=e.getVectorMode(),s=a,l=o;const c=t.getNumberOfComponents();i===ul.COMPONENT?(-1===l&&(l=e.getVectorComponent()),l<0&&(l=0),l>=c&&(l=c-1)):(-1===s&&(s=e.getVectorSize()),s<=0?(l=0,s=c):(l<0&&(l=0),l>=c&&(l=c-1),l+s>c&&(s=c-l)),i!==ul.MAGNITUDE||1!==c&&1!==s||(i=ul.COMPONENT));let u=0;switch(l>0&&(u=l),i){case ul.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;case ul.RGBCOLORS:break;case ul.MAGNITUDE:default:{const o=ws.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,o,s),e.mapScalarsThroughTable(o,n,r,0);break}}},e.luminanceToRGBA=(e,t,n,r)=>{const o=r(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e{const o=ml(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e{let{alpha:a}=t;if(4===r&&a>=1&&n.getDataType()===dl.UNSIGNED_CHAR)return n;const i=ws.newInstance({numberOfComponents:4,empty:!0,size:4*o,dataType:dl.UNSIGNED_CHAR});if(o<=0)return i;a=a>0?a:0,a=a<1?a:1;let s=gl;switch(n.getDataType()!==dl.FLOAT&&n.getDataType()!==dl.DOUBLE||(s=ml),r){case 1:e.luminanceToRGBA(i,n,a,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,a,s);break;case 4:e.rGBAToRGBA(i,n,a,s);break;default:return fl("Cannot convert colors"),null}return i},e.usingLogScale=()=>!1,e.getNumberOfAvailableColors=()=>16777216,e.setRange=(t,n)=>e.setMappingRange(t,n),e.getRange=()=>e.getMappingRange(),e.areScalarsOpaque=(n,r,o)=>{if(!n)return e.isOpaque();const a=n.getNumberOfComponents();return(r!==pl.DEFAULT||n.getDataType()!==dl.UNSIGNED_CHAR)&&r!==pl.DIRECT_SCALARS||(3===a||1===a?t.alpha>=1:255===n.getRange(a-1)[0])}}const vl={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:ul.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function bl(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vl,n),Wt.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],Wt.setGet(e,t,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),Wt.setArray(e,t,["mappingRange"],2),Wt.getArray(e,t,["mappingRange"]),hl(e,t)}var yl={newInstance:Wt.newInstance(bl,"vtkScalarsToColors"),extend:bl,...sl};const{vtkErrorMacro:Tl}=Wt;function xl(e,t){t.classHierarchy.push("vtkLookupTable"),e.isOpaque=()=>{if(t.opaqueFlagBuildTime.getMTime()!1,e.getNumberOfAvailableColors=()=>t.table.length/4-3,e.linearIndexLookup=(e,t)=>{let n=0;const r=Number(e);return rt.range[1]?n=t.maxIndex+1+1.5:(n=(r+t.shift)*t.scale,n=n{let o=0;o=wa(t)?Math.floor(r.maxIndex+1.5+2):e.linearIndexLookup(t,r);const a=4*o;return n.slice(a,a+4)},e.indexedLookupFunction=(n,r,o)=>{let a=e.getAnnotatedValueIndexInternal(n);-1===a&&(a=t.numberOfColors+2);const i=4*a;return[r[i],r[i+1],r[i+2],r[i+3]]},e.lookupShiftAndScale=(e,t)=>{t.shift=-e[0],t.scale=Number.MAX_VALUE,e[1]>e[0]&&(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=(n,r,o,a)=>{let i=e.linearLookup;t.indexedLookup&&(i=e.indexedLookupFunction);const s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);const c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),p=r.getData(),f=n.getData();if(c>=1){if(o===il.RGBA)for(let e=0;e{let n=0,r=0,o=0,a=0;const i=t.numberOfColors-1;i&&(n=(t.hueRange[1]-t.hueRange[0])/i,r=(t.saturationRange[1]-t.saturationRange[0])/i,o=(t.valueRange[1]-t.valueRange[0])/i,a=(t.alphaRange[1]-t.alphaRange[0])/i),t.table.length=4*i+16;const s=[],l=[];for(let e=0;e<=i;e++)s[0]=t.hueRange[0]+e*n,s[1]=t.saturationRange[0]+e*r,s[2]=t.valueRange[0]+e*o,pa(s,l),l[3]=t.alphaRange[0]+e*a,t.table[4*e]=255*l[0]+.5,t.table[4*e+1]=255*l[1]+.5,t.table[4*e+2]=255*l[2]+.5,t.table[4*e+3]=255*l[3]+.5;e.buildSpecialColors(),t.buildTime.modified()},e.setTable=n=>{if(Array.isArray(n)){const r=n[0].length;t.numberOfColors=n.length;const o=4-r;let a=0;for(let e=0;e{const{numberOfColors:e}=t,n=t.table;let r=4*(e+0);t.useBelowRangeColor||0===e?(n[r]=255*t.belowRangeColor[0]+.5,n[r+1]=255*t.belowRangeColor[1]+.5,n[r+2]=255*t.belowRangeColor[2]+.5,n[r+3]=255*t.belowRangeColor[3]+.5):(n[r]=n[0],n[r+1]=n[1],n[r+2]=n[2],n[r+3]=n[3]),r=4*(e+1),t.useAboveRangeColor||0===e?(n[r]=255*t.aboveRangeColor[0]+.5,n[r+1]=255*t.aboveRangeColor[1]+.5,n[r+2]=255*t.aboveRangeColor[2]+.5,n[r+3]=255*t.aboveRangeColor[3]+.5):(n[r]=n[4*(e-1)+0],n[r+1]=n[4*(e-1)+1],n[r+2]=n[4*(e-1)+2],n[r+3]=n[4*(e-1)+3]),r=4*(e+2),n[r]=255*t.nanColor[0]+.5,n[r+1]=255*t.nanColor[1]+.5,n[r+2]=255*t.nanColor[2]+.5,n[r+3]=255*t.nanColor[3]+.5},e.build=()=>{(t.table.length<1||e.getMTime()>t.buildTime.getMTime()&&t.insertTime.getMTime()<=t.buildTime.getMTime())&&e.forceBuild()},t.table.length>0&&(e.buildSpecialColors(),t.insertTime.modified())}const Sl={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function Cl(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sl,n),yl.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},Wt.obj(t.buildTime),t.opaqueFlagBuildTime={},Wt.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},Wt.obj(t.insertTime,{mtime:0}),Wt.get(e,t,["buildTime"]),Wt.setGet(e,t,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),Wt.setArray(e,t,["alphaRange","hueRange","saturationRange","valueRange"],2),Wt.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),Wt.getArray(e,t,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),xl(e,t)}var Al={newInstance:Wt.newInstance(Cl,"vtkLookupTable"),extend:Cl};const wl={Off:0,PolygonOffset:1};let Pl=wl.PolygonOffset,Il=wl.Off;const Ol=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function El(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const t=Il===e;return Il=e,t}var Ml={Resolve:wl,getResolveCoincidentTopologyAsString:function(){return Ol[Il]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return Pl},getResolveCoincidentTopology:function(){return Il},setResolveCoincidentTopology:El,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){const t=Pl===e;return Pl=e,t},setResolveCoincidentTopologyToDefault:function(){return El(wl.Off)},setResolveCoincidentTopologyToOff:function(){return El(wl.Off)},setResolveCoincidentTopologyToPolygonOffset:function(){return El(wl.PolygonOffset)}};function Rl(e,t,n){n.forEach((n=>{e[`get${n.method}`]=()=>t[n.key],e[`set${n.method}`]=Wt.objectSetterMap.object(e,t,{name:n.key,params:["factor","offset"]})}))}const Dl=["Polygon","Line","Point"],Bl={modified:()=>{}};Rl(Bl,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},Dl.map((e=>({key:e,method:`ResolveCoincidentTopology${e}OffsetParameters`}))));var Ll={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&&(t.resolveCoincidentTopology=!1),Wt.setGet(e,t,["resolveCoincidentTopology"]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(Ml).forEach((t=>{e[t]=Ml[t]})),Object.keys(Bl).filter((e=>"modified"!==e)).forEach((t=>{e[t]=Bl[t]})),Rl(e,t.topologyOffset,Dl.map((e=>({key:e,method:`RelativeCoincidentTopology${e}OffsetParameters`})))),e.getCoincidentTopologyPolygonOffsetParameters=()=>{const t=Bl.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=()=>{const t=Bl.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=()=>{const t=Bl.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Bl,otherStaticMethods:Ml,CATEGORIES:Dl,Resolve:wl};const Vl={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var _l={PassTypes:Vl};const{FieldAssociations:Nl}=Ys,{staticOffsetAPI:Fl,otherStaticMethods:kl}=Ll,{ColorMode:Ul,ScalarMode:Gl,GetArray:zl}=ll,{VectorMode:Wl}=sl,{VtkDataTypes:Hl}=ws;function jl(e){return()=>Wt.vtkErrorMacro(`vtkMapper::${e} - NOT IMPLEMENTED`)}function $l(e,t){const n=e[1]%2==0?1:-1;if(e[0]+=n,e[0]>=t[0]||e[0]<0){const r=e[2]%2==0?1:-1;e[0]-=n,e[1]+=r,(e[1]>=t[1]||e[1]<0)&&(e[1]-=r,e[2]++)}}function Kl(e,t,n){const r=Math.floor(t),o=r%(2*n[0]);let a,i;o{const n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Pa(),t.bounds},e.setForceCompileOnly=e=>{t.forceCompileOnly=e},e.setSelectionWebGLIdsToVTKIds=e=>{t.selectionWebGLIdsToVTKIds=e},e.createDefaultLookupTable=()=>{t.lookupTable=Al.newInstance()},e.getColorModeAsString=()=>Wt.enumToString(Ul,t.colorMode),e.setColorModeToDefault=()=>e.setColorMode(0),e.setColorModeToMapScalars=()=>e.setColorMode(1),e.setColorModeToDirectScalars=()=>e.setColorMode(2),e.getScalarModeAsString=()=>Wt.enumToString(Gl,t.scalarMode),e.setScalarModeToDefault=()=>e.setScalarMode(0),e.setScalarModeToUsePointData=()=>e.setScalarMode(1),e.setScalarModeToUseCellData=()=>e.setScalarMode(2),e.setScalarModeToUsePointFieldData=()=>e.setScalarMode(3),e.setScalarModeToUseCellFieldData=()=>e.setScalarMode(4),e.setScalarModeToUseFieldData=()=>e.setScalarMode(5),e.getAbstractScalars=(e,n,r,o,a)=>{if(!e||!t.scalarVisibility)return{scalars:null,cellFlag:!1};let i=null,s=!1;if(n===Gl.DEFAULT)i=e.getPointData().getScalars(),i||(i=e.getCellData().getScalars(),s=!0);else if(n===Gl.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===Gl.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===Gl.USE_POINT_FIELD_DATA){const t=e.getPointData();i=r===zl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===Gl.USE_CELL_FIELD_DATA){const t=e.getCellData();s=!0,i=r===zl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===Gl.USE_FIELD_DATA){const t=e.getFieldData();i=r===zl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}return{scalars:i,cellFlag:s}},e.mapScalars=(n,r)=>{const{scalars:o,cellFlag:a}=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName);if(t.areScalarsMappedFromCells=a,!o)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);const i=`${e.getMTime()}${o.getMTime()}${r}`;if(t.colorBuildString!==i){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(o,a))t.mapScalarsToTexture(o,a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;const n=e.getLookupTable();n&&(n.build(),t.colorMapColors=n.mapScalars(o,t.colorMode,t.fieldDataTupleId))}t.colorBuildString=`${e.getMTime()}${o.getMTime()}${r}`}},t.mapScalarsToTexture=(n,r,o)=>{const a=t.lookupTable.getRange(),i=t.lookupTable.usingLogScale();i&&Al.getLogRange(a,a);const s=t.lookupTable.getAlpha();if(t.colorMapColors=null,null==t.colorTextureMap||e.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==o){t.lookupTable.setAlpha(o),t.colorTextureMap=null,t.lookupTable.build();const e=t.lookupTable.getNumberOfAvailableColors(),n=2048,u=n**3-3,d=4094,p=2,f=r?u:d;t.numberOfColorsInRange=Math.min(Math.max(e,p),f);const g=t.numberOfColorsInRange+3,m=t.numberOfColorsInRange+2,h=r?[Math.min(Math.ceil(g/n**0),n),Math.min(Math.ceil(g/n**1),n),Math.min(Math.ceil(g/n**2),n)]:[m,2,1],v=h[0]*h[1]*h[2],b=new Float64Array(v);b.fill(NaN);const y=t.numberOfColorsInRange,T=y+2,x=[0,0,0],S=a[0],C=a[1]-a[0];for(let e=0;e1?-1:t.lookupTable.getVectorComponent();t.colorCoordinates=function(e,t,n,r,o,a,i){const s=new Array(arguments.length);for(let e=0;e=y,x=o[2]<=1?2:3,S=ws.newInstance({numberOfComponents:x,values:new Float32Array(b*x)}),C=S.getData(),A=[0,0,0];Kl(A,r+2,o);let w=0,P=0;const I=[.5,.5,.5];for(let e=0;er&&(t=r+1),Kl(I,t,o)}else{I[1]=.49;const t=(e-f)*g;I[0]=t>1e3?1e3:t<-1e3?-1e3:t}for(let e=0;e{const n=e.getInputData(),r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!t.scalarVisibility||null==r)return!0;const o=e.getLookupTable();return!o||(o.build(),o.areScalarsOpaque(r,t.colorMode,-1))},e.canUseTextureMapForColoring=(e,n)=>!((!n||t.colorMode===Ul.DIRECT_SCALARS)&&(!t.interpolateScalarsBeforeMapping||t.lookupTable&&t.lookupTable.getIndexedLookup()||!e||t.colorMode===Ul.DEFAULT&&e.getDataType()===Hl.UNSIGNED_CHAR||t.colorMode===Ul.DIRECT_SCALARS)),e.clearColorArrays=()=>{t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=()=>(t.lookupTable||e.createDefaultLookupTable(),t.lookupTable),e.getMTime=()=>{let e=t.mtime;if(null!==t.lookupTable){const n=t.lookupTable.getMTime();e=n>e?n:e}return e},e.getPrimitiveCount=()=>{const t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getPolys().getNumberOfCells()}},e.acquireInvertibleLookupTable=jl("AcquireInvertibleLookupTable"),e.valueToColor=jl("ValueToColor"),e.colorToValue=jl("ColorToValue"),e.useInvertibleColorFor=jl("UseInvertibleColorFor"),e.clearInvertibleColor=jl("ClearInvertibleColor"),e.processSelectorPixelBuffers=(e,n)=>{if(!e||!t.selectionWebGLIdsToVTKIds||!t.populateSelectionSettings)return;const r=e.getRawPixelBuffer(Vl.ID_LOW24),o=e.getRawPixelBuffer(Vl.ID_HIGH24),a=e.getCurrentPass(),i=e.getFieldAssociation();let s=null;i===Nl.FIELD_ASSOCIATION_POINTS?s=t.selectionWebGLIdsToVTKIds.points:i===Nl.FIELD_ASSOCIATION_CELLS&&(s=t.selectionWebGLIdsToVTKIds.cells),s&&n.forEach((t=>{if(a===Vl.ID_LOW24){let n=0;o&&(n+=o[t],n*=256),n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n],i=e.getPixelBuffer(Vl.ID_LOW24);i[t]=255&a,i[t+1]=(65280&a)>>8,i[t+2]=(16711680&a)>>16}else if(a===Vl.ID_HIGH24&&o){let n=0;n+=o[t],n*=256,n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n];e.getPixelBuffer(Vl.ID_HIGH24)[t]=(4278190080&a)>>24}}))}}const Yl={colorMapColors:null,areScalarsMappedFromCells:!1,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,numberOfColorsInRange:0,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function Ql(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yl,n),Rs(e,t,n),Wt.get(e,t,["areScalarsMappedFromCells","colorCoordinates","colorMapColors","colorTextureMap","numberOfColorsInRange","selectionWebGLIdsToVTKIds"]),Wt.setGet(e,t,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","populateSelectionSettings","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","customShaderAttributes"]),Wt.setGetArray(e,t,["scalarRange"],2),Ll.implementCoincidentTopologyMethods(e,t),Xl(e,t)}var Zl={newInstance:Wt.newInstance(Ql,"vtkMapper"),extend:Ql,...Fl,...kl,...ll};function Jl(e){let t=0;return e.filter(((e,n)=>n===t&&(t+=e+1,!0)))}function ec(e){let t=0;for(let n=0;nvoid 0===t.numberOfCells||n?(t.cellSizes?t.numberOfCells=t.cellSizes.length:t.numberOfCells=ec(e.getData()),t.numberOfCells):t.numberOfCells,e.getCellSizes=n=>void 0===t.cellSizes||n?(t.cellSizes=Jl(e.getData()),t.cellSizes):t.cellSizes,e.resize=r=>{const o=e.getNumberOfTuples();n.resize(r);const a=e.getNumberOfTuples();a{n.setData(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=e=>{let n=e;const r=t.values[n++];return t.values.subarray(n,n+r)},e.insertNextCell=n=>{const r=e.getNumberOfCells();return e.insertNextTuples([n.length,...n]),++t.numberOfCells,null!=t.cellSizes&&t.cellSizes.push(n.length),r}}function rc(e){return{empty:!0,numberOfComponents:1,dataType:ds.UNSIGNED_INT,...e}}function oc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};ws.extend(e,t,rc(n)),nc(e,t)}var ac={newInstance:Wt.newInstance(oc,"vtkCellArray"),extend:oc,...tc};const{vtkErrorMacro:ic}=Wt,sc=[1,-1,1,-1,1,-1];function lc(e,t){t.classHierarchy.push("vtkPoints"),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;e.getNumberOfPoints()!==n&&(t.size=n*r,t.values=Wt.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;oe.insertNextTuple([t,n,r]),e.getBounds=()=>{if(3===e.getNumberOfComponents()){const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);t.bounds[2]=r[0],t.bounds[3]=r[1];const o=e.getRange(2);return t.bounds[4]=o[0],t.bounds[5]=o[1],t.bounds}if(2!==e.getNumberOfComponents())return ic(`getBounds called on an array with components of\n ${e.getNumberOfComponents()}`),sc;const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);return t.bounds[2]=r[0],t.bounds[3]=r[1],t.bounds[4]=0,t.bounds[5]=0,t.bounds},e.computeBounds=e.getBounds,e.setNumberOfComponents(t.numberOfComponents<2?3:t.numberOfComponents)}const cc={empty:!0,numberOfComponents:3,dataType:ds.FLOAT,bounds:[1,-1,1,-1,1,-1]};function uc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cc,n),ws.extend(e,t,n),lc(e,t)}var dc={newInstance:Wt.newInstance(uc,"vtkPoints"),extend:uc};function pc(e,t){t.classHierarchy.push("vtkCell"),e.initialize=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(n){t.pointsIds=n;let r=t.points.getData();r.length!==3*t.pointsIds.length&&(r=Wt.newTypedArray(e.getDataType(),3*t.pointsIds.length));const o=e.getData();t.pointsIds.forEach(((e,t)=>{let n=3*e,a=3*t;r[a]=o[n],r[++a]=o[++n],r[++a]=o[++n]})),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(let n=e.getNumberOfPoints()-1;n>=0;--n)t.pointsIds[n]=n}},e.getBounds=()=>{const e=t.points.getNumberOfPoints(),n=[];if(e){t.points.getPoint(0,n),t.bounds[0]=n[0],t.bounds[1]=n[0],t.bounds[2]=n[1],t.bounds[3]=n[1],t.bounds[4]=n[2],t.bounds[5]=n[2];for(let r=1;rt.bounds[1]?n[0]:t.bounds[1],t.bounds[2]=n[1]t.bounds[3]?n[1]:t.bounds[3],t.bounds[4]=n[2]t.bounds[5]?n[2]:t.bounds[5]}else va(t.bounds);return t.bounds},e.getLength2=()=>{e.getBounds();let n=0,r=0;for(let e=0;e<3;e++)r=t.bounds[2*e+1]-t.bounds[2*e],n+=r*r;return n},e.getParametricDistance=e=>{let t,n=0;for(let r=0;r<3;r++)t=e[r]<0?-e[r]:e[r]>1?e[r]-1:0,t>n&&(n=t);return n},e.getNumberOfPoints=()=>t.points.getNumberOfPoints(),e.deepCopy=e=>{e.initialize(t.points,t.pointsIds)},e.getCellDimension=()=>{},e.intersectWithLine=(e,t,n,r,o,a,i)=>{},e.evaluatePosition=(e,t,n,r,o,a)=>{Wt.vtkErrorMacro("vtkCell.evaluatePosition is not implemented.")}}const fc={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function gc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fc,n),Wt.obj(e,t),t.points||(t.points=dc.newInstance()),Wt.get(e,t,["points","pointsIds"]),pc(e,t)}var mc={newInstance:Wt.newInstance(gc,"vtkCell"),extend:gc};function hc(e,t){t.classHierarchy.push("vtkCellLinks"),e.buildLinks=n=>{const r=n.getPoints().getNumberOfPoints(),o=n.getNumberOfCells(),a=new Uint32Array(r);if(n.isA("vtkPolyData")){for(let t=0;t{e.incrementLinkCount(t)}))}e.allocateLinks(r),t.maxId=r-1;for(let t=0;t{e.insertCellReference(n,a[n]++,t)}))}}else{for(let t=0;t{e.incrementLinkCount(t)}));e.allocateLinks(r),t.maxId=r-1;for(let t=0;t{e.insertCellReference(n,a[n]++,t)}))}},e.allocate=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.array=Array(e).fill().map((()=>({ncells:0,cells:null}))),t.extend=n,t.maxId=-1},e.initialize=()=>{t.array=null},e.getLink=e=>t.array[e],e.getNcells=e=>t.array[e].ncells,e.getCells=e=>t.array[e].cells,e.insertNextPoint=e=>{t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=(e,n)=>{t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=e=>{t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=(e,n)=>{t.array[n].cells=t.array[n].cells.filter((t=>t!==e)),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=(e,n)=>{t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=(e,n)=>{t.array[e].cells.length=n},e.squeeze=()=>{!function(e,t){let n=t;for(t>=e.array.length&&(n+=e.array.length);n>e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=()=>{t.maxId=-1},e.deepCopy=e=>{t.array=[...e.array],t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=e=>{++t.array[e].ncells},e.allocateLinks=e=>{for(let n=0;n{t.array[e].cells[n]=r}}const vc={array:null,maxId:0,extend:0};function bc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vc,n),Wt.obj(e,t),hc(e,t)}var yc={newInstance:Wt.newInstance(bc,"vtkCellLinks"),extend:bc};const Tc=0,xc=1,Sc=2,Cc=3,Ac=4,wc=5,Pc=6,Ic=7,Oc=9,Ec=21,Mc=41,Rc=42,Dc=["vtkEmptyCell","vtkVertex","vtkPolyVertex","vtkLine","vtkPolyLine","vtkTriangle","vtkTriangleStrip","vtkPolygon","vtkPixel","vtkQuad","vtkTetra","vtkVoxel","vtkHexahedron","vtkWedge","vtkPyramid","vtkPentagonalPrism","vtkHexagonalPrism","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkQuadraticEdge","vtkQuadraticTriangle","vtkQuadraticQuad","vtkQuadraticTetra","vtkQuadraticHexahedron","vtkQuadraticWedge","vtkQuadraticPyramid","vtkBiQuadraticQuad","vtkTriQuadraticHexahedron","vtkQuadraticLinearQuad","vtkQuadraticLinearWedge","vtkBiQuadraticQuadraticWedge","vtkBiQuadraticQuadraticHexahedron","vtkBiQuadraticTriangle","vtkCubicLine","vtkQuadraticPolygon","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkConvexPointSet","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkParametricCurve","vtkParametricSurface","vtkParametricTriSurface","vtkParametricQuadSurface","vtkParametricTetraRegion","vtkParametricHexRegion","UnknownClass","UnknownClass","UnknownClass","vtkHigherOrderEdge","vtkHigherOrderTriangle","vtkHigherOrderQuad","vtkHigherOrderPolygon","vtkHigherOrderTetrahedron","vtkHigherOrderWedge","vtkHigherOrderPyramid","vtkHigherOrderHexahedron"],Bc={getClassNameFromTypeId:function(e){return e0&&void 0!==arguments[0]?arguments[0]:512,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.size=e>0?e:1,t.extend=n>0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=(e,n,r)=>{t.typeArray[e]=n,t.locationArray[e]=r,e>t.maxId&&(t.maxId=e)},e.insertNextCell=(n,r)=>(e.insertCell(++t.maxId,n,r),t.maxId),e.setCellTypes=(e,n,r)=>{t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=e=>t.locationArray[e],e.deleteCell=e=>{t.typeArray[e]=Tc},e.getNumberOfTypes=()=>t.maxId+1,e.isType=t=>{const n=e.getNumberOfTypes();for(let r=0;re.insertNextCell(t,-1),e.getCellType=e=>t.typeArray[e],e.reset=()=>{t.maxId=-1},e.deepCopy=n=>{e.allocate(n.getSize(),n.getExtend()),t.typeArray.set(n.getTypeArray()),t.locationArray.set(n.getLocationArray()),t.maxId=n.getMaxId()}}const Vc={size:0,maxId:-1,extend:1e3};function _c(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vc,n),Wt.obj(e,t),Wt.get(e,t,["size","maxId","extend"]),Wt.getArray(e,t,["typeArray","locationArray"]),Lc(e,t)}var Nc={newInstance:Wt.newInstance(_c,"vtkCellTypes"),extend:_c,...Bc},Fc={IntersectionState:{NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2}};const{IntersectionState:kc}=Fc;function Uc(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;const o={t:Number.MIN_VALUE,distance:0},a=[];let i;a[0]=n[0]-t[0],a[1]=n[1]-t[1],a[2]=n[2]-t[2];const s=a[0]*(e[0]-t[0])+a[1]*(e[1]-t[1])+a[2]*(e[2]-t[2]),l=Fo(a,a);let c=1e-5*s;return 0!==l&&(o.t=s/l),c<0&&(c=-c),-c1?i=n:(i=a,a[0]=t[0]+o.t*a[0],a[1]=t[1]+o.t*a[1],a[2]=t[2]+o.t*a[2]),r&&(r[0]=i[0],r[1]=i[1],r[2]=i[2]),o.distance=Wo(i,e),o}function Gc(e,t,n,r,o,a){const i=[],s=[],l=[];o[0]=0,a[0]=0,Lo(t,e,i),Lo(r,n,s),Lo(n,e,l);const c=[Fo(i,i),-Fo(i,s),-Fo(i,s),Fo(s,s)],u=[];if(u[0]=Fo(i,l),u[1]=-Fo(s,l),0===ca(c,u,2)){let i=Number.MAX_VALUE;const s=[e,t,n,r],l=[n,n,e,e],c=[r,r,t,t];let u;a[0],a[0],o[0],o[0],o[0],o[0],a[0],a[0];for(let e=0;e<4;e++)u=Uc(s[e],l[e],c[e]),u.distance=0&&o[0]<=1&&a[0]>=0&&a[0]<=1?kc.YES_INTERSECTION:kc.NO_INTERSECTION}const zc={distanceToLine:Uc,intersection:Gc};function Wc(e,t){t.classHierarchy.push("vtkLine"),e.getCellDimension=()=>1,e.intersectWithLine=(e,n,r,o,a)=>{const i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};a[1]=0,a[2]=0;const s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);const u=[],d=[],p=Gc(e,n,l,c,u,d);var f;if(i.t=u[0],i.betweenPoints=(f=i.t)>=0&&f<=1,a[0]=d[0],p===kc.YES_INTERSECTION){for(let t=0;t<3;t++)o[t]=l[t]+a[0]*(c[t]-l[t]),s[t]=e[t]+i.t*(n[t]-e[t]);if(Wo(o,s)<=r*r)return i.intersect=1,i}else{let t;if(i.t<0)return t=Uc(e,l,c,o),t.distance<=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t>1)return t=Uc(n,l,c,o),t.distance<=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(a[0]<0)return a[0]=0,t=Uc(l,e,n,o),i.t=t.t,t.distance<=r*r?(i.intersect=1,i):i;if(a[0]>1)return a[0]=1,t=Uc(c,e,n,o),i.t=t.t,t.distance<=r*r?(i.intersect=1,i):i}return i},e.evaluateLocation=(e,n,r)=>{const o=[],a=[];t.points.getPoint(0,o),t.points.getPoint(1,a);for(let t=0;t<3;t++)n[t]=o[t]+e[0]*(a[t]-o[t]);r[0]=1-e[0],r[1]=e[0]},e.evaluateOrientation=(e,n,r)=>!!t.orientations&&(_i(n,t.orientations[0],t.orientations[1],e[0]),r[0]=1-e[0],r[1]=e[0],!0)}const Hc={orientations:null};function jc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hc,n),mc.extend(e,t,n),Wt.setGet(e,t,["orientations"]),Wc(e,t)}var $c={newInstance:Wt.newInstance(jc,"vtkLine"),extend:jc,...zc,...Fc};function Kc(e,t){t.classHierarchy.push("vtkPointSet"),t.points?t.points=Ge(t.points):t.points=dc.newInstance(),e.getNumberOfPoints=()=>t.points.getNumberOfPoints(),e.getBounds=()=>t.points.getBounds(),e.computeBounds=()=>{e.getBounds()};const n=e.shallowCopy;e.shallowCopy=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),t.points=dc.newInstance(),t.points.shallowCopy(e.getPoints())}}const qc={};function Xc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qc,n),Ys.extend(e,t,n),Wt.setGet(e,t,["points"]),Kc(e,t)}var Yc={newInstance:Wt.newInstance(Xc,"vtkPointSet"),extend:Xc};function Qc(e,t,n,r){const o=n[0]-t[0],a=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=a*c-i*l,r[1]=i*s-o*c,r[2]=o*l-a*s}function Zc(e,t,n,r){Qc(e,t,n,r);const o=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==o&&(r[0]/=o,r[1]/=o,r[2]/=o)}const Jc={computeNormalDirection:Qc,computeNormal:Zc,intersectWithTriangle:function(e,t,n,r,o,a){let i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1e-6,s=!1;const l=[],c=[],u=[],d=[],p=[];Zc(e,t,n,d),Zc(r,o,a,p);const f=-Fo(d,e),g=-Fo(p,r),m=[Fo(p,e)+g,Fo(p,t)+g,Fo(p,n)+g];if(m[0]*m[1]>i&&m[0]*m[2]>i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const h=[Fo(d,r)+f,Fo(d,o)+f,Fo(d,a)+f];if(h[0]*h[1]>i&&h[0]*h[2]>i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Math.abs(d[0]-p[0])<1e-9&&Math.abs(d[1]-p[1])<1e-9&&Math.abs(d[2]-p[2])<1e-9&&Math.abs(f-g)<1e-9)return s=!0,{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const v=[e,t,n],b=[r,o,a],y=Fo(d,p),T=(f-g*y)/(y*y-1),x=(g-f*y)/(y*y-1),S=[T*d[0]+x*p[0],T*d[1]+x*p[1],T*d[2]+x*p[2]],C=ko(d,p,[]);Go(C);let A=0,w=0;const P=[],I=[];let O,E,M=50,R=50;for(let t=0;t<3;t++){const n=t,o=(t+1)%3,a=Ka.intersectWithLine(v[n],v[o],r,p);a.intersection&&a.t>0-i&&a.t<1+i&&(a.t<1+i&&a.t>1-i&&(M=A),P[A++]=Fo(a.x,C)-Fo(S,C));const s=Ka.intersectWithLine(b[n],b[o],e,d);s.intersection&&s.t>0-i&&s.t<1+i&&(s.t<1+i&&s.t>1-i&&(R=w),I[w++]=Fo(s.x,C)-Fo(S,C))}if(A>2){A--;const e=P[2];P[2]=P[M],P[M]=e}if(w>2){w--;const e=I[2];I[2]=I[R],I[R]=e}if(2!==A||2!==w)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Number.isNaN(P[0])||Number.isNaN(P[1])||Number.isNaN(I[0])||Number.isNaN(I[1]))return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(P[0]>P[1]){const e=P[1];P[1]=P[0],P[0]=e}if(I[0]>I[1]){const e=I[1];I[1]=I[0],I[0]=e}return P[1]2,e.intersectWithLine=(n,r,o,a,i)=>{const s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;const l=[],c=o*o,u=[],d=[],p=[];t.points.getPoint(0,u),t.points.getPoint(1,d),t.points.getPoint(2,p);const f=[],g=[];if(Zc(u,d,p,f),0!==f[0]||0!==f[1]||0!==f[2]){const t=Ka.intersectWithLine(n,r,u,f);if(s.betweenPoints=t.betweenPoints,s.t=t.t,a[0]=t.x[0],a[1]=t.x[1],a[2]=t.x[2],!t.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;const o=e.evaluatePosition(a,l,i,g);if(o.evaluation>=0)return o.dist2<=c?(s.intersect=1,s):(s.intersect=o.evaluation,s)}const m=Wo(u,d),h=Wo(d,p),v=Wo(p,u);t.line||(t.line=$c.newInstance()),m>h&&m>v?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):h>v&&h>m?(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,p)):(t.line.getPoints().setPoint(0,p),t.line.getPoints().setPoint(1,u));const b=t.line.intersectWithLine(n,r,o,a,i);if(s.betweenPoints=b.betweenPoints,s.t=b.t,b.intersect){const e=[],t=[],n=[];for(let r=0;r<3;r++)e[r]=u[r]-p[r],t[r]=d[r]-p[r],n[r]=a[r]-p[r];return i[0]=Fo(n,e)/v,i[1]=Fo(n,t)/h,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=(e,n,r,o)=>{const a={subId:0,dist2:0,evaluation:-1};let i,s;const l=[],c=[],u=[],d=[];let p;const f=[],g=[],m=[];let h=0,v=0;const b=[];let y,T,x,S=[];const C=[],A=[],w=[];a.subId=0,r[2]=0,t.points.getPoint(1,l),t.points.getPoint(2,c),t.points.getPoint(0,u),Qc(l,c,u,d),Ka.generalizedProjectPoint(e,l,d,w);let P=0;for(i=0;i<3;i++)p=d[i]<0?-d[i]:d[i],p>P&&(P=p,v=i);for(s=0,i=0;i<3;i++)i!==v&&(b[s++]=i);for(i=0;i<2;i++)f[i]=w[b[i]]-u[b[i]],g[i]=l[b[i]]-u[b[i]],m[i]=c[b[i]]-u[b[i]];if(h=$o(g,m),0===h)return r[0]=0,r[1]=0,a.evaluation=-1,a;if(r[0]=$o(f,m)/h,r[1]=$o(g,f)/h,o[0]=1-(r[0]+r[1]),o[1]=r[0],o[2]=r[1],o[0]>=0&&o[0]<=1&&o[1]>=0&&o[1]<=1&&o[2]>=0&&o[2]<=1)n&&(a.dist2=Wo(w,e),n[0]=w[0],n[1]=w[1],n[2]=w[2]),a.evaluation=1;else{let t;if(n)if(o[1]<0&&o[2]<0)for(y=Wo(e,u),T=$c.distanceToLine(e,l,u,t,C),x=$c.distanceToLine(e,u,c,t,A),y{const o=[],a=[],i=[];t.points.getPoint(0,o),t.points.getPoint(1,a),t.points.getPoint(2,i);const s=1-e[0]-e[1];for(let t=0;t<3;t++)n[t]=o[t]*s+a[t]*e[0]+i[t]*e[1];r[0]=s,r[1]=e[0],r[2]=e[1]},e.getParametricDistance=e=>{let t,n=0;const r=[];r[0]=e[0],r[1]=e[1],r[2]=1-e[0]-e[1];for(let e=0;e<3;e++)t=r[e]<0?-r[e]:r[e]>1?r[e]-1:0,t>n&&(n=t);return n}}const tu={};function nu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tu,n),mc.extend(e,t,n),eu(e,t)}var ru={newInstance:Wt.newInstance(nu,"vtkTriangle"),extend:nu,...Jc};const ou=["verts","lines","polys","strips"],{vtkWarningMacro:au}=Wt,iu={[Cc]:$c,[Ac]:$c,[wc]:ru};function su(e,t){t.classHierarchy.push("vtkPolyData"),ou.forEach((n=>{e[`getNumberOf${function(e){return e.replace(/(?:^\w|[A-Z]|\b\w)/g,(e=>e.toUpperCase())).replace(/\s+/g,"")}(n)}`]=()=>t[n].getNumberOfCells(),t[n]?t[n]=Ge(t[n]):t[n]=ac.newInstance()})),e.getNumberOfCells=()=>ou.reduce(((e,n)=>e+t[n].getNumberOfCells()),0);const n=e.shallowCopy;e.shallowCopy=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),ou.forEach((n=>{t[n]=ac.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))},e.buildCells=()=>{const n=e.getNumberOfVerts(),r=e.getNumberOfLines(),o=e.getNumberOfPolys(),a=e.getNumberOfStrips(),i=n+r+o+a,s=new Uint8Array(i);let l=s;const c=new Uint32Array(i);let u=c;if(n){let e=0;t.verts.getCellSizes().forEach(((t,n)=>{u[n]=e,l[n]=t>1?Sc:xc,e+=t+1})),u=u.subarray(n),l=l.subarray(n)}if(r){let e=0;t.lines.getCellSizes().forEach(((t,n)=>{u[n]=e,l[n]=t>2?Ac:Cc,1===t&&au("Building VTK_LINE ",n," with only one point, but VTK_LINE needs at least two points. Check the input."),e+=t+1})),u=u.subarray(r),l=l.subarray(r)}if(o){let e=0;t.polys.getCellSizes().forEach(((t,n)=>{switch(u[n]=e,t){case 3:l[n]=wc;break;case 4:l[n]=Oc;break;default:l[n]=Ic}t<3&&au("Building VTK_TRIANGLE ",n," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),e+=t+1})),u+=u.subarray(o),l+=l.subarray(o)}if(a){let e=0;l.fill(Pc,0,a),t.strips.getCellSizes().forEach(((t,n)=>{u[n]=e,e+=t+1}))}t.cells=Nc.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;void 0===t.cells&&e.buildCells(),t.links=yc.newInstance(),n>0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellType=e=>t.cells.getCellType(e),e.getCellPoints=n=>{const r=e.getCellType(n);let o=null;switch(r){case xc:case Sc:o=t.verts;break;case Cc:case Ac:o=t.lines;break;case wc:case Oc:case Ic:o=t.polys;break;case Pc:o=t.strips;break;default:return o=null,{type:0,cellPointIds:null}}const a=t.cells.getCellLocation(n);return{cellType:r,cellPointIds:o.getCell(a)}},e.getPointCells=e=>t.links.getCells(e),e.getCellEdgeNeighbors=(e,n,r)=>{const o=t.links.getLink(n),a=t.links.getLink(r);return o.cells.filter((t=>t!==e&&-1!==a.cells.indexOf(t)))},e.getCell=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const r=e.getCellPoints(t),o=n||iu[r.cellType].newInstance();return o.initialize(e.getPoints(),r.cellPointIds),o}}const lu={};function cu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lu,n),Yc.extend(e,t,n),Wt.get(e,t,["cells","links"]),Wt.setGet(e,t,["verts","lines","polys","strips"]),su(e,t)}var uu={newInstance:Wt.newInstance(cu,"vtkPolyData"),extend:cu};function du(e,t){t.classHierarchy.push("vtkTexture"),e.imageLoaded=()=>{t.image.removeEventListener("load",e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setJsImageData=n=>{t.jsImageData!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null),t.jsImageData=n,t.imageLoaded=!0,e.modified())},e.setCanvas=n=>{t.canvas!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null),t.image=null,t.jsImageData=null),t.canvas=n,e.modified())},e.setImage=n=>{t.image!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null),t.canvas=null,t.jsImageData=null),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener("load",e.imageLoaded),e.modified())},e.getDimensionality=()=>{let n=0,r=0,o=1;if(e.getInputData()){const t=e.getInputData();n=t.getDimensions()[0],r=t.getDimensions()[1],o=t.getDimensions()[2]}return t.jsImageData&&(n=t.jsImageData.width,r=t.jsImageData.height),t.canvas&&(n=t.canvas.width,r=t.canvas.height),t.image&&(n=t.image.width,r=t.image.height),(n>1)+(r>1)+(o>1)},e.getInputAsJsImageData=()=>{if(!t.imageLoaded||e.getInputData())return null;if(t.jsImageData)return t.jsImageData();if(t.canvas)return t.canvas.getContext("2d").getImageData(0,0,t.canvas.width,t.canvas.height);if(t.image){const e=document.createElement("canvas");e.width=t.image.width,e.height=t.image.height;const n=e.getContext("2d");return n.translate(0,e.height),n.scale(1,-1),n.drawImage(t.image,0,0,t.image.width,t.image.height),n.getImageData(0,0,e.width,e.height)}return null}}const pu={image:null,canvas:null,jsImageData:null,imageLoaded:!1,repeat:!1,interpolate:!1,edgeClamp:!1,mipLevel:0,resizable:!1};function fu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pu,n),Wt.obj(e,t),Wt.algo(e,t,6,0),Wt.get(e,t,["canvas","image","jsImageData","imageLoaded","resizable"]),Wt.setGet(e,t,["repeat","edgeClamp","interpolate","mipLevel"]),du(e,t)}const gu={generateMipmaps:(e,t,n,r)=>{const o=[1,2,1],a=e.length/(t*n);let i=t,s=n,l=e;const c=[l];for(let e=0;ea&&(u+=t),d<-a&&(u-=t),r[u]?c+=r[u]*o[l]:s-=o[l],i+=1}l[e+n]=c/s}r=[...l];for(let e=0;e{t.renderable!==n&&(t.renderable=n,t.tmActor.addTexture(t.renderable.getTmTexture()),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),e.modified())},e.createPolyDataForOneLabel=(e,n,r,o,a,i,s)=>{const l=t.renderable.get_tmAtlas().get(e);if(!l)return;const c=t.renderable.getTextPolyData().getPoints().getData(),u=t.lastSize;xu[0]=c[3*n],xu[1]=c[3*n+1],xu[2]=c[3*n+2],In(Cu,xu,r),Cu[0]+=.1,In(Su,Cu,o),An(wu,Su,xu),Cu[0]-=.1,Cu[1]+=.1,In(Su,Cu,o),An(Pu,Su,xu);for(let e=0;e<3;e++)wu[e]/=.05*u[0],Pu[e]/=.05*u[1];let d=s.ptIdx,p=s.cellIdx;xu[0]=c[3*n],xu[1]=c[3*n+1],xu[2]=c[3*n+2],a[0]<-.5?wn(Cu,wu,a[0]*i-l.width):a[0]>.5?wn(Cu,wu,a[0]*i):wn(Cu,wu,a[0]*i-l.width/2),Cn(xu,xu,Cu),wn(Cu,Pu,a[1]*i-l.height/2),Cn(xu,xu,Cu),s.points[3*d]=xu[0],s.points[3*d+1]=xu[1],s.points[3*d+2]=xu[2],s.tcoords[2*d]=l.tcoords[0],s.tcoords[2*d+1]=l.tcoords[1],d++,wn(Cu,wu,l.width),Cn(xu,xu,Cu),s.points[3*d]=xu[0],s.points[3*d+1]=xu[1],s.points[3*d+2]=xu[2],s.tcoords[2*d]=l.tcoords[2],s.tcoords[2*d+1]=l.tcoords[3],d++,wn(Cu,Pu,l.height),Cn(xu,xu,Cu),s.points[3*d]=xu[0],s.points[3*d+1]=xu[1],s.points[3*d+2]=xu[2],s.tcoords[2*d]=l.tcoords[4],s.tcoords[2*d+1]=l.tcoords[5],d++,wn(Cu,wu,l.width),An(xu,xu,Cu),s.points[3*d]=xu[0],s.points[3*d+1]=xu[1],s.points[3*d+2]=xu[2],s.tcoords[2*d]=l.tcoords[6],s.tcoords[2*d+1]=l.tcoords[7],d++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-3,s.polys[4*p+3]=d-2,p++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-2,s.polys[4*p+3]=d-1,s.ptIdx+=4,s.cellIdx+=2},e.updateTexturePolyData=()=>{const n=t.camera.getCompositeProjectionMatrix(t.lastAspectRatio,-1,1);f(n,n);const r=t.renderable.getTextValues().length,o=4*r,a=2*r,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o);g(Iu,n);const c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l};let u=0,d=0,p=0;const m=t.renderable.getTextPolyData().getPoints().getData(),h=t.renderable.getTextValues();for(;u{t.lastSize[0]===n[0]&&t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0),t.camera=r,e.updateTexturePolyData()}}const Ru=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{renderable:null};Object.assign(t,{},n),Wt.obj(e,t),t.tmPolyData=uu.newInstance(),t.tmMapper=Zl.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmActor=cs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),Wt.setGet(e,t,["renderable"]),Wt.get(e,t,["lastSize","lastAspectRatio","axisTextStyle","tickTextStyle","tmActor","ticks"]),t.forceUpdate=!1,t.lastRedrawTime={},Wt.obj(t.lastRedrawTime,{mtime:0}),t.lastRebuildTime={},Wt.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.lastTickBounds=[],Mu(e,t)}),"vtkCubeAxesActorHelper");function Du(e,t){t.classHierarchy.push("vtkCubeAxesActor"),e.setCamera=n=>{t.camera!==n&&(t.cameraModifiedSub&&(t.cameraModifiedSub.unsubscribe(),t.cameraModifiedSub=null),t.camera=n,n&&(t.cameraModifiedSub=n.onModified(e.update)),e.update(),e.modified())},e.computeFacesToDraw=()=>{const e=t.camera.getViewMatrix();f(e,e);let n=!1;const r=Mi.getDiagonalLength(t.dataBounds),o=Math.sin(t.faceVisibilityAngle*Math.PI/180);for(let s=0;s<6;s++){let l=!1;const c=Math.floor(s/2),u=(c+1)%3,d=(c+2)%3;t.dataBounds[2*u]!==t.dataBounds[2*u+1]&&t.dataBounds[2*d]!==t.dataBounds[2*d+1]&&(xu[c]=t.dataBounds[s]-.1*r*hu[s][c],xu[u]=.5*(t.dataBounds[2*u]+t.dataBounds[2*u+1]),xu[d]=.5*(t.dataBounds[2*d]+t.dataBounds[2*d+1]),In(Cu,xu,e),xu[c]=t.dataBounds[s],In(Au,xu,e),An(Cu,Au,Cu),Pn(Cu,Cu),l=Cu[2]>o,t.camera.getParallelProjection()||(Pn(Au,Au),i=Cu,l=(a=Au)[0]*i[0]+a[1]*i[1]+a[2]*i[2]>o)),l!==t.lastFacesToDraw[s]&&(t.lastFacesToDraw[s]=l,n=!0)}var a,i;return n},e.updatePolyData=(e,n,r)=>{let o=0,a=0;o+=8;let i=0;for(let e=0;e<12;e++)n[e]>0&&i++;if(a+=i,t.gridLines)for(let t=0;t<6;t++)e[t]&&(o+=2*r[Tu[t][0]].length+2*r[Tu[t][1]].length,a+=r[Tu[t][0]].length+r[Tu[t][1]].length);const s=new Float64Array(3*o),l=new Uint32Array(3*a);let c=0,u=0;for(let e=0;e<2;e++)for(let n=0;n<2;n++)for(let r=0;r<2;r++)s[3*c]=t.dataBounds[r],s[3*c+1]=t.dataBounds[2+n],s[3*c+2]=t.dataBounds[4+e],c++;for(let e=0;e<12;e++)n[e]>0&&(l[3*u]=2,l[3*u+1]=bu[e][0],l[3*u+2]=bu[e][1],u++);if(t.gridLines)for(let n=0;n<6;n++)if(e[n]){const e=Math.floor(n/2);let o=r[Tu[n][0]];for(let r=0;r{let a=0;for(let e=0;e<12;e++)1===n[e]&&(a+=2,a+=r[yu[e]].length);const i=t.polyData.getPoints().getData(),s=new Float64Array(3*a);let l=0,c=0,u=0;for(let a=0;a<6;a++)if(e[a])for(let e=0;e<4;e++){const d=vu[a][e];if(1===n[d]){const e=yu[d],n=3*bu[d][0],p=3*bu[d][1];s[3*l]=.5*(i[n]+i[p]),s[3*l+1]=.5*(i[n+1]+i[p+1]),s[3*l+2]=.5*(i[n+2]+i[p+2]),l++,s[3*l+Math.floor(a/2)]=t.dataBounds[a],s[3*l+Tu[a][0]]=.5*(t.dataBounds[2*Tu[a][0]]+t.dataBounds[2*Tu[a][0]+1]),s[3*l+Tu[a][1]]=.5*(t.dataBounds[2*Tu[a][1]]+t.dataBounds[2*Tu[a][1]+1]),l++,t.textValues[c]=t.axisLabels[e],c++;const f=(e+1)%3,g=(e+2)%3,m=r[e],h=o[e];t.tickCounts[u]=m.length;for(let r=0;r{if(!t.camera)return;const n=e.computeFacesToDraw(),r=t.lastFacesToDraw;let o=!1;for(let e=0;e<6;e++)t.dataBounds[e]!==t.lastTickBounds[e]&&(o=!0,t.lastTickBounds[e]=t.dataBounds[e]);if(n||o||t.forceUpdate){const n=new Array(12).fill(0);for(let e=0;e<6;e++)if(r[e])for(let t=0;t<4;t++)n[vu[e][t]]++;const a=t.generateTicks(t.dataBounds);e.updatePolyData(r,n,a.ticks),e.updateTextData(r,n,a.ticks,a.tickStrings),(o||t.forceUpdate)&&e.updateTextureAtlas(a.tickStrings)}t.forceUpdate=!1},e.updateTextureAtlas=e=>{t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t._tmAtlas.clear();let n=0,r=1;for(let o=0;o<3;o++){if(!t._tmAtlas.has(t.axisLabels[o])){Ou(t.tmContext,t.axisTextStyle);const e=t.tmContext.measureText(t.axisLabels[o]),a={height:e.actualBoundingBoxAscent+2,startingHeight:r,width:e.width+2,textStyle:t.axisTextStyle};t._tmAtlas.set(t.axisLabels[o],a),r+=a.height,n{e.tcoords=[0,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight)/r,0,(r-e.startingHeight)/r]})),t.tmCanvas.width=n,t.tmCanvas.height=r,t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t.tmContext.clearRect(0,0,n,r),t._tmAtlas.forEach(((e,n)=>{Ou(t.tmContext,e.textStyle),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified()},e.onModified((()=>{t.forceUpdate=!0,e.update()})),e.setTickTextStyle=n=>{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=>{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.get_tmAtlas=()=>t._tmAtlas,e.getBounds=()=>(e.update(),Mi.setBounds(t.bounds,t.gridActor.getBounds()),Mi.scaleAboutCenter(t.bounds,t.boundsScaleFactor,t.boundsScaleFactor,t.boundsScaleFactor),t.bounds);const n=Wt.chain(e.setProperty,t.gridActor.setProperty);e.setProperty=e=>n(e)[0]}function Bu(e,t,n){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Mi.INIT_BOUNDS],faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,tickLabelPixelOffset:12,generateTicks:Eu,...n,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif",...n?.axisTextStyle},tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif",...n?.tickTextStyle}}}function Lu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};cs.extend(e,t,Bu(0,0,n)),t.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],t.axisLabels=["X-Axis","Y-Axis","Z-Axis"],t.tickCounts=[],t.textValues=[],t.lastTickBounds=[],t.tmCanvas=document.createElement("canvas"),t.tmContext=t.tmCanvas.getContext("2d"),t._tmAtlas=new Map,t.tmTexture=mu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),t.gridMapper=Zl.newInstance(),t.polyData=uu.newInstance(),t.gridMapper.setInputData(t.polyData),t.gridActor=cs.newInstance(),t.gridActor.setMapper(t.gridMapper),t.gridActor.setProperty(e.getProperty()),t.gridActor.setParentProp(e),t.textPolyData=uu.newInstance(),Wt.setGet(e,t,["axisTitlePixelOffset","boundsScaleFactor","faceVisibilityAngle","gridLines","tickLabelPixelOffset","generateTicks"]),Wt.setGetArray(e,t,["dataBounds"],6),Wt.setGetArray(e,t,["axisLabels"],3),Wt.get(e,t,["axisTextStyle","tickTextStyle","camera","tmTexture","textValues","textPolyData","tickCounts","gridActor"]),Du(e,t)}var Vu={newInstance:Wt.newInstance(Lu,"vtkCubeAxesActor"),extend:Lu,newCubeAxesActorHelper:Ru,defaultGenerateTicks:Eu};function _u(e,t){t.classHierarchy.push("vtkOpenGLCubeAxesActor"),e.buildPass=n=>{n&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=>{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}const Nu={};const Fu=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Nu,n),Xt.extend(e,t,n),t.CubeAxesActorHelper=Vu.newCubeAxesActorHelper(),_u(e,t)}),"vtkOpenGLCubeAxesActor");tn("vtkCubeAxesActor",Fu);const ku={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2};var Uu={ObjectType:ku};const{ObjectType:Gu}=Uu;function zu(e,t){function n(e){switch(e){case Gu.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case Gu.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in t.context)return t.context.TEXTURE_BUFFER;case Gu.ARRAY_BUFFER:default:return t.context.ARRAY_BUFFER}}t.classHierarchy.push("vtkOpenGLBufferObject");let r=null,o=null,a=!0,i="";e.getType=()=>r,e.setType=e=>{r=e},e.getHandle=()=>o,e.isReady=()=>!1===a,e.generateBuffer=e=>{const a=n(e);return null===o&&(o=t.context.createBuffer(),r=e),n(r)===a},e.upload=(s,l)=>e.generateBuffer(l)?(t.context.bindBuffer(n(r),o),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),t.allocatedGPUMemoryInBytes=s.length*s.BYTES_PER_ELEMENT,a=!1,!0):(i="Trying to upload array buffer to incompatible buffer.",!1),e.bind=()=>!!o&&(t.context.bindBuffer(n(r),o),!0),e.release=()=>!!o&&(t.context.bindBuffer(n(r),null),!0),e.releaseGraphicsResources=()=>{null!==o&&(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(o),o=null,t.allocatedGPUMemoryInBytes=0)},e.setOpenGLRenderWindow=n=>{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))},e.getError=()=>i}const Wu={objectType:Gu.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function Hu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wu,n),Wt.obj(e,t),Wt.get(e,t,["_openGLRenderWindow","allocatedGPUMemoryInBytes"]),Wt.moveToProtected(e,t,["openGLRenderWindow"]),zu(e,t)}var ju={newInstance:Wt.newInstance(Hu),extend:Hu,...Uu};const{vtkErrorMacro:$u}=Wt;function Ku(e,t){t.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),e.setType(ku.ARRAY_BUFFER),e.createVBO=function(n,r,o,a){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];const s=a.points.getData();let l=null,c=null,u=null;const d=a.colors?a.colors.getNumberOfComponents():0,p=a.tcoords?a.tcoords.getNumberOfComponents():0;a.normals&&(t.normalOffset=4*t.blockSize,t.blockSize+=3,l=a.normals.getData()),a.customAttributes&&a.customAttributes.forEach((e=>{e&&(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())})),a.tcoords&&(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=p,t.blockSize+=p,c=a.tcoords.getData()),a.colors?(t.colorComponents=a.colors.getNumberOfComponents(),t.colorOffset=0,u=a.colors.getData(),t.colorBO||(t.colorBO=ju.newInstance()),t.colorBO.setOpenGLRenderWindow(t._openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;let f,g=0,m=0,h=0,v=0,b=0,y=0;const T={anythingToPoints(e,t,n,r){for(let o=0;o2)for(let o=0;o2){for(let o=0;oe,linesToWireframe:(e,t)=>e>1?2*(e-1):0,polysToWireframe:(e,t)=>e>2?2*e:0,stripsToWireframe:(e,t)=>e>2?4*e-6:0,polysToSurface:(e,t)=>e>2?3*(e-2):0,stripsToSurface:(e,t,n)=>e>2?3*(e-2):0};let S=null,C=null;o===Yi.POINTS||"verts"===r?(S=T.anythingToPoints,C=x.anythingToPoints):o===Yi.WIREFRAME||"lines"===r?(S=T[`${r}ToWireframe`],C=x[`${r}ToWireframe`]):(S=T[`${r}ToSurface`],C=x[`${r}ToSurface`]);const A=n.getData(),w=A.length;let P=0;for(let e=0;e0&&(Math.abs(D)/R>1e6||Math.abs(Math.log10(R))>3||0===R&&D>1e6);if(B){const t=new Float64Array(3),n=new Float64Array(3);for(let e=0;e<3;++e){const r=a.points.getRange(e),o=r[1]-r[0];t[e]=.5*(r[1]+r[0]),n[e]=o>0?1/o:1}e.setCoordShiftAndScale(t,n)}else!0===t.coordShiftAndScaleEnabled&&e.setCoordShiftAndScale(null,null);if(i)if(i.points||i.cells){const e=new Int32Array(P+i.points.length);e.set(i.points),i.points=e;const t=new Int32Array(P+i.cells.length);t.set(i.cells),i.cells=t}else i.points=new Int32Array(P),i.cells=new Int32Array(P);let L=a.vertexOffset;f=function(e,n){if(i&&(i.points[L]=e,i.cells[L]=y+a.cellOffset),++L,g=3*e,t.coordShiftAndScaleEnabled?(O[E++]=(s[g++]-t.coordShift[0])*t.coordScale[0],O[E++]=(s[g++]-t.coordShift[1])*t.coordScale[1],O[E++]=(s[g++]-t.coordShift[2])*t.coordScale[2]):(O[E++]=s[g++],O[E++]=s[g++],O[E++]=s[g++]),null!==l&&(m=a.haveCellNormals?3*(y+a.cellOffset):3*e,O[E++]=l[m++],O[E++]=l[m++],O[E++]=l[m++]),t.customData.forEach((t=>{b=e*t.components;for(let e=0;e{null===e||e.constructor===Float64Array&&3===e.length?null===n||n.constructor===Float64Array&&3===n.length?(null!==t.coordShift&&null!==e&&En(e,t.coordShift)||(t.coordShift=e),null!==t.coordScale&&null!==n&&En(n,t.coordScale)||(t.coordScale=n),t.coordShiftAndScaleEnabled=function(e,t){return null!==e&&null!==t&&!(On(e,[0,0,0])&&On(t,[1,1,1]))}(t.coordShift,t.coordScale),t.coordShiftAndScaleEnabled?t.inverseShiftAndScaleMatrix=function(e,t){const n=new Float64Array(3);var r,o;o=t,(r=n)[0]=1/o[0],r[1]=1/o[1],r[2]=1/o[2];const a=new Float64Array(16);return V(a,Di(),e,n),a}(t.coordShift,t.coordScale):t.inverseShiftAndScaleMatrix=null):$u("Wrong type for coordScale, expected vec3 or null"):$u("Wrong type for coordShift, expected vec3 or null")}}const qu={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function Xu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qu,n),ju.extend(e,t,n),Wt.setGet(e,t,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),Wt.get(e,t,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),Ku(e,t)}var Yu={newInstance:Wt.newInstance(Xu),extend:Xu};const{vtkErrorMacro:Qu}=Wt;function Zu(e,t){t.classHierarchy.push("vtkShader"),e.compile=()=>{let e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||"Unknown"===t.shaderType)return!1;if(0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0),e="Fragment"===t.shaderType?t.context.FRAGMENT_SHADER:t.context.VERTEX_SHADER,t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){const e=t.context.getShaderInfoLog(t.handle);return Qu(`Error compiling shader '${t.source}': ${e}`),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=()=>{"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}const Ju={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function ed(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ju,n),Wt.obj(e,t),Wt.setGet(e,t,["shaderType","source","error","handle","context"]),Zu(e,t)}var td={newInstance:Wt.newInstance(ed,"vtkShader"),extend:ed};const{vtkErrorMacro:nd}=Wt;function rd(e,t){t.classHierarchy.push("vtkShaderProgram"),e.compileShader=()=>t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&&e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(nd(`Links failed: ${t.error}`),0):(nd(t.error),0):(nd(t.fragmentShader.getSource().split("\n").map(((e,t)=>`${t}: ${e}`)).join("\n")),nd(t.fragmentShader.getError()),0):(nd(t.vertexShader.getSource().split("\n").map(((e,t)=>`${t}: ${e}`)).join("\n")),nd(t.vertexShader.getError()),0),e.cleanup=()=>{"Unknown"!==t.shaderType&&0!==t.handle&&(e.release(),0!==t.vertexShaderHandle&&(t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=0),0!==t.fragmentShaderHandle&&(t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=0),t.context.deleteProgram(t.handle),t.handle=0,e.setCompiled(!1))},e.bind=()=>!(!t.linked&&!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0)),e.isBound=()=>!!t.bound,e.release=()=>{t.context.useProgram(null),e.setBound(!1)},e.setContext=e=>{t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=()=>{if(t.linked)return!0;if(0===t.handle)return t.error="Program has not been initialized, and/or does not have shaders.",!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){const e=t.context.getProgramInfoLog(t.handle);return nd(`Error linking shader ${e}`),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=(n,r)=>{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix4fv(o,!1,a),!0},e.setUniformMatrix3x3=(n,r)=>{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix3fv(o,!1,a),!0},e.setUniformf=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1f(o,r),!0)},e.setUniformfv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1fv(o,r),!0)},e.setUniformi=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1i(o,r),!0)},e.setUniformiv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1iv(o,r),!0)},e.setUniform2f=(n,r,o)=>{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform2f(a,r,o),!0},e.setUniform2fv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2fv(o,r),!0)},e.setUniform2i=(n,r,o)=>{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform2i(a,r,o),!0},e.setUniform2iv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2iv(o,r),!0)},e.setUniform3f=(n,r,o,a)=>{const i=e.findUniform(n);if(-1===i)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(i,r,o,a),!0},e.setUniform3fArray=(n,r)=>{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(o,r[0],r[1],r[2]),!0},e.setUniform3fv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3fv(o,r),!0)},e.setUniform3i=function(n){const r=e.findUniform(n);if(-1===r)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3iv(o,r),!0)},e.setUniform4f=function(n){const r=e.findUniform(n);if(-1===r)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4fv(o,r),!0)},e.setUniform4i=function(n){const r=e.findUniform(n);if(-1===r)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4iv(o,r),!0)},e.findUniform=e=>{if(!e||!t.linked)return-1;let n=t.uniformLocs[e];return void 0!==n?n:(n=t.context.getUniformLocation(t.handle,e),null===n?(t.error=`Uniform ${e} not found in current shader program.`,t.uniformLocs[e]=-1,-1):(t.uniformLocs[e]=n,n))},e.isUniformUsed=e=>{if(!e)return!1;let n=t.uniformLocs[e];return void 0!==n?null!==n:t.linked?(n=t.context.getUniformLocation(t.handle,e),t.uniformLocs[e]=n,null!==n):(nd("attempt to find uniform when the shader program is not linked"),!1)},e.isAttributeUsed=e=>{if(!e)return!1;if(e in t.attributeLocs)return!0;if(!t.linked)return nd("attempt to find uniform when the shader program is not linked"),!1;const n=t.context.getAttribLocation(t.handle,e);return-1!==n&&(t.attributeLocs[e]=n,!0)},e.attachShader=n=>{if(0===n.getHandle())return t.error="Shader object was not initialized, cannot attach it.",!1;if("Unknown"===n.getShaderType())return t.error="Shader object is of type Unknown and cannot be used.",!1;if(0===t.handle){const e=t.context.createProgram();if(0===e)return t.error="Could not create shader program.",!1;t.handle=e,t.linked=!1}return"Vertex"===n.getShaderType()&&(0!==t.vertexShaderHandle&&t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=n.getHandle()),"Fragment"===n.getShaderType()&&(0!==t.fragmentShaderHandle&&t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=n.getHandle()),t.context.attachShader(t.handle,n.getHandle()),e.setLinked(!1),!0},e.detachShader=e=>{if(0===e.getHandle())return t.error="shader object was not initialized, cannot attach it.",!1;if("Unknown"===e.getShaderType())return t.error="Shader object is of type Unknown and cannot be used.",!1;switch(0===t.handle&&(t.error="This shader program has not been initialized yet."),e.getShaderType()){case"Vertex":return t.vertexShaderHandle!==e.getHandle()?(t.error="The supplied shader was not attached to this program.",!1):(t.context.detachShader(t.handle,e.getHandle()),t.vertexShaderHandle=0,t.linked=!1,!0);case"Fragment":return t.fragmentShaderHandle!==e.getHandle()?(t.error="The supplied shader was not attached to this program.",!1):(t.context.detachShader(t.handle,e.getHandle()),t.fragmentShaderHandle=0,t.linked=!1,!0);default:return!1}},e.setContext=e=>{t.context=e,t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.setLastCameraMTime=e=>{t.lastCameraMTime=e}}const od={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:"",handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function ad(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,od,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=td.newInstance(),t.vertexShader.setShaderType("Vertex"),t.fragmentShader=td.newInstance(),t.fragmentShader.setShaderType("Fragment"),t.geometryShader=td.newInstance(),t.geometryShader.setShaderType("Geometry"),Wt.obj(e,t),Wt.get(e,t,["lastCameraMTime"]),Wt.setGet(e,t,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),rd(e,t)}var id={newInstance:Wt.newInstance(ad,"vtkShaderProgram"),extend:ad,substitute:function(e,t,n,r){const o="string"==typeof n?n:n.join("\n"),a=!1===r?t:new RegExp(t,"g"),i=e.replace(a,o);return{replace:i!==o,result:i}}};function sd(e,t){t.classHierarchy.push("vtkOpenGLVertexArrayObject"),e.exposedMethod=()=>{},e.initialize=()=>{t.instancingExtension=null,t._openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension("ANGLE_instanced_arrays")),!t.forceEmulation&&t._openGLRenderWindow&&t._openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension("OES_vertex_array_object"),!t.forceEmulation&&t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=()=>0!==t.handleVAO||!1===t.supported,e.bind=()=>{if(e.isReady()||e.initialize(),e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady()){const e=t.context;for(let n=0;n0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,1):e.vertexAttribDivisor(o.index+n,1))}}}},e.release=()=>{if(e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady()){const e=t.context;for(let n=0;n0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,0):e.vertexAttribDivisor(o.index+n,0)),e.disableVertexAttribArray(o.index+n)}}}},e.shaderProgramChanged=()=>{e.release(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=()=>{e.shaderProgramChanged(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=(t,n,r,o,a,i,s,l)=>e.addAttributeArrayWithDivisor(t,n,r,o,a,i,s,l,0,!1),e.addAttributeArrayWithDivisor=(n,r,o,a,i,s,l,c,u,d)=>{if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==ku.ARRAY_BUFFER)return!1;if(0===t.handleProgram&&(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;const p=t.context,f={};if(f.name=o,f.index=p.getAttribLocation(t.handleProgram,o),f.offset=a,f.stride=i,f.type=s,f.size=l,f.normalize=c,f.isMatrix=d,f.divisor=u,-1===f.Index)return!1;if(r.bind(),p.enableVertexAttribArray(f.index),p.vertexAttribPointer(f.index,f.size,f.type,f.normalize,f.stride,f.offset),u>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f.index,1):p.vertexAttribDivisor(f.index,1)),f.buffer=r.getHandle(),!t.supported){let e=!1;for(let n=0;n{const d=e.addAttributeArrayWithDivisor(n,r,o,a,i,s,l,c,u,!0);if(!d)return d;const p=t.context,f=p.getAttribLocation(t.handleProgram,o);for(let e=1;e0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f+e,1):p.vertexAttribDivisor(f+e,1));return!0},e.removeAttributeArray=n=>{if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(let e=0;e{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))}}const ld={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function cd(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ld,n),t.buffers=[],Wt.obj(e,t),Wt.get(e,t,["supported"]),Wt.setGet(e,t,["forceEmulation"]),sd(e,t)}var ud={newInstance:Wt.newInstance(cd,"vtkOpenGLVertexArrayObject"),extend:cd};const dd={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};function pd(e,t){t.classHierarchy.push("vtkOpenGLHelper"),e.setOpenGLRenderWindow=e=>{t.context=e.getContext(),t.program.setContext(t.context),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=e=>{t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)},e.drawArrays=(n,r,o,a)=>{if(t.CABO.getElementCount()){const i=e.getOpenGLMode(o),s=e.haveWideLines(n,r),l=t.context,c=l.getParameter(l.DEPTH_WRITEMASK);t.pointPicking&&l.depthMask(!1),i===l.LINES&&s?(e.updateShaders(n,r,a),l.drawArraysInstanced(i,0,t.CABO.getElementCount(),2*Math.ceil(r.getProperty().getLineWidth()))):(l.lineWidth(r.getProperty().getLineWidth()),e.updateShaders(n,r,a),l.drawArrays(i,0,t.CABO.getElementCount()),l.lineWidth(1));const u=(i===l.POINTS?1:0)||(i===l.LINES?2:3);return t.pointPicking&&l.depthMask(c),t.CABO.getElementCount()/u}return 0},e.getOpenGLMode=e=>{if(t.pointPicking)return t.context.POINTS;const n=t.primitiveType;return e===Yi.POINTS||n===dd.Points?t.context.POINTS:e===Yi.WIREFRAME||n===dd.Lines||n===dd.TrisEdges||n===dd.TriStripsEdges?t.context.LINES:t.context.TRIANGLES},e.haveWideLines=(e,n)=>n.getProperty().getLineWidth()>1&&!(t.CABO.getOpenGLRenderWindow()&&t.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()>=n.getProperty().getLineWidth()),e.getNeedToRebuildShaders=(t,n,r)=>!!(r.getNeedToRebuildShaders(e,t,n)||0===e.getProgram()||e.getShaderSourceTime().getMTime(){if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};o.buildShaders(a,n,r);const i=t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==e.getProgram()&&(e.setProgram(i),e.getVAO().releaseGraphicsResources()),e.getShaderSourceTime().modified()}else t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(e.getProgram());e.getVAO().bind(),o.setMapperShaderParameters(e,n,r),o.setPropertyShaderParameters(e,n,r),o.setCameraShaderParameters(e,n,r),o.setLightingShaderParameters(e,n,r),o.invokeShaderCallbacks(e,n,r)},e.setMapperShaderParameters=(n,r,o)=>{if(e.haveWideLines(n,r)){e.getProgram().setUniform2f("viewportSize",o.usize,o.vsize);const t=parseFloat(r.getProperty().getLineWidth()),n=t/2;e.getProgram().setUniformf("lineWidthStepSize",t/Math.ceil(t)),e.getProgram().setUniformf("halfLineWidth",n)}t.primitiveType===dd.Points||r.getProperty().getRepresentation()===Yi.POINTS?e.getProgram().setUniformf("pointSize",r.getProperty().getPointSize()):t.pointPicking&&e.getProgram().setUniformf("pointSize",e.getPointPickingPrimitiveSize())},e.replaceShaderPositionVC=(n,r,o)=>{let a=n.Vertex;a=id.substitute(a,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform float pointSize;"]).result,a=id.substitute(a,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = pointSize;"],!1).result,e.getOpenGLMode(o.getProperty().getRepresentation())===t.context.LINES&&e.haveWideLines(r,o)&&(a=id.substitute(a,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform vec2 viewportSize;","uniform float lineWidthStepSize;","uniform float halfLineWidth;"]).result,a=id.substitute(a,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," if (halfLineWidth > 0.0)"," {"," float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;"," vec4 tmpPos = gl_Position;"," vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];"," tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];"," gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);"," }"]).result),n.Vertex=a},e.getPointPickingPrimitiveSize=()=>t.primitiveType===dd.Points?2:t.primitiveType===dd.Lines?4:6,e.getAllocatedGPUMemoryInBytes=()=>e.getCABO().getAllocatedGPUMemoryInBytes()}const fd={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function gd(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fd,n),Wt.obj(e,t),t.shaderSourceTime={},Wt.obj(t.shaderSourceTime),t.attributeUpdateTime={},Wt.obj(t.attributeUpdateTime),Wt.setGet(e,t,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType","pointPicking"]),t.program=id.newInstance(),t.VAO=ud.newInstance(),t.CABO=Yu.newInstance(),pd(e,t)}var md={newInstance:Wt.newInstance(gd),extend:gd,primTypes:dd};const hd={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var vd={Wrap:{CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Filter:hd};const bd=new Float32Array(1),yd=new Int32Array(bd.buffer);var Td={fromHalf:function(e){const t=(32768&e)>>15,n=(31744&e)>>10,r=1023&e;return 0===n?(t?-1:1)*2**-14*(r/1024):31===n?r?NaN:1/0*(t?-1:1):(t?-1:1)*2**(n-15)*(1+r/1024)},toHalf:function(e){bd[0]=e;const t=yd[0];let n=t>>16&32768,r=t>>12&2047;const o=t>>23&255;return o<103?n:o>142?(n|=31744,n|=(255===o?0:1)&&8388607&t,n):o<113?(r|=2048,n|=(r>>114-o)+(r>>113-o&1),n):(n|=o-112<<10|r>>1,n+=1&r,n)}};const{Wrap:xd,Filter:Sd}=vd,{VtkDataTypes:Cd}=ws,{vtkDebugMacro:Ad,vtkErrorMacro:wd,vtkWarningMacro:Pd}=Ht,{toHalf:Id}=Td;function Od(e,t){function n(e){if(t._openGLRenderWindow.getWebgl2())return e;const n=[],r=t.width,o=t.height,a=t.components;if(e&&(!Ro(r)||!Ro(o))){const i=t.context.getExtension("OES_texture_half_float"),s=Mo(r),l=Mo(o),c=s*l*t.components;for(let u=0;u=o&&(c=o-1);const m=i-l,h=1-m;l=l*r*a,c=c*r*a;for(let t=0;t=r&&(p=r-1);const v=i-s;s*=a,p*=a;for(let t=0;t2048||o<-2048||o>2048)return!1}return!0}(r,o)||a;let s=!1;if(t._openGLRenderWindow.getWebgl2())s=t.openGLDataType===t.context.FLOAT&&null===t.context.getExtension("OES_texture_float_linear")&&i||t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension("OES_texture_half_float");s=e&&t.openGLDataType===e.HALF_FLOAT_OES}t.canUseHalfFloat=s&&i}(a,c.offset,c.scale,r),e.useHalfFloat()||e.getOpenGLDataType(a,!0),{numComps:o,dataType:a,data:i,scaleOffsets:c}}t.classHierarchy.push("vtkOpenGLTexture"),e.render=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(n?t._openGLRenderWindow=n:(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow")),t.context=t._openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Sd.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Sd.LINEAR),e.setMagnificationFilter(Sd.LINEAR)):(e.setMinificationFilter(Sd.NEAREST),e.setMagnificationFilter(Sd.NEAREST)),t.renderable.getRepeat()&&(e.setWrapR(xd.REPEAT),e.setWrapS(xd.REPEAT),e.setWrapT(xd.REPEAT)),t.renderable.getInputData()&&t.renderable.setImage(null),!t.handle||t.renderable.getMTime()>t.textureBuildTime.getMTime()){if(null!==t.renderable.getImage()&&(t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Sd.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&&t.renderable.getImageLoaded()&&(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getCanvas()){t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Sd.LINEAR_MIPMAP_LINEAR));const n=t.renderable.getCanvas();e.create2DFromRaw(n.width,n.height,4,Cd.UNSIGNED_CHAR,n,!0),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}if(null!==t.renderable.getJsImageData()){const n=t.renderable.getJsImageData();t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Sd.LINEAR_MIPMAP_LINEAR)),e.create2DFromRaw(n.width,n.height,4,Cd.UNSIGNED_CHAR,n.data,!0),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}const n=t.renderable.getInputData(0);if(n&&n.getPointData().getScalars()){const r=n.getExtent(),o=n.getPointData().getScalars(),a=[];for(let e=0;e{e.deactivate(),t.context&&t.handle&&t.context.deleteTexture(t.handle),t.handle=0,t.numberOfDimensions=0,t.target=0,t.components=0,t.width=0,t.height=0,t.depth=0,e.resetFormatAndType()},e.createTexture=()=>{t.handle||(t.handle=t.context.createTexture(),t.target&&(t.context.bindTexture(t.target,t.handle),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.bindTexture(t.target,null)))},e.getTextureUnit=()=>t._openGLRenderWindow?t._openGLRenderWindow.getTextureUnitForTexture(e):-1,e.activate=()=>{t._openGLRenderWindow.activateTexture(e),e.bind()},e.deactivate=()=>{t._openGLRenderWindow&&t._openGLRenderWindow.deactivateTexture(e)},e.releaseGraphicsResources=n=>{n&&t.handle&&(n.activateTexture(e),n.deactivateTexture(e),t.context.deleteTexture(t.handle),t.handle=0,t.numberOfDimensions=0,t.target=0,t.internalFormat=0,t.format=0,t.openGLDataType=0,t.components=0,t.width=0,t.height=0,t.depth=0,t.allocatedGPUMemoryInBytes=0),t.shaderProgram&&(t.shaderProgram.releaseGraphicsResources(n),t.shaderProgram=null)},e.bind=()=>{t.context.bindTexture(t.target,t.handle),t.autoParameters&&e.getMTime()>t.sendParametersTime.getMTime()&&e.sendParameters()},e.isBound=()=>{let e=!1;if(t.context&&t.handle){let n=0;t.target===t.context.TEXTURE_2D?n=t.context.TEXTURE_BINDING_2D:Pd("impossible case"),e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=()=>{t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t._openGLRenderWindow.getWebgl2()&&(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=(n,r)=>(t._forceInternalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||Ad(`Unable to find suitable internal format for T=${n} NC= ${r}`),[t.context.R32F,t.context.RG32F,t.context.RGB32F,t.context.RGBA32F].includes(t.internalFormat)&&!t.context.getExtension("OES_texture_float_linear")&&Pd("Failed to load OES_texture_float_linear. Texture filtering is not available for *32F internal formats."),t.internalFormat),e.getDefaultInternalFormat=(n,r)=>{let o=0;return o=t._openGLRenderWindow.getDefaultTextureInternalFormat(n,r,t.oglNorm16Ext,e.useHalfFloat()),o||(o||(Ad("Unsupported internal texture type!"),Ad(`Unable to find suitable internal format for T=${n} NC= ${r}`)),o)},e.useHalfFloat=()=>t.enableUseHalfFloat&&t.canUseHalfFloat,e.setInternalFormat=n=>{t._forceInternalFormat=!0,n!==t.internalFormat&&(t.internalFormat=n,e.modified())},e.getFormat=(n,r)=>(t.format=e.getDefaultFormat(n,r),t.format),e.getDefaultFormat=(e,n)=>{if(t._openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}},e.resetFormatAndType=()=>{t.format=0,t.internalFormat=0,t._forceInternalFormat=!1,t.openGLDataType=0},e.getDefaultDataType=n=>{const r=e.useHalfFloat();if(t._openGLRenderWindow.getWebgl2())switch(n){case Cd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case t.oglNorm16Ext&&!r&&Cd.SHORT:return t.context.SHORT;case t.oglNorm16Ext&&!r&&Cd.UNSIGNED_SHORT:return t.context.UNSIGNED_SHORT;case r&&Cd.SHORT:case r&&Cd.UNSIGNED_SHORT:return t.context.HALF_FLOAT;case Cd.FLOAT:case Cd.VOID:default:return t.context.FLOAT}switch(n){case Cd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case Cd.FLOAT:case Cd.VOID:default:if(t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear"))return t.context.FLOAT;{const e=t.context.getExtension("OES_texture_half_float");if(e&&t.context.getExtension("OES_texture_half_float_linear"))return e.HALF_FLOAT_OES}return t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=function(n){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.openGLDataType&&!r||(t.openGLDataType=e.getDefaultDataType(n)),t.openGLDataType},e.getShiftAndScale=()=>{let e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:n=127.5,e=n-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:n=32767.5,e=n-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:n=2147483647.5,e=n-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=e=>{switch(e){case Sd.NEAREST:return t.context.NEAREST;case Sd.LINEAR:return t.context.LINEAR;case Sd.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Sd.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Sd.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Sd.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=e=>{switch(e){case xd.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case xd.REPEAT:return t.context.REPEAT;case xd.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.updateArrayDataTypeForGL=function(e,n){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o=[];let a=t.width*t.height*t.components;if(r&&(a*=t.depth),e!==Cd.FLOAT&&t.openGLDataType===t.context.FLOAT)for(let e=0;ea?n[e].subarray(0,a):n[e];o.push(new Float32Array(t))}else o.push(null);if(e!==Cd.UNSIGNED_CHAR&&t.openGLDataType===t.context.UNSIGNED_BYTE)for(let e=0;ea?n[e].subarray(0,a):n[e];o.push(new Uint8Array(t))}else o.push(null);let i=!1;if(t._openGLRenderWindow.getWebgl2())i=t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension("OES_texture_half_float");i=e&&t.openGLDataType===e.HALF_FLOAT_OES}if(i)for(let e=0;e5&&void 0!==arguments[5]&&arguments[5];if(e.getOpenGLDataType(s,!0),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return wd("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=i,t.width=o,t.height=a,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const u=[l],d=e.updateArrayDataTypeForGL(s,u),p=n(d);return t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,c),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),r(s)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=p[0]&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,p[0])):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,p[0]),t.generateMipmap&&t.context.generateMipmap(t.target),c&&t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,!1),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*i*t._openGLRenderWindow.getDefaultTextureByteSize(s,t.oglNorm16Ext,e.useHalfFloat()),e.deactivate(),!0},e.createCubeFromRaw=(o,a,i,s,l)=>{if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return wd("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=i,t.width=o,t.height=a,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),t.maxLevel=l.length/6-1,e.createTexture(),e.bind();const c=n(e.updateArrayDataTypeForGL(s,l)),u=[];let d=t.width,p=t.height;for(let e=0;e=1&&a>=1;){let i=null;n<=t.maxLevel&&(i=u[6*n+e]),r(s)?null!=i&&t.context.texSubImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,0,0,o,a,t.format,t.openGLDataType,i):t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,t.internalFormat,o,a,0,t.format,t.openGLDataType,i),n++,o/=2,a/=2}}return t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*i*t._openGLRenderWindow.getDefaultTextureByteSize(s,t.oglNorm16Ext,e.useHalfFloat()),e.deactivate(),!0},e.createDepthFromRaw=(n,o,a,i)=>(e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t._openGLRenderWindow.getWebgl2()?a===Cd.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),r(a)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=i&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,i)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,i),t.generateMipmap&&t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(a,t.oglNorm16Ext,e.useHalfFloat()),e.deactivate(),!0):(wd("Failed to determine texture parameters."),!1)),e.create2DFromImage=n=>{if(e.getOpenGLDataType(Cd.UNSIGNED_CHAR),e.getInternalFormat(Cd.UNSIGNED_CHAR,4),e.getFormat(Cd.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return wd("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1);const o=!(t._openGLRenderWindow.getWebgl2()||Ro(n.width)&&Ro(n.height)),a=document.createElement("canvas");a.width=o?Mo(n.width):n.width,a.height=o?Mo(n.height):n.height,t.width=a.width,t.height=a.height;const i=a.getContext("2d");i.translate(0,a.height),i.scale(1,-1),i.drawImage(n,0,0,n.width,n.height,0,0,a.width,a.height);const s=a;return r(Cd.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=s&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,s)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,s),t.generateMipmap&&t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(Cd.UNSIGNED_CHAR,t.oglNorm16Ext,e.useHalfFloat()),e.deactivate(),!0},e.create2DFilterableFromRaw=function(t,n,r,o,a){let i=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return e.create2DFilterableFromDataArray(t,n,ws.newInstance({numberOfComponents:r,dataType:o,values:a}),i)},e.create2DFilterableFromDataArray=function(t,n,r){let a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const{numComps:i,dataType:s,data:l}=o(r,a);e.create2DFromRaw(t,n,i,s,l)},e.updateVolumeInfoForGL=(n,r)=>{let o=!1;const a=e.useHalfFloat();t.volumeInfo?.scale&&t.volumeInfo?.offset||(t.volumeInfo={scale:new Array(r),offset:new Array(r)});for(let e=0;e{let u=l,d=c;if(!e.updateVolumeInfoForGL(u,s)&&d){const e=o*a*i,n=structuredClone(t.volumeInfo),r=new Float32Array(e*s);t.volumeInfo.offset=n.offset,t.volumeInfo.scale=n.scale;let l=0;const c=n.scale.map((e=>1/e));for(let t=0;t6&&void 0!==arguments[6]&&arguments[6];return e.create3DFilterableFromDataArray(t,n,r,ws.newInstance({numberOfComponents:o,dataType:a,values:i}),s)},e.create3DFilterableFromDataArray=function(n,a,i,s){let l=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const{numComps:c,dataType:u,data:d,scaleOffsets:p}=o(s,l),f=[],g=[];for(let e=0;e{e[t]=n},b=Cd.UNSIGNED_CHAR;if(u===Cd.UNSIGNED_CHAR)for(let e=0;e{e[t]=(n-r)/o}):(b=Cd.UNSIGNED_CHAR,v=(e,t,n,r,o)=>{e[t]=255*(n-r)/o});if(e.getOpenGLDataType(b),e.getInternalFormat(b,c),e.getFormat(b,c),!t.internalFormat||!t.format||!t.openGLDataType)return wd("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=c,t.depth=1,t.numberOfDimensions=2;let y=t.context.getParameter(t.context.MAX_TEXTURE_SIZE);y>4096&&(b===Cd.FLOAT||c>=3)&&(y=4096);let T=1,x=1;m>y*y&&(T=Math.ceil(Math.sqrt(m/(y*y))),x=T);let S=Math.sqrt(m)/T;S=Mo(S);const C=Math.floor(S*T/n),A=Math.ceil(i/C),w=Mo(a*A/x);let P;t.width=S,t.height=w,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=C,t.volumeInfo.yreps=A,t.volumeInfo.xstride=T,t.volumeInfo.ystride=x,t.volumeInfo.offset=h.offset,t.volumeInfo.scale=h.scale;const I=S*w*c;P=b===Cd.FLOAT?new Float32Array(I):new Uint8Array(I);let O=0;const E=Math.floor(n/T),M=Math.floor(a/x);for(let e=0;e{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))},e.getMaximumTextureSize=e=>e&&e.isCurrent()?e.getIntegerv(e.MAX_TEXTURE_SIZE):-1,e.enableUseHalfFloat=e=>{t.enableUseHalfFloat=e}}const Ed={_openGLRenderWindow:null,_forceInternalFormat:!1,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:xd.CLAMP_TO_EDGE,wrapT:xd.CLAMP_TO_EDGE,wrapR:xd.CLAMP_TO_EDGE,minificationFilter:Sd.NEAREST,magnificationFilter:Sd.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0,enableUseHalfFloat:!0,canUseHalfFloat:!1};function Md(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ed,n),Xt.extend(e,t,n),t.sendParametersTime={},ht(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},ht(t.textureBuildTime,{mtime:0}),xt(e,t,["format","openGLDataType"]),St(e,t,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap","oglNorm16Ext"]),bt(e,t,["width","height","volumeInfo","components","handle","target","allocatedGPUMemoryInBytes"]),Pt(0,t,["openGLRenderWindow"]),Od(e,t)}const Rd=Mt(Md,"vtkOpenGLTexture");var Dd={newInstance:Rd,extend:Md,...vd};tn("vtkTexture",Rd);var Bd=function(e,t){e.replaceShaderCoincidentOffset=(n,r,o)=>{const a=e.getCoincidentParameters(r,o);if(a&&(0!==a.factor||0!==a.offset)){let e=n.Fragment;e=id.substitute(e,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,t.context.getExtension("EXT_frag_depth")&&(0!==a.factor?(e=id.substitute(e,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,e=id.substitute(e,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):e=id.substitute(e,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),t._openGLRenderWindow.getWebgl2()&&(0!==a.factor?(e=id.substitute(e,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,e=id.substitute(e,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):e=id.substitute(e,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),n.Fragment=e}}},Ld=function(e,t){e.applyShaderReplacements=(e,t,n)=>{let r=null;if(t&&(r=t.ShaderReplacements),r)for(let t=0;t{e.getReplacedShaderTemplate(n,r,o),t.lastRenderPassShaderReplacement=t.currentRenderPass?t.currentRenderPass.getShaderReplacement():null,t.lastRenderPassShaderReplacement&&t.lastRenderPassShaderReplacement(n);const a=t.renderable.getViewSpecificProperties().OpenGL;e.applyShaderReplacements(n,a,!0),e.replaceShaderValues(n,r,o),e.applyShaderReplacements(n,a)},e.getReplacedShaderTemplate=(n,r,o)=>{const a=t.renderable.getViewSpecificProperties().OpenGL;e.getShaderTemplate(n,r,o);let i=n.Vertex;if(a){const e=a.VertexShaderCode;void 0!==e&&""!==e&&(i=e)}n.Vertex=i;let s=n.Fragment;if(a){const e=a.FragmentShaderCode;void 0!==e&&""!==e&&(s=e)}n.Fragment=s;let l=n.Geometry;if(a){const e=a.GeometryShaderCode;void 0!==e&&(l=e)}n.Geometry=l}};const{FieldAssociations:Vd}=Ys,{primTypes:_d}=md,{Representation:Nd,Shading:Fd}=os,{ScalarMode:kd}=Zl,{Filter:Ud,Wrap:Gd}=Dd,{vtkErrorMacro:zd}=Ht,Wd={type:"StartEvent"},Hd={type:"EndEvent"},{CoordinateSystem:jd}=Hi;function $d(e,t){function n(e,t,n){return t.identity(n),e.reduce(((e,n,r)=>0===r?n?t.copy(e,n):t.identity(e):n?t.multiply(e,e,n):e),n)}t.classHierarchy.push("vtkOpenGLPolyDataMapper"),e.buildPass=n=>{n&&(t.currentRenderPass=null,t.openGLActor=e.getFirstAncestorOfType("vtkOpenGLActor"),t._openGLRenderer=t.openGLActor.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera()))},e.translucentPass=(n,r)=>{n&&(t.currentRenderPass=r,e.render())},e.zBufferPass=n=>{n&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=>e.zBufferPass(t),e.opaquePass=t=>{t&&e.render()},e.render=()=>{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=_d.Start;e<_d.End;e++)t.primitives[e].setOpenGLRenderWindow(t._openGLRenderWindow)}const r=t.openGLActor.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,r)},e.getShaderTemplate=(e,t,n)=>{e.Vertex="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyDataVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\nattribute vec4 vertexMC;\n\n// frag position in VC\n//VTK::PositionVC::Dec\n\n// optional normal declaration\n//VTK::Normal::Dec\n\n// extra lighting parameters\n//VTK::Light::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// material property values\n//VTK::Color::Dec\n\n// clipping plane vars\n//VTK::Clip::Dec\n\n// camera and actor matrix values\n//VTK::Camera::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\n// picking support\n//VTK::Picking::Dec\n\nvoid main()\n{\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Clip::Impl\n\n //VTK::PrimID::Impl\n\n //VTK::PositionVC::Impl\n\n //VTK::Light::Impl\n\n //VTK::Picking::Impl\n}\n",e.Fragment="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyDataFS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n// Template for the polydata mappers fragment shader\n\nuniform int PrimitiveIDOffset;\n\n// VC position of this fragment\n//VTK::PositionVC::Dec\n\n// optional color passed in from the vertex shader, vertexColor\n//VTK::Color::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n// extra lighting parameters\n//VTK::Light::Dec\n\n// define vtkImageLabelOutlineOn\n//VTK::ImageLabelOutlineOn\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// picking support\n//VTK::Picking::Dec\n\n// Depth Peeling Support\n//VTK::DepthPeeling::Dec\n\n// clipping plane vars\n//VTK::Clip::Dec\n\n// label outline \n//VTK::LabelOutline::Dec\n\n// the output of this shader\n//VTK::Output::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\n// handle coincident offsets\n//VTK::Coincident::Dec\n\n//VTK::ZBuffer::Dec\n\n//VTK::LabelOutlineHelperFunction\n\nvoid main()\n{\n // VC position of this fragment. This should not branch/return/discard.\n //VTK::PositionVC::Impl\n\n // Place any calls that require uniform flow (e.g. dFdx) here.\n //VTK::UniformFlow::Impl\n\n // Set gl_FragDepth here (gl_FragCoord.z by default)\n //VTK::Depth::Impl\n\n // Early depth peeling abort:\n //VTK::DepthPeeling::PreColor\n\n // Apple Bug\n //VTK::PrimID::Impl\n\n //VTK::Clip::Impl\n\n //VTK::Color::Impl\n\n // Generate the normal if we are not passed in one\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Light::Impl\n\n if (gl_FragData[0].a <= 0.0)\n {\n discard;\n }\n\n //VTK::DepthPeeling::Impl\n\n //VTK::Picking::Impl\n\n // handle coincident offsets\n //VTK::Coincident::Impl\n\n //VTK::ZBuffer::Impl\n\n //VTK::RenderPassFragmentShader::Impl\n}\n",e.Geometry=""},e.replaceShaderColor=(e,n,r)=>{let o=e.Vertex,a=e.Geometry,i=e.Fragment;const s=t.lastBoundBO.getReferenceByName("lastLightComplexity");let l=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity","uniform vec3 ambientColorUniform;","uniform vec3 diffuseColorUniform;"];s&&(l=l.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));let c=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];s&&(c=c.concat([" vec3 specularColor;"," float specularPower;"])),c=c.concat([" ambientColor = ambientColorUniform;"," diffuseColor = diffuseColorUniform;"," opacity = opacityUniform;"]),s&&(c=c.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges||(l=l.concat(["varying vec4 vertexColorVSOutput;"]),o=id.substitute(o,"//VTK::Color::Dec",["attribute vec4 scalarColor;","varying vec4 vertexColorVSOutput;"]).result,o=id.substitute(o,"//VTK::Color::Impl",["vertexColorVSOutput = scalarColor;"]).result,a=id.substitute(a,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,a=id.substitute(a,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges?(t.renderable.getAreScalarsMappedFromCells()||t.renderable.getInterpolateScalarsBeforeMapping())&&t.renderable.getColorCoordinates()&&!t.drawingEdges?i=id.substitute(i,"//VTK::Color::Impl",c.concat([" vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);"," diffuseColor = texColor.rgb;"," ambientColor = texColor.rgb;"," opacity = opacity*texColor.a;"])).result:(r.getBackfaceProperty()&&!t.drawingEdges&&(l=l.concat(["uniform float opacityUniformBF; // the fragment opacity","uniform float ambientIntensityBF; // the material ambient","uniform float diffuseIntensityBF; // the material diffuse","uniform vec3 ambientColorUniformBF; // ambient material color","uniform vec3 diffuseColorUniformBF; // diffuse material color"]),s?(l=l.concat(["uniform float specularIntensityBF; // the material specular intensity","uniform vec3 specularColorUniformBF; // intensity weighted color","uniform float specularPowerUniformBF;"]),c=c.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," specularColor = specularIntensityBF * specularColorUniformBF;"," specularPower = specularPowerUniformBF;"," opacity = opacityUniformBF; }"])):c=c.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," opacity = opacityUniformBF; }"])),t.haveCellScalars&&!t.drawingEdges&&(l=l.concat(["uniform samplerBuffer texture1;"])),i=id.substitute(i,"//VTK::Color::Impl",c).result):i=id.substitute(i,"//VTK::Color::Impl",c.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])).result,i=id.substitute(i,"//VTK::Color::Dec",l).result,e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderLight=(e,n,r)=>{let o=e.Fragment;const a=t.lastBoundBO.getReferenceByName("lastLightComplexity"),i=t.lastBoundBO.getReferenceByName("lastLightCount");let s=[];switch(a){case 0:o=id.substitute(o,"//VTK::Light::Impl",[" gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);"," //VTK::Light::Impl"],!1).result;break;case 1:o=id.substitute(o,"//VTK::Light::Impl",[" float df = max(0.0, normalVCVSOutput.z);"," float sf = pow(df, specularPower);"," vec3 diffuseL = df * diffuseColor;"," vec3 specularL = sf * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"],!1).result;break;case 2:for(let e=0;e= cos(radians(lightConeAngle${e})))`," {",` attenuation = attenuation * pow(coneDot, lightExponent${e});`," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));",` diffuseL += ((df) * lightColor${e});`," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {",` float sf = sign(df)*attenuation*pow(max(1e-5,\n dot(reflect(lightDirectionVC${e},\n normalVCVSOutput),\n normalize(-vertexVC.xyz))),\n specularPower);`,` specularL += ((sf) * lightColor${e});`," }"]);s=s.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),o=id.substitute(o,"//VTK::Light::Impl",s,!1).result;break;default:zd("bad light complexity")}e.Fragment=o},e.replaceShaderNormal=(e,n,r)=>{if(t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){let n=e.Vertex,o=e.Geometry,a=e.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(n=id.substitute(n,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,n=id.substitute(n,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,o=id.substitute(o,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,o=id.substitute(o,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,a=id.substitute(a,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,a=id.substitute(a,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.haveCellNormals?(a=id.substitute(a,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,a=id.substitute(a,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.lastBoundBO.getOpenGLMode(r.getProperty().getRepresentation())===t.context.LINES?(a=id.substitute(a,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,a=id.substitute(a,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," if (abs(fdx.x) > 0.0)"," { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(a=id.substitute(a,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,a=id.substitute(a,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,a=id.substitute(a,"//VTK::Normal::Impl",[" fdx = normalize(fdx);"," fdy = normalize(fdy);"," vec3 normalVCVSOutput = normalize(cross(fdx,fdy));"," if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"," if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"]).result),e.Vertex=n,e.Geometry=o,e.Fragment=a}},e.replaceShaderPositionVC=(e,n,r)=>{t.lastBoundBO.replaceShaderPositionVC(e,n,r);let o=e.Vertex,a=e.Geometry,i=e.Fragment;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(o=id.substitute(o,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,o=id.substitute(o,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,o=id.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,a=id.substitute(a,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,a=id.substitute(a,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,i=id.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=id.substitute(i,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(o=id.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,o=id.substitute(o,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=>{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;if(t.drawingEdges)return;n=id.substitute(n,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;const a=t.openGLActor.getActiveTextures();let i=2,s=2;if(a&&a.length>0&&(i=a[0].getComponents(),a[0].getTarget()===t.context.TEXTURE_CUBE_MAP&&(s=3)),t.renderable.getColorTextureMap()&&(i=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),s=2),2===s){if(n=id.substitute(n,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,r=id.substitute(r,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,r=id.substitute(r,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,o=id.substitute(o,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,a&&a.length>=1)switch(i){case 1:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}}else switch(n=id.substitute(n,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,r=id.substitute(r,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,r=id.substitute(r,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,o=id.substitute(o,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,i){case 1:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderClip=(e,n,r)=>{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes();o=id.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`uniform vec4 clipPlanes[${e}];`,`varying float clipDistancesVSOutput[${e}];`]).result,o=id.substitute(o,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${e}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,a=id.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`varying float clipDistancesVSOutput[${e}];`]).result,a=id.substitute(a,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${e}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}e.Vertex=o,e.Fragment=a},e.getCoincidentParameters=(e,n)=>{let r={factor:0,offset:0};const o=n.getProperty();if(t.renderable.getResolveCoincidentTopology()==wl.PolygonOffset||o.getEdgeVisibility()&&o.getRepresentation()===Nd.SURFACE){const e=t.lastBoundBO.getPrimitiveType();e===_d.Points||o.getRepresentation()===Nd.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():e===_d.Lines||o.getRepresentation()===Nd.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():e!==_d.Tris&&e!==_d.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),e!==_d.TrisEdges&&e!==_d.TriStripsEdges||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters(),r.factor/=2,r.offset/=2)}const a=t._openGLRenderer.getSelector();return a&&a.getFieldAssociation()===Vd.FIELD_ASSOCIATION_POINTS&&(r.offset-=2),r},e.replaceShaderPicking=(e,n,r)=>{let o=e.Fragment,a=e.Vertex;if(o=id.substitute(o,"//VTK::Picking::Dec",["uniform int picking;","//VTK::Picking::Dec"]).result,t._openGLRenderer.getSelector()){switch(t.lastSelectionState!==Vl.ID_LOW24&&t.lastSelectionState!==Vl.ID_HIGH24||(a=id.substitute(a,"//VTK::Picking::Dec",["flat out int vertexIDVSOutput;\n","uniform int VertexIDOffset;\n"]).result,a=id.substitute(a,"//VTK::Picking::Impl"," vertexIDVSOutput = gl_VertexID + VertexIDOffset;\n").result,o=id.substitute(o,"//VTK::Picking::Dec","flat in int vertexIDVSOutput;\n").result,o=id.substitute(o,"//VTK::Picking::Impl",[" int idx = vertexIDVSOutput;","//VTK::Picking::Impl"]).result),t.lastSelectionState){case Vl.ID_LOW24:o=id.substitute(o,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);").result;break;case Vl.ID_HIGH24:o=id.substitute(o,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float((idx/16777216)%256)/255.0, 0.0, 0.0, 1.0);").result;break;default:o=id.substitute(o,"//VTK::Picking::Dec","uniform vec3 mapperIndex;").result,o=id.substitute(o,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result}e.Fragment=o,e.Vertex=a}},e.replaceShaderValues=(n,r,o)=>{if(e.replaceShaderColor(n,r,o),e.replaceShaderNormal(n,r,o),e.replaceShaderLight(n,r,o),e.replaceShaderTCoord(n,r,o),e.replaceShaderPicking(n,r,o),e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o),e.replaceShaderPositionVC(n,r,o),t.haveSeenDepthRequest){let e=n.Fragment;e=id.substitute(e,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,e=id.substitute(e,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,n.Fragment=e}},e.getNeedToRebuildShaders=(e,n,r)=>{let o=0,a=0;const i=e.getPrimitiveType(),s=t.currentInput;let l=!1;const c=s.getPointData().getNormals(),u=s.getCellData().getNormals(),d=r.getProperty().getInterpolation()===Fd.FLAT,p=r.getProperty().getRepresentation(),f=e.getOpenGLMode(p,i);if(f===t.context.TRIANGLES||u&&!c||!d&&c?l=!0:d||f!==t.context.LINES||(l=!0),r.getProperty().getLighting()&&l){o=0;const e=n.getLightsByReference();for(let t=0;t0&&(a++,0===o&&(o=1)),1===o&&(a>1||1!==n.getIntensity()||!n.lightTypeIsHeadLight())&&(o=2),o<3&&n.getPositional()&&(o=3)}}let g=!1;const m=t.lastBoundBO.getReferenceByName("lastLightComplexity"),h=t.lastBoundBO.getReferenceByName("lastLightCount");return m===o&&h===a||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:a},!0),g=!0),(!t.currentRenderPass&&t.lastRenderPassShaderReplacement||t.currentRenderPass&&t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&&(g=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||e.getShaderSourceTime().getMTime(){const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&&o.forEach((t=>{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(n,r,o)=>{if(n.getProgram().isUniformUsed("PrimitiveIDOffset")&&n.getProgram().setUniformi("PrimitiveIDOffset",t.primitiveIDOffset),n.getProgram().isUniformUsed("VertexIDOffset")&&n.getProgram().setUniformi("VertexIDOffset",t.vertexIDOffset),n.getCABO().getElementCount()&&(t.VBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){const e=t.lastBoundBO.getReferenceByName("lastLightComplexity");n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||zd("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("normalMC")&&n.getCABO().getNormalOffset()&&e>0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"normalMC",n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||zd("Error setting normalMC in shader VAO."):n.getVAO().removeAttributeArray("normalMC"),t.renderable.getCustomShaderAttributes().forEach(((e,r)=>{n.getProgram().isAttributeUsed(`${e}MC`)&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${e}MC`,n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||zd(`Error setting ${e}MC in shader VAO.`))})),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||zd("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),n.getProgram().isAttributeUsed("scalarColor")&&n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"scalarColor",n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||zd("Error setting scalarColor in shader VAO."):n.getVAO().removeAttributeArray("scalarColor"),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes(),r=[],a=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,i=a?c(t.tmpMat4,o.getMatrix()):o.getMatrix();a&&(f(i,i),v(i,i,a),f(i,i));for(let n=0;n{const o=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(o<2)return;const a=e.getProgram();let i=0;const s=n.getLightsByReference();for(let e=0;e0){const e=r.getColorByReference(),o=r.getIntensity();t.lightColor[0]=e[0]*o,t.lightColor[1]=e[1]*o,t.lightColor[2]=e[2]*o;const s=r.getDirection(),l=n.getActiveCamera().getViewMatrix(),c=[...s];r.lightTypeIsSceneLight()&&(c[0]=l[0]*s[0]+l[1]*s[1]+l[2]*s[2],c[1]=l[4]*s[0]+l[5]*s[1]+l[6]*s[2],c[2]=l[8]*s[0]+l[9]*s[1]+l[10]*s[2],Go(c)),t.lightDirection[0]=c[0],t.lightDirection[1]=c[1],t.lightDirection[2]=c[2],Go(t.lightDirection),a.setUniform3fArray(`lightColor${i}`,t.lightColor),a.setUniform3fArray(`lightDirectionVC${i}`,t.lightDirection),i++}}if(o<3)return;const l=n.getActiveCamera().getViewMatrix();f(l,l),i=0;for(let e=0;e0){const e=t.getTransformedPosition(),n=new Float64Array(3);In(n,e,l),a.setUniform3fArray(`lightAttenuation${i}`,t.getAttenuationValuesByReference()),a.setUniformi(`lightPositional${i}`,t.getPositional()),a.setUniformf(`lightExponent${i}`,t.getExponent()),a.setUniformf(`lightConeAngle${i}`,t.getConeAngle()),a.setUniform3fArray(`lightPositionVC${i}`,[n[0],n[1],n[2]]),i++}}},e.setCameraShaderParameters=(e,a,i)=>{const s=e.getProgram(),l=t.openGLCamera.getKeyMatrices(a),c=a.getActiveCamera(),u=t.openGLCamera.getKeyMatrixTime().getMTime(),d=s.getLastCameraMTime(),f=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,g=i.getIsIdentity(),m=g?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();if(i.getCoordinateSystem()===jd.DISPLAY){const e=t._openGLRenderer.getTiledSizeAndOrigin();p(t.tmpMat4),t.tmpMat4[0]=2/e.usize,t.tmpMat4[12]=-1,t.tmpMat4[5]=2/e.vsize,t.tmpMat4[13]=-1,v(t.tmpMat4,t.tmpMat4,f),s.setUniformMatrix("MCPCMatrix",t.tmpMat4)}else s.setUniformMatrix("MCPCMatrix",n([l.wcpc,m.mcwc,f],r,t.tmpMat4));s.isUniformUsed("MCVCMatrix")&&s.setUniformMatrix("MCVCMatrix",n([l.wcvc,m.mcwc,f],r,t.tmpMat4)),s.isUniformUsed("normalMatrix")&&s.setUniformMatrix3x3("normalMatrix",n([l.normalMatrix,m.normalMatrix],o,t.tmpMat3)),d!==u&&(s.isUniformUsed("cameraParallel")&&s.setUniformi("cameraParallel",c.getParallelProjection()),s.setLastCameraMTime(u)),g||s.setLastCameraMTime(0)},e.setPropertyShaderParameters=(e,n,r)=>{const o=e.getProgram();let a=r.getProperty(),i=a.getOpacity(),s=t.drawingEdges?a.getEdgeColorByReference():a.getAmbientColorByReference(),l=t.drawingEdges?a.getEdgeColorByReference():a.getDiffuseColorByReference(),c=t.drawingEdges?1:a.getAmbient(),u=t.drawingEdges?0:a.getDiffuse(),d=t.drawingEdges?0:a.getSpecular();const p=a.getSpecularPower();o.setUniformf("opacityUniform",i),o.setUniform3fArray("ambientColorUniform",s),o.setUniform3fArray("diffuseColorUniform",l),o.setUniformf("ambient",c),o.setUniformf("diffuse",u);const f=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(f<1)return;let g=a.getSpecularColorByReference();if(o.setUniform3fArray("specularColorUniform",g),o.setUniformf("specularPowerUniform",p),o.setUniformf("specular",d),o.isUniformUsed("ambientIntensityBF")){if(a=r.getBackfaceProperty(),i=a.getOpacity(),s=a.getAmbientColor(),c=a.getAmbient(),l=a.getDiffuseColor(),u=a.getDiffuse(),g=a.getSpecularColor(),d=a.getSpecular(),o.setUniformf("ambientIntensityBF",c),o.setUniformf("diffuseIntensityBF",u),o.setUniformf("opacityUniformBF",i),o.setUniform3fArray("ambientColorUniformBF",s),o.setUniform3fArray("diffuseColorUniformBF",l),f<1)return;o.setUniformf("specularIntensityBF",d),o.setUniform3fArray("specularColorUniformBF",g),o.setUniformf("specularPowerUniformBF",p)}},e.updateMaximumPointCellIds=(e,n)=>{const r=t._openGLRenderer.getSelector();if(r){if(t.selectionWebGLIdsToVTKIds?.points?.length){const e=t.selectionWebGLIdsToVTKIds.points.length;r.setMaximumPointId(e-1)}if(t.selectionWebGLIdsToVTKIds?.cells?.length){const e=t.selectionWebGLIdsToVTKIds.cells.length;r.setMaximumCellId(e-1)}r.getFieldAssociation()===Vd.FIELD_ASSOCIATION_POINTS&&(t.pointPicking=!0)}},e.renderPieceStart=(n,r)=>{t.primitiveIDOffset=0,t.vertexIDOffset=0;const o=function(e){const t=e.getSelector();return t?t.getCurrentPass():Vl.MIN_KNOWN_PASS-1}(t._openGLRenderer);t.lastSelectionState!==o&&(t.selectionStateChanged.modified(),t.lastSelectionState=o),t._openGLRenderer.getSelector()&&t._openGLRenderer.getSelector().renderProp(r),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&&t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=>{const o=r.getProperty().getRepresentation(),a=r.getProperty().getEdgeVisibility()&&o===Nd.SURFACE,i=t._openGLRenderer.getSelector(),s=i&&i.getFieldAssociation()===Vd.FIELD_ASSOCIATION_POINTS&&(t.lastSelectionState===Vl.ID_LOW24||t.lastSelectionState===Vl.ID_HIGH24);for(let i=_d.Start;i<_d.End;i++)t.primitives[i].setPointPicking(s),t.primitives[i].getCABO().getElementCount()&&(t.drawingEdges=a&&(i===_d.TrisEdges||i===_d.TriStripsEdges),t.drawingEdges&&(t.renderDepth||t.lastSelectionState>=0)||(t.lastBoundBO=t.primitives[i],t.primitiveIDOffset+=t.primitives[i].drawArrays(n,r,o,e),t.vertexIDOffset+=t.primitives[i].getCABO().getElementCount()))},e.renderPieceFinish=(e,n)=>{t.LastBoundBO&&t.LastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&&t.internalColorTexture.deactivate()},e.renderPiece=(n,r)=>{if(e.invokeEvent(Wd),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(Hd),!t.currentInput)return void zd("No input!");if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context,a=r.getProperty().getBackfaceCulling(),i=r.getProperty().getFrontfaceCulling();a||i?i?(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.computeBounds=(n,r)=>{e.getInput()?t.bounds=e.getInput().getBounds():va(t.bounds)},e.updateBufferObjects=(t,n)=>{e.getNeedToRebuildBufferObjects(t,n)&&e.buildBufferObjects(t,n),e.updateMaximumPointCellIds()},e.getNeedToRebuildBufferObjects=(n,r)=>{const o=t.VBOBuildTime.getMTime();return o{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors();t.haveCellScalars=!1;const a=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&&(a!==kd.USE_CELL_DATA&&a!==kd.USE_CELL_FIELD_DATA&&a!==kd.USE_FIELD_DATA&&r.getPointData().getScalars()||a===kd.USE_POINT_FIELD_DATA||!o||(t.haveCellScalars=!0));let i=n.getProperty().getInterpolation()!==Fd.FLAT?r.getPointData().getNormals():null;null===i&&r.getCellData().getNormals()&&(t.haveCellNormals=!0,i=r.getCellData().getNormals());const s=n.getProperty().getRepresentation();let l=r.getPointData().getTCoords();t.openGLActor.getActiveTextures()||(l=null);let c=!1;if(t.renderable.getColorCoordinates()){l=t.renderable.getColorCoordinates(),c=t.renderable.getAreScalarsMappedFromCells(),t.internalColorTexture||(t.internalColorTexture=Dd.newInstance({resizable:!0}));const e=t.internalColorTexture;e.setMinificationFilter(Ud.NEAREST),e.setMagnificationFilter(Ud.NEAREST),e.setWrapS(Gd.CLAMP_TO_EDGE),e.setWrapT(Gd.CLAMP_TO_EDGE),e.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t.renderable.getColorTextureMap(),r=n.getExtent(),o=n.getPointData().getScalars();e.create2DFromRaw(r[1]-r[0]+1,r[3]-r[2]+1,o.getNumberOfComponents(),o.getDataType(),o.getData()),e.activate(),e.sendParameters(),e.deactivate()}const u=`${r.getMTime()}A${s}B${r.getMTime()}C${i?i.getMTime():1}D${o?o.getMTime():1}E${n.getProperty().getEdgeVisibility()}F${l?l.getMTime():1}`;if(t.VBOBuildString!==u){const e={points:r.getPoints(),normals:i,tcoords:l,colors:o,cellOffset:0,vertexOffset:0,useTCoordsPerCell:c,haveCellScalars:t.haveCellScalars,haveCellNormals:t.haveCellNormals,customAttributes:t.renderable.getCustomShaderAttributes().map((e=>r.getPointData().getArrayByName(e)))};t.renderable.getPopulateSelectionSettings()&&(t.selectionWebGLIdsToVTKIds={points:null,cells:null});const a=[{inRep:"verts",cells:r.getVerts()},{inRep:"lines",cells:r.getLines()},{inRep:"polys",cells:r.getPolys()},{inRep:"strips",cells:r.getStrips()},{inRep:"polys",cells:r.getPolys()},{inRep:"strips",cells:r.getStrips()}],d=n.getProperty().getEdgeVisibility()&&s===Nd.SURFACE;for(let n=_d.Start;n<_d.End;n++)n!==_d.TrisEdges&&n!==_d.TriStripsEdges?(e.cellOffset+=t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,s,e,t.selectionWebGLIdsToVTKIds),e.vertexOffset+=t.primitives[n].getCABO().getElementCount()):d?t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,Nd.WIREFRAME,{...e,tcoords:null,colors:null,haveCellScalars:!1,haveCellNormals:!1}):t.primitives[n].releaseGraphicsResources();t.renderable.getPopulateSelectionSettings()&&t.renderable.setSelectionWebGLIdsToVTKIds(t.selectionWebGLIdsToVTKIds),t.VBOBuildString=u}t.VBOBuildTime.modified()},e.getAllocatedGPUMemoryInBytes=()=>{let e=0;return t.primitives.forEach((t=>{e+=t.getAllocatedGPUMemoryInBytes()})),e}}const Kd={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:Vl.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};const qd=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kd,n),Xt.extend(e,t,n),Bd(e,t,n),Ld(e,t,n),t.primitives=[],t.primTypes=_d,t.tmpMat3=ue(new Float64Array(9)),t.tmpMat4=p(new Float64Array(16));for(let e=_d.Start;e<_d.End;e++)t.primitives[e]=md.newInstance(),t.primitives[e].setPrimitiveType(e),t.primitives[e].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);St(e,t,["context"]),t.VBOBuildTime={},ht(t.VBOBuildTime,{mtime:0}),t.selectionStateChanged={},ht(t.selectionStateChanged,{mtime:0}),$d(e,t)}),"vtkOpenGLPolyDataMapper");tn("vtkMapper",qd);const{ColorMode:Xd,ScalarMode:Yd,GetArray:Qd}=ll;function Zd(e,t){t.classHierarchy.push("vtkMapper2D"),e.createDefaultLookupTable=()=>{t.lookupTable=Al.newInstance()},e.getColorModeAsString=()=>Wt.enumToString(Xd,t.colorMode),e.setColorModeToDefault=()=>e.setColorMode(0),e.setColorModeToMapScalars=()=>e.setColorMode(1),e.setColorModeToDirectScalars=()=>e.setColorMode(2),e.getScalarModeAsString=()=>Wt.enumToString(Yd,t.scalarMode),e.setScalarModeToDefault=()=>e.setScalarMode(0),e.setScalarModeToUsePointData=()=>e.setScalarMode(1),e.setScalarModeToUseCellData=()=>e.setScalarMode(2),e.setScalarModeToUsePointFieldData=()=>e.setScalarMode(3),e.setScalarModeToUseCellFieldData=()=>e.setScalarMode(4),e.setScalarModeToUseFieldData=()=>e.setScalarMode(5),e.getAbstractScalars=(e,n,r,o,a)=>{if(!e||!t.scalarVisibility)return{scalars:null,cellFLag:!1};let i=null,s=!1;if(n===Yd.DEFAULT)i=e.getPointData().getScalars(),i||(i=e.getCellData().getScalars(),s=!0);else if(n===Yd.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===Yd.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===Yd.USE_POINT_FIELD_DATA){const t=e.getPointData();i=r===Qd.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===Yd.USE_CELL_FIELD_DATA){const t=e.getCellData();s=!0,i=r===Qd.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===Yd.USE_FIELD_DATA){const t=e.getFieldData();i=r===Qd.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}return{scalars:i,cellFlag:s}},e.getLookupTable=()=>(t.lookupTable||e.createDefaultLookupTable(),t.lookupTable),e.getMTime=()=>{let e=t.mtime;if(null!==t.lookupTable){const n=t.lookupTable.getMTime();e=n>e?n:e}return e},e.mapScalars=(n,r)=>{const o=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!o)return void(t.colorMapColors=null);const a=`${e.getMTime()}${o.getMTime()}${r}`;if(t.colorBuildString===a)return;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]);const i=e.getLookupTable();i&&(i.build(),t.colorMapColors=i.mapScalars(o,t.colorMode,t.fieldDataTupleId)),t.colorBuildString=`${e.getMTime()}${o.getMTime()}${r}`},e.getPrimitiveCount=()=>{const t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getPolys().getNumberOfCells()}}}const Jd={static:!1,lookupTable:null,scalarVisibility:!1,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,transformCoordinate:null,viewSpecificProperties:null,customShaderAttributes:[]};function ep(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jd,n),Os(e,t,n),Wt.get(e,t,["colorMapColors"]),Wt.setGet(e,t,["arrayAccessMode","colorByArrayName","colorMode","lookupTable","renderTime","scalarMode","scalarVisibility","static","transformCoordinate","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),Wt.setGetArray(e,t,["scalarRange"],2),t.viewSpecificProperties||(t.viewSpecificProperties={}),Zd(e,t)}var tp={newInstance:Wt.newInstance(ep,"vtkMapper2D"),extend:ep};const np={BACKGROUND:0,FOREGROUND:1};var rp={DisplayLocation:np};const{primTypes:op}=md,{ScalarMode:ap}=tp,{vtkErrorMacro:ip}=Ht,sp={type:"StartEvent"},lp={type:"EndEvent"};function cp(e,t){t.classHierarchy.push("vtkOpenGLPolyDataMapper2D"),e.buildPass=n=>{n&&(t.openGLActor2D=e.getFirstAncestorOfType("vtkOpenGLActor2D"),t._openGLRenderer=t.openGLActor2D.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera()))},e.overlayPass=t=>{t&&e.render()},e.getShaderTemplate=(e,t,n)=>{e.Vertex="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyData2DVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\n// all variables that represent positions or directions have a suffix\n// indicating the coordinate system they are in. The possible values are\n// MC - Model Coordinates\n// WC - WC world coordinates\n// VC - View Coordinates\n// DC - Display Coordinates\n\nin vec4 vertexWC;\n\n// frag position in VC\n//VTK::PositionVC::Dec\n\n// material property values\n//VTK::Color::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\nuniform mat4 WCVCMatrix; // World to view matrix\n\nvoid main()\n{\n // Apple Bug\n //VTK::PrimID::Impl\n\n gl_Position = WCVCMatrix*vertexWC;\n\n //VTK::TCoord::Impl\n\n //VTK::Color::Impl\n\n //VTK::PositionVC::Impl\n}\n",e.Fragment="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyData2DFS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\nuniform int PrimitiveIDOffset;\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// Scalar coloring\n//VTK::Color::Dec\n\n// Depth Peeling\n//VTK::DepthPeeling::Dec\n\n// picking support\n//VTK::Picking::Dec\n\n// the output of this shader\n//VTK::Output::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\nvoid main()\n{\n // Apple Bug\n //VTK::PrimID::Impl\n\n //VTK::Color::Impl\n //VTK::TCoord::Impl\n\n //VTK::DepthPeeling::Impl\n //VTK::Picking::Impl\n\n if (gl_FragData[0].a <= 0.0)\n {\n discard;\n }\n}\n",e.Geometry=""},e.render=()=>{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=op.Start;e{e.invokeEvent(sp),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(lp),t.currentInput?t.currentInput.getPoints&&t.currentInput.getPoints().getNumberOfValues()&&(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):ip("No input!")},e.renderPieceStart=(n,r)=>{t.primitiveIDOffset=0,t._openGLRenderer.getSelector()&&(t._openGLRenderer.getSelector().getCurrentPass(),t._openGLRenderer.getSelector().renderProp(r)),e.updateBufferObjects(n,r),t.lastBoundBO=null},e.getNeedToRebuildShaders=(e,n,r)=>e.getShaderSourceTime().getMTime(){e.getNeedToRebuildBufferObjects(t,n)&&e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=>{const o=t.VBOBuildTime.getMTime();return!!(o{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,n.getProperty().getOpacity());const o=t.renderable.getColorMapColors();t.haveCellScalars=!1;const a=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&&(a!==ap.USE_CELL_DATA&&a!==ap.USE_CELL_FIELD_DATA&&a!==ap.USE_FIELD_DATA&&r.getPointData().getScalars()||a===ap.USE_POINT_FIELD_DATA||!o||(t.haveCellScalars=!0));const i=n.getProperty().getRepresentation();let s=r.getPointData().getTCoords();t.openGLActor2D.getActiveTextures()||(s=null);const l=t.renderable.getTransformCoordinate(),c=e.getRenderWindow().getViews()[0].getViewportSize(e),u=`${r.getMTime()}A${i}B${r.getMTime()}C${o?o.getMTime():1}D${s?s.getMTime():1}E${l?e.getMTime():1}F${c}`;if(t.VBOBuildString!==u){let n=r.getPoints();if(l){const t=dc.newInstance(),r=n.getNumberOfPoints();t.setNumberOfPoints(r);const o=[];for(let a=0;ar.getPointData().getArrayByName(e)))};a.cellOffset+=t.primitives[op.Points].getCABO().createVBO(r.getVerts(),"verts",i,a),a.cellOffset+=t.primitives[op.Lines].getCABO().createVBO(r.getLines(),"lines",i,a),a.cellOffset+=t.primitives[op.Tris].getCABO().createVBO(r.getPolys(),"polys",i,a),a.cellOffset+=t.primitives[op.TriStrips].getCABO().createVBO(r.getStrips(),"strips",i,a),t.VBOBuildTime.modified(),t.VBOBuildString=u}},e.renderPieceDraw=(n,r)=>{const o=r.getProperty().getRepresentation();t.context.depthMask(!0);for(let a=op.Start;a{t.lastBoundBO&&t.lastBoundBO.getVAO().release()},e.replaceShaderValues=(t,n,r)=>{e.replaceShaderColor(t,n,r),e.replaceShaderTCoord(t,n,r),e.replaceShaderPicking(t,n,r),e.replaceShaderPositionVC(t,n,r)},e.replaceShaderColor=(e,n,r)=>{let o=e.Vertex,a=e.Geometry,i=e.Fragment;t.haveCellScalars&&(i=id.substitute(i,"//VTK::Color::Dec",["uniform samplerBuffer texture1;"]).result,i=id.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = texelFetchBuffer(texture1, gl_PrimitiveID + PrimitiveIDOffset);"]).result),0!==t.lastBoundBO.getCABO().getColorComponents()?(o=id.substitute(o,"//VTK::Color::Dec",["in vec4 diffuseColor;","out vec4 fcolorVSOutput;"]).result,o=id.substitute(o,"//VTK::Color::Impl",["fcolorVSOutput = diffuseColor;"]).result,a=id.substitute(a,"//VTK::Color::Dec",["in vec4 fcolorVSOutput[];\n","out vec4 fcolorGSOutput;"]).result,a=id.substitute(a,"//VTK::Color::Impl",["fcolorGSOutput = fcolorVSOutput[i];"]).result,i=id.substitute(i,"//VTK::Color::Dec",["in vec4 fcolorVSOutput;"]).result,i=id.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = fcolorVSOutput;"]).result):(i=id.substitute(i,"//VTK::Color::Dec",["uniform vec4 diffuseColor;"]).result,i=id.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = diffuseColor;"]).result),e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=>{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;const a=t.lastBoundBO.getCABO().getTCoordComponents();1===a?(n=id.substitute(n,"//VTK::TCoord::Dec",["in float tcoordMC;","out float tcoordVCVSOutput;"]).result,n=id.substitute(n,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,r=id.substitute(r,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput[];\n","out float tcoordVCGSOutput;"]).result,r=id.substitute(r,["//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,o=id.substitute(o,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,o=id.substitute(o,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));"]).result):2===a&&(n=id.substitute(n,"//VTK::TCoord::Dec",["in vec2 tcoordMC;","out vec2 tcoordVCVSOutput;"]).result,n=id.substitute(n,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,r=id.substitute(r,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];\n","out vec2 tcoordVCGSOutput;"]).result,r=id.substitute(r,"//VTK::TCoord::Impl",["tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,o=id.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,o=id.substitute(o,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);"]).result),t.haveCellScalars&&(r=id.substitute(r,"//VTK::PrimID::Impl",["gl_PrimitiveID = gl_PrimitiveIDIn;"]).result),e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderPicking=(e,t,n)=>{let r=e.Fragment;r=id.substitute(r,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,r=id.substitute(r,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,e.Fragment=r},e.replaceShaderPositionVC=(e,n,r)=>{t.lastBoundBO.replaceShaderPositionVC(e,n,r)},e.invokeShaderCallbacks=(e,n,r)=>{const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&&o.forEach((t=>{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(e,n,r)=>{if(e.getProgram().isUniformUsed("PrimitiveIDOffset")&&e.getProgram().setUniformi("PrimitiveIDOffset",t.primitiveIDOffset),e.getProgram().isAttributeUsed("vertexWC")&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"vertexWC",e.getCABO().getVertexOffset(),e.getCABO().getStride(),t.context.FLOAT,3,!1)||ip("Error setting vertexWC in shader VAO.")),e.getCABO().getElementCount()&&(t.VBOBuildTime.getMTime()>e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime())){t.renderable.getCustomShaderAttributes().forEach(((n,r)=>{e.getProgram().isAttributeUsed(`${n}MC`)&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),`${n}MC`,e.getCABO().getCustomData()[r].offset,e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getCustomData()[r].components,!1)||ip(`Error setting ${n}MC in shader VAO.`))})),e.getProgram().isAttributeUsed("tcoordMC")&&e.getCABO().getTCoordOffset()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"tcoordMC",e.getCABO().getTCoordOffset(),e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getTCoordComponents(),!1)||ip("Error setting tcoordMC in shader VAO."):e.getVAO().removeAttributeArray("tcoordMC"),t.internalColorTexture&&e.getProgram().isUniformUsed("texture1")&&e.getProgram().setUniformi("texture1",t.internalColorTexture.getTextureUnit());const o=t.openGLActor2D.getActiveTextures();if(o)for(let t=0;t{const o=t.renderable.getColorMapColors();if(!o||0===o.getNumberOfComponents()){const t=e.getProgram(),n=r.getProperty(),o=n.getOpacity(),a=n.getColor(),i=[a[0],a[1],a[2],o];t.setUniform4f("diffuseColor",i)}},e.setLightingShaderParameters=(e,t,n)=>{},e.setCameraShaderParameters=(e,n,o)=>{const a=e.getProgram(),i=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,s=n.getRenderWindow().getViews()[0].getViewportSize(n),l=n.getViewport(),c=o.getActualPositionCoordinate().getComputedDoubleViewportValue(n),u=[0,0,1,1],d=[0,0,1,1];if(d[0]=l[0]>=u[0]?l[0]:u[0],d[1]=l[1]>=u[1]?l[1]:u[1],d[2]=l[2]<=u[2]?l[2]:u[2],d[3]=l[3]<=u[3]?l[3]:u[3],d[0]>=d[2])return;if(d[1]>=d[3])return;s[0]=Co(s[0]*(d[2]-d[0])/(l[2]-l[0])),s[1]=Co(s[1]*(d[3]-d[1])/(l[3]-l[1]));const g=t._openGLRenderer.getParent().getSize(),m=Co(c[0]-(d[0]-l[0])*g[0]),h=Co(c[1]-(d[1]-l[1])*g[1]),v=-m;let b=-m+s[0];const y=-h;let T=-h+s[1];v===b&&(b=v+1),y===T&&(T=y+1);const x=p(new Float64Array(16));var S,C,A;x[0]=2/(b-v),x[5]=2/(T-y),x[3]=-1*(b+v)/(b-v),x[7]=-1*(T+y)/(T-y),x[10]=0,x[11]=o.getProperty().getDisplayLocation()===np.FOREGROUND?-1:1,x[15]=1,f(x,x),a.setUniformMatrix("WCVCMatrix",(S=[x,i],C=r,A=t.tmpMat4,C.identity(A),S.reduce(((e,t,n)=>0===n?t?C.copy(e,t):C.identity(e):t?C.multiply(e,e,t):e),A)))},e.getAllocatedGPUMemoryInBytes=()=>{let e=0;return t.primitives.forEach((t=>{e+=t.getAllocatedGPUMemoryInBytes()})),e}}const up={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};const dp=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,up,n),Xt.extend(e,t,n),Bd(e,t,n),Ld(e,t,n),t.primitives=[],t.primTypes=op,t.tmpMat4=p(new Float64Array(16));for(let e=op.Start;e{const n=e.getLastSize(),r=(n[0]/700)**.8,o=(n[1]/700)**.8,a=Math.min(r,o),i=e.getAxisTextStyle(),s=e.getTickTextStyle();Object.assign(i,t.axisTextStyle),Object.assign(s,t.tickTextStyle),i.fontSize=Math.max(24*a,12),e.getLastAspectRatio()>1?s.fontSize=Math.max(20*a,10):s.fontSize=Math.max(16*a,10);const l=e.updateTextureAtlas();e.setTopTitle(!1);const c=e.getBoxSizeByReference();if(e.getLastAspectRatio()>1)e.setTickLabelPixelOffset(.3*s.fontSize),l.titleWidth<=l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize?(e.setTopTitle(!0),e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.98-c[0],-.92])):(e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.titleHeight+e.getAxisTitlePixelOffset()+l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.99-c[0],-.92])),c[1]=Math.max(1.2,Math.min(1.84/o,1.84));else{e.setAxisTitlePixelOffset(1.2*s.fontSize),e.setTickLabelPixelOffset(.1*s.fontSize);const t=2*(.8*s.fontSize+l.titleHeight+e.getAxisTitlePixelOffset())/n[1],r=2*l.tickWidth/n[0];c[0]=Math.min(1.9,Math.max(1.4,1.4*r*(e.getTicks().length+3))),c[1]=t,e.setBoxPosition([-.5*c[0],-.97])}e.recomputeBarSegments(l)}}function mp(e,t){return e=>{const t=e.getLastTickBounds(),n=io().domain([t[0],t[1]]),r=n.ticks(5),o=n.tickFormat(5);e.setTicks(r),e.setTickStrings(r.map(o))}}function hp(e,t){t.classHierarchy.push("vtkScalarBarActorHelper"),e.setRenderable=n=>{t.renderable!==n&&(t.renderable=n,t.barActor.setProperty(n.getProperty()),t.barActor.setParentProp(n),t.barActor.setCoordinateSystemToDisplay(),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),t.tmActor.setCoordinateSystemToDisplay(),t.generateTicks=n.generateTicks,t.axisTextStyle={...n.getAxisTextStyle()},t.tickTextStyle={...n.getTickTextStyle()},e.modified())},e.updateAPISpecificData=(n,r,o)=>{t.lastSize[0]===n[0]&&t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0);const a=t.renderable.getScalarsToColors();if(a&&t.renderable.getVisibility()&&(t.barMapper.setLookupTable(a),t.camera=r,t.renderWindow=o,t.forceUpdate||Math.max(a.getMTime(),e.getMTime(),t.renderable.getMTime())>t.lastRebuildTime.getMTime())){const n=a.getMappingRange();if(t.lastTickBounds=[...n],t.renderable.getGenerateTicks()(e),t.renderable.getAutomated())t.renderable.getAutoLayout()(e);else{t.axisTextStyle={...t.renderable.getAxisTextStyle()},t.tickTextStyle={...t.renderable.getTickTextStyle()},t.barPosition=[...t.renderable.getBarPosition()],t.barSize=[...t.renderable.getBarSize()],t.boxPosition=[...t.renderable.getBoxPosition()],t.boxSize=[...t.renderable.getBoxSize()],t.axisTitlePixelOffset=t.renderable.getAxisTitlePixelOffset(),t.tickLabelPixelOffset=t.renderable.getTickLabelPixelOffset();const n=e.updateTextureAtlas();e.recomputeBarSegments(n)}e.updatePolyDataForLabels(),e.updatePolyDataForBarSegments(),t.lastRebuildTime.modified(),t.forceUpdate=!1}},e.updateTextureAtlas=()=>{t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left";const n={},r=new Map;let o=0,a=1;fp(t.tmContext,t.axisTextStyle);let i=t.tmContext.measureText(t.renderable.getAxisLabel()),s={height:i.actualBoundingBoxAscent+2,startingHeight:a,width:i.width+2,textStyle:t.axisTextStyle};r.set(t.renderable.getAxisLabel(),s),a+=s.height,o=s.width,n.titleWidth=s.width,n.titleHeight=s.height,n.tickWidth=0,n.tickHeight=0,fp(t.tmContext,t.tickTextStyle);const l=[...e.getTickStrings(),"NaN","Below","Above"];for(let e=0;e{e.tcoords=[0,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight)/a,0,(a-e.startingHeight)/a]})),t.tmCanvas.width=o,t.tmCanvas.height=a,t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t.tmContext.clearRect(0,0,o,a),r.forEach(((e,n)=>{fp(t.tmContext,e.textStyle),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified(),t._tmAtlas=r,n},e.computeBarSize=e=>{t.vertical=t.boxSize[1]>t.boxSize[0];const n=2*e.tickHeight/t.lastSize[1],r=[1,1];if(t.vertical){const o=2*(e.tickWidth+t.tickLabelPixelOffset)/t.lastSize[0];if(t.topTitle){const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0]-o,t.barSize[1]=t.boxSize[1]-n}else{const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[0];t.barSize[0]=t.boxSize[0]-n-o,t.barSize[1]=t.boxSize[1]}t.barPosition[0]=t.boxPosition[0]+o,t.barPosition[1]=t.boxPosition[1],r[1]=n}else{const n=(2*e.tickWidth-8)/t.lastSize[0],o=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0],t.barPosition[0]=t.boxPosition[0],t.barSize[1]=t.boxSize[1]-o,t.barPosition[1]=t.boxPosition[1],r[0]=n}return r},e.recomputeBarSegments=n=>{const r=e.computeBarSize(n);t.barSegments=[];const o=[0,0],a=t.vertical?1:0,i=t.vertical?.01:.02;function s(e,n){t.barSegments.push({corners:[[...o],[o[0]+r[0],o[1]],[o[0]+r[0],o[1]+r[1]],[o[0],o[1]+r[1]]],scalars:n,title:e}),o[a]+=r[a]+i}t.renderable.getDrawNanAnnotation()&&t.renderable.getScalarsToColors().getNanColor()&&s("NaN",[NaN,NaN,NaN,NaN]),t.renderable.getDrawBelowRangeSwatch()&&t.renderable.getScalarsToColors().getUseBelowRangeColor?.()&&s("Below",[-.1,-.1,-.1,-.1]);const l=t.renderable.getScalarsToColors().getUseAboveRangeColor?.();o[a]+=i;const c=r[a];r[a]=l?1-2*i-r[a]-o[a]:1-i-o[a],s("ticks",t.vertical?[0,0,.995,.995]:[0,.995,.995,0]),t.renderable.getDrawAboveRangeSwatch()&&l&&(r[a]=c,o[a]+=i,s("Above",[1.1,1.1,1.1,1.1]))};const n=new Float64Array(3);e.createPolyDataForOneLabel=(e,r,o,a,i,s)=>{const l=t._tmAtlas.get(e);if(!l)return;let c=s.ptIdx,u=s.cellIdx;n[0]=(.5*r[0]+.5)*t.lastSize[0],n[1]=(.5*r[1]+.5)*t.lastSize[1],n[2]=r[2],n[0]+=i[0],n[1]+=i[1];const d=[],p="vertical"===a?[1,0]:[0,1];"vertical"===a?(d[0]=l.width,d[1]=-l.height,"middle"===o[0]?n[1]-=l.width/2:"right"===o[0]&&(n[1]-=l.width),"middle"===o[1]?n[0]+=l.height/2:"top"===o[1]&&(n[0]+=l.height)):(d[0]=l.width,d[1]=l.height,"middle"===o[0]?n[0]-=l.width/2:"right"===o[0]&&(n[0]-=l.width),"middle"===o[1]?n[1]-=l.height/2:"top"===o[1]&&(n[1]-=l.height)),s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[0],s.tcoords[2*c+1]=l.tcoords[1],c++,n[p[0]]+=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[2],s.tcoords[2*c+1]=l.tcoords[3],c++,n[p[1]]+=d[1],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[4],s.tcoords[2*c+1]=l.tcoords[5],c++,n[p[0]]-=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[6],s.tcoords[2*c+1]=l.tcoords[7],c++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-3,s.polys[4*u+3]=c-2,u++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-2,s.polys[4*u+3]=c-1,s.ptIdx+=4,s.cellIdx+=2};const r=new Float64Array(3);e.updatePolyDataForLabels=()=>{const n=e.getTickStrings().length+t.barSegments.length,o=4*n,a=2*n,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o),c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l},u=t.vertical?0:1,d=t.vertical?1:0;r[2]=-.99;const p=t.vertical?["right","middle"]:["middle","bottom"];let f=[0,1];const g=[0,0];t.vertical?(g[0]=-t.tickLabelPixelOffset,t.topTitle?(r[0]=t.boxPosition[0]+.5*t.boxSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,["middle","bottom"],"horizontal",[0,t.axisTitlePixelOffset],c)):(r[0]=t.barPosition[0]+t.barSize[0],r[1]=t.barPosition[1]+.5*t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,["middle","top"],"vertical",[t.axisTitlePixelOffset,0],c)),f=[-1,0]):(g[1]=t.tickLabelPixelOffset,r[0]=t.barPosition[0]+.5*t.barSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,["middle","bottom"],"horizontal",[0,t.axisTitlePixelOffset],c)),r[u]=t.barPosition[u]+(.5*f[u]+.5)*t.barSize[u],r[d]=t.barPosition[d]+.5*t.barSize[d];let m=null;for(let n=0;n{const e=t.renderable.getScalarsToColors();let n=0;t.renderable.getDrawNanAnnotation()&&e.getNanColor()&&(n+=1),t.renderable.getDrawBelowRangeSwatch()&&e.getUseBelowRangeColor?.()&&(n+=1),t.renderable.getDrawAboveRangeSwatch()&&e.getUseAboveRangeColor?.()&&(n+=1);const o=4*(1+n),a=o;let i=1;e.getVectorMode()===pp.COMPONENT&&(i=e.getVectorComponent()+1);const s=new Float64Array(3*o),l=new Uint16Array(5*a),c=new Float32Array(o*i);let u=0,d=0;for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{renderable:null};Object.assign(t,{},n),Wt.obj(e,t),Wt.setGet(e,t,["axisTitlePixelOffset","tickLabelPixelOffset","renderable","topTitle","ticks","tickStrings"]),Wt.get(e,t,["lastSize","lastAspectRatio","lastTickBounds","axisTextStyle","tickTextStyle","barActor","tmActor"]),Wt.getArray(e,t,["boxPosition","boxSize"]),Wt.setArray(e,t,["boxPosition","boxSize"],2),t.forceUpdate=!1,t.lastRebuildTime={},Wt.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.tmCanvas=document.createElement("canvas"),t.tmContext=t.tmCanvas.getContext("2d"),t._tmAtlas=new Map,t.barMapper=Zl.newInstance(),t.barMapper.setInterpolateScalarsBeforeMapping(!0),t.barMapper.setUseLookupTableScalarRange(!0),t.polyData=uu.newInstance(),t.barMapper.setInputData(t.polyData),t.barActor=cs.newInstance(),t.barActor.setMapper(t.barMapper),t.tmPolyData=uu.newInstance(),t.tmMapper=Zl.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmTexture=mu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),t.tmActor=cs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),t.tmActor.addTexture(t.tmTexture),t.barPosition=[0,0],t.barSize=[0,0],t.boxPosition=[.88,-.92],t.boxSize=[.1,1.1],t.lastTickBounds=[],hp(e,t)}),"vtkScalarBarActorHelper");function bp(e,t){t.classHierarchy.push("vtkScalarBarActor"),e.setTickTextStyle=n=>{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=>{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.resetAutoLayoutToDefault=()=>{e.setAutoLayout(gp(0,t))},e.resetGenerateTicksToDefault=()=>{e.setGenerateTicks(mp())}}function yp(e){return{automated:!0,autoLayout:null,axisLabel:"Scalar Value",barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif"},tickLabelPixelOffset:14,tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif"},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0,...e}}function Tp(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yp(n)),t.autoLayout||(t.autoLayout=gp(0,t)),t.generateTicks||(t.generateTicks=mp()),cs.extend(e,t,n),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),Wt.setGet(e,t,["automated","autoLayout","axisTitlePixelOffset","axisLabel","scalarsToColors","tickLabelPixelOffset","generateTicks","drawNanAnnotation","drawBelowRangeSwatch","drawAboveRangeSwatch"]),Wt.get(e,t,["axisTextStyle","tickTextStyle"]),Wt.getArray(e,t,["barPosition","barSize","boxPosition","boxSize"]),Wt.setArray(e,t,["barPosition","barSize","boxPosition","boxSize"],2),bp(e,t)}var xp={newInstance:Wt.newInstance(Tp,"vtkScalarBarActor"),extend:Tp,newScalarBarActorHelper:vp};function Sp(e,t){t.classHierarchy.push("vtkOpenGLScalarBarActor"),e.buildPass=n=>{n&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=>{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}const Cp={};const Ap=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cp,n),Xt.extend(e,t,n),t.scalarBarActorHelper=xp.newScalarBarActorHelper(),Sp(e,t)}),"vtkOpenGLScalarBarActor");tn("vtkScalarBarActor",Ap);const{vtkErrorMacro:wp}=Ht;function Pp(e,t){t.classHierarchy.push("vtkOpenGLSkybox"),e.buildPass=n=>{if(n){t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera())}},e.queryPass=(e,n)=>{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=(n,r)=>{if(n&&!t._openGLRenderer.getSelector()){e.updateBufferObjects(),t.context.depthMask(!0),t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t._openGLRenderWindow);const n=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi("sbtexture",n);const r=t._openGLRenderer.getRenderable(),o=t.openGLCamera.getKeyMatrices(r),a=new Float64Array(16);if(g(a,o.wcpc),t.tris.getProgram().setUniformMatrix("IMCPCMatrix",a),"box"===t.lastFormat){const e=r.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f("camPos",e[0],e[1],e[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=()=>{if(!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t<4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t>1?1:-1,e[3*t+2]=1;const n=ws.newInstance({numberOfComponents:3,values:e});n.setName("points");const r=new Uint16Array(8);r[0]=3,r[1]=0,r[2]=1,r[3]=3,r[4]=3,r[5]=0,r[6]=3,r[7]=2;const o=ws.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(o,"polys",Yi.SURFACE,{points:n,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&&(t.lastFormat=t.renderable.getFormat(),"box"===t.lastFormat&&t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec3 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = wpos.xyz/wpos.w;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec3 TexCoords;\n uniform samplerCube sbtexture;\n uniform vec3 camPos;\n void main () {\n // skybox looks from inside out\n // which means we have to adjust\n // our tcoords. Otherwise text would\n // be flipped\n vec3 tc = normalize(TexCoords - camPos);\n if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))\n {\n tc = vec3(1.0, 1.0, -1.0) * tc;\n }\n else\n {\n tc = vec3(-1.0, 1.0, 1.0) * tc;\n }\n gl_FragData[0] = textureCube(sbtexture, tc);\n }","")),"background"===t.lastFormat&&t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec2 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec2 TexCoords;\n uniform sampler2D sbtexture;\n void main () {\n gl_FragData[0] = texture2D(sbtexture, TexCoords);\n }","")),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),"vertexMC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||wp("Error setting vertexMC in shader VAO."));const e=t.renderable.getTextures();e.length||wp("vtkSkybox requires a texture map"),t.openGLTexture.getRenderable()!==e[0]&&(t.openGLTexture.releaseGraphicsResources(t._openGLRenderWindow),t.openGLTexture.setRenderable(e[0]))}}const Ip={context:null};const Op=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ip,n),Xt.extend(e,t,n),t.openGLTexture=Dd.newInstance(),t.tris=md.newInstance(),t.keyMatrixTime={},ht(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:ue(new Float64Array(9)),mcwc:p(new Float64Array(16))},St(e,t,["context"]),bt(e,t,["activeTextures"]),Pp(e,t)}));tn("vtkSkybox",Op);const{vtkDebugMacro:Ep}=Ht;function Mp(e,t){t.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),e.opaquePass=(n,r)=>{t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow");const o=t._openGLRenderer.getAspectRatio(),a=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,i=t._openGLRenderer.getTiledSizeAndOrigin();let s=null;if(t.renderable.getUseZValues()){const e=r.getZBufferTexture(),n=Math.floor(e.getWidth()),o=Math.floor(e.getHeight()),a=t._openGLRenderWindow.getContext();e.bind();const i=r.getFramebuffer();i?i.saveCurrentBindingsAndBuffers():Ep("No framebuffer to save/restore");const l=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,l),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e.getHandle(),0),a.checkFramebufferStatus(a.FRAMEBUFFER)===a.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(n*o*4),a.viewport(0,0,n,o),a.readPixels(0,0,n,o,a.RGBA,a.UNSIGNED_BYTE,s)),i&&i.restorePreviousBindingsAndBuffers(),a.deleteFramebuffer(l)}t.renderable.invokeCallback(t.renderable.getInputData(),a,o,i,s)},e.queryPass=(e,n)=>{e&&t.renderable.getUseZValues()&&n.requestDepth()}}const Rp={};const Dp=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rp,n),Xt.extend(e,t,n),Mp(e,t)}),"vtkOpenGLPixelSpaceCallbackMapper");tn("vtkPixelSpaceCallbackMapper",Dp);const Bp=Object.create(null);function Lp(e,t){Bp[e]=t}function Vp(e,t){t.classHierarchy.push("vtkWebGPUViewNodeFactory")}const _p={};function Np(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,_p,n),t.overrides=Bp,Jt.extend(e,t,n),Vp(0,t)}var Fp={newInstance:Wt.newInstance(Np,"vtkWebGPUViewNodeFactory"),extend:Np};function kp(e,t){t.classHierarchy.push("vtkWebGPUCamera"),e.getProjectionMatrix=(e,n,r,o)=>{if(p(e),t.renderable.getParallelProjection()){const a=t.renderable.getParallelScale(),i=a*n,s=a,l=(o[0]-1)*i,c=(o[0]+1)*i,u=(o[1]-1)*s,d=(o[1]+1)*s,p=1/(c-l),f=1/(d-u);e[0]=2*p,e[5]=2*f,e[10]=1/(r[1]-r[0]),e[12]=(c+l)*p,e[13]=(d+u)*f,e[14]=r[1]/(r[1]-r[0])}else{const a=Math.tan(Math.PI*t.renderable.getViewAngle()/360);let i,s;!0===t.renderable.getUseHorizontalViewAngle()?(i=r[0]*a,s=r[0]*a/n):(i=r[0]*a*n,s=r[0]*a);const l=(o[0]-1)*i,c=(o[0]+1)*i,u=(o[1]-1)*s,d=(o[1]+1)*s;e[0]=2*r[0]/(c-l),e[5]=2*r[0]/(d-u),e[12]=(l+c)/(c-l),e[13]=(u+d)/(d-u),e[10]=0,e[14]=r[0],e[11]=-1,e[15]=0}},e.convertToOpenGLDepth=e=>{if(t.renderable.getParallelProjection())return 1-e;const n=t.renderable.getClippingRangeByReference();let r=-n[0]/e;return r=(n[0]+n[1])/(n[1]-n[0])+2*n[0]*n[1]/(r*(n[1]-n[0])),.5*r+.5},e.getKeyMatrices=n=>{const r=n.getRenderable(),o=n.getParent();if(Math.max(o.getMTime(),e.getMTime(),r.getMTime(),t.renderable.getMTime(),n.getStabilizedTime())>t.keyMatrixTime.getMTime()){const r=t.renderable.getViewMatrix();c(t.keyMatrices.normalMatrix,r),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,g(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),f(t.keyMatrices.wcvc,r);const o=n.getStabilizedCenterByReference();b(t.keyMatrices.scvc,t.keyMatrices.wcvc,o);const a=n.getAspectRatio(),i=t.renderable.getClippingRangeByReference();e.getProjectionMatrix(t.keyMatrices.vcpc,a,i,t.renderable.getWindowCenterByReference()),v(t.keyMatrices.scpc,t.keyMatrices.vcpc,t.keyMatrices.scvc),g(t.keyMatrices.pcsc,t.keyMatrices.scpc),t.keyMatrixTime.modified()}return t.keyMatrices}}const Up={keyMatrixTime:null,keyMatrices:null};const Gp=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Up,n),Xt.extend(e,t,n),t.keyMatrixTime={},Wt.obj(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(16),vcpc:new Float64Array(16),pcsc:new Float64Array(16),wcvc:new Float64Array(16),scpc:new Float64Array(16),scvc:new Float64Array(16)},Wt.setGet(e,t,["keyMatrixTime"]),kp(e,t)}));function zp(e,t){t.classHierarchy.push("vtkWebGPUBindGroup"),e.setBindables=n=>{if(t.bindables.length===n.length){let e=!0;for(let r=0;r{const n=[];for(let e=0;e{let r=e.getMTime();for(let e=0;er?n:r}if(r{const n=[],r=e.getBindGroupLayoutCount(t.label);for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wp,n),Wt.obj(e,t),t.bindables=[],t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),Wt.get(e,t,["bindGroupTime","handle","sizeInBytes","usage"]),Wt.setGet(e,t,["label","device","arrayInformation"]),zp(e,t)}var jp={newInstance:Wt.newInstance(Hp),extend:Hp};function $p(e,t){t.classHierarchy.push("vtkWebGPUShaderModule"),e.initialize=(e,n)=>{t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}const Kp={device:null,handle:null};function qp(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kp,n),Wt.obj(e,t),Wt.get(e,t,["lastCameraMTime"]),Wt.setGet(e,t,["device","handle"]),$p(e,t)}var Xp={newInstance:Wt.newInstance(qp,"vtkWebGPUShaderModule"),extend:qp};function Yp(e,t){t.classHierarchy.push("vtkWebGPUShaderCache"),e.getShaderModule=e=>{const n=e.getType(),r=e.getHash(),o=t._shaderModules.keys();for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qp,n),t._shaderModules=new Map,Wt.obj(e,t),Wt.setGet(e,t,["device","window"]),Yp(e,t)}var Jp={newInstance:Wt.newInstance(Zp,"vtkWebGPUShaderCache"),extend:Zp,substitute:function(e,t,n){let r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const o=Array.isArray(n)?n.join("\n"):n;let a=!1;-1!==e.search(t)&&(a=!0);let i="";r&&(i="g");const s=new RegExp(t,i),l=e.replace(s,o);return{replace:a,result:l}}};function ef(e,t){t.classHierarchy.push("vtkWebGPUPipeline"),e.getShaderDescriptions=()=>t.shaderDescriptions,e.initialize=(e,n)=>{t.pipelineDescription=t.renderEncoder.getPipelineSettings(),t.pipelineDescription.primitive.topology=t.topology,t.pipelineDescription.vertex=t.vertexState,t.pipelineDescription.label=n;const r=[];for(let e=0;e{for(let n=0;n{e&&t.layouts.push({layout:e.getBindGroupLayout(t.device),label:e.getLabel()})},e.getBindGroupLayout=e=>t.layouts[e].layout,e.getBindGroupLayoutCount=e=>{for(let n=0;n{t.bindBuffers(e)}}const tf={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function nf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tf,n),ht(e,t),t.layouts=[],t.shaderDescriptions=[],bt(e,t,["handle","pipelineDescription"]),St(e,t,["device","renderEncoder","topology","vertexState"]),ef(e,t)}var rf={newInstance:Mt(nf,"vtkWebGPUPipeline"),extend:nf};function of(e,t){t.classHierarchy.push("vtkWebGPUShaderDescription"),e.hasOutput=e=>t.outputNames.includes(e),e.addOutput=function(e,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;t.outputTypes.push(e),t.outputNames.push(n),t.outputInterpolations.push(r)},e.addBuiltinOutput=(e,n)=>{t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=(e,n)=>{t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=(e,n)=>{const r=[];let o=[];if(n&&r.push(n.getShaderCode()),e||t.builtinInputNames.length){const n=[];if(n.push(`struct ${t.type}Input\n{`),e){const t=e.getOutputNamesByReference(),r=e.getOutputTypesByReference(),o=e.getOutputInterpolationsByReference();for(let e=0;e1&&(n.push("};"),o=n,r[r.length-1]+=",",r.push(`input: ${t.type}Input`))}if(r.length&&(t.code=Jp.substitute(t.code,"//VTK::IOStructs::Input",r).result),t.outputNames.length+t.builtinOutputNames.length){const e=[`struct ${t.type}Output\n{`];for(let n=0;n ${t.type}Output`]).result}t.code=Jp.substitute(t.code,"//VTK::IOStructs::Dec",o).result}}const af={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function sf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,af,n),t.outputNames=[],t.outputTypes=[],t.outputInterpolations=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],Wt.obj(e,t),Wt.setGet(e,t,["type","hash","code"]),Wt.getArray(e,t,["outputTypes","outputNames","outputInterpolations"]),of(e,t)}var lf={newInstance:Wt.newInstance(sf,"vtkWebGPUShaderDescription"),extend:sf};const cf={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"float"},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"float"},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"sint"},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"uint"},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:"sint"},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:"float"},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"float"},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"float"},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"uint"},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"sint"},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:"uint"},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:"sint"},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"unfilterable-float"},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:"uint"},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:"sint"},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:"float"},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"rgba8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"float"},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"uint"},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"sint"},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"bgra8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:"float"},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:"uint"},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:"sint"},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:"unfilterable-float"},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:"uint"},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:"sint"},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:"float"},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:"uint"},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:"sint"},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:"unfilterable-float"},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"depth"},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:"depth"},"depth24plus-stencil8":{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:"mixed"},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"depth"}};var uf=function(e){return!e||e.length<6?0:e in cf==1?cf[e]:(Ze(`unknown format ${e}`),null)},df=function(e){if(!e||e.length<5)return 0;let t=1;"x"===e[e.length-2]&&(t=Number(e[e.length-1]));const n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Ze(`unknown format ${e}`),0):t*(5-r/2)},pf=function(e){if(!e||e.length<5)return 0;let t=1;return"x"===e[e.length-2]&&(t=Number(e[e.length-1])),t},ff=function(e){if(!e||e.length<5)return 0;let t;if("f"===e[0])t="Float";else if("s"===e[0])t="Int";else{if("u"!==e[0])return void Ze(`unknown format ${e}`);t="Uint"}const n=e.split("x")[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+="Array",t;Ze(`unknown format ${e}`)},gf=function(e){let t;if("f"===e[0]||"n"===e[1])t="f32";else if("s"===e[0]&&"i"===e[1])t="i32";else{if("u"!==e[0]||"i"!==e[1])return void Ze(`unknown format ${e}`);t="u32"}let n=1;return"x"===e[e.length-2]&&(n=Number(e[e.length-1])),4===n?`vec4<${t}>`:3===n?`vec3<${t}>`:2===n?`vec2<${t}>`:t},mf=function(e){if(!e)return 0;let t=1;return"vec"===e.substring(0,3)?t=Number(e[3]):"mat"===e.substring(0,3)&&(t=e[3]*e[5]),4*t},hf=function(e){if(e)return e.includes("f32")?"Float32Array":e.includes("i32")?"Int32Array":e.includes("u32")?"Uint32Array":void Ze(`unknown format ${e}`)};function vf(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(let n=0;n2&&void 0!==arguments[2]?arguments[2]:"vertex",o=n;Array.isArray(o)||(o=[o]);for(let n=0;ne.names[0]t.names[0]?1:0))},e.removeBufferIfPresent=e=>{for(let n=0;n{for(let n=0;n{for(let n=0;n{for(let n=0;n{let e="",n=0;for(let r=0;r0&&(e+=",\n"),e=`${e} @location(${n}) ${t.inputs[r].names[o]} : ${i}`,n++}return e},e.getVertexInputInformation=()=>{const e={};if(t.inputs.length){const n=[];let r=0;for(let e=0;e{for(let n=0;n{},e.releaseGraphicsResources=()=>{t.created&&(t.inputs=[],t.bindingDescriptions=[],t.attributeDescriptions=[])}}const yf={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function Tf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yf,n),ht(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],St(e,t,["created","device","handle","indexBuffer"]),bf(e,t)}var xf={newInstance:Mt(Tf,"vtkWebGPUVertexInput"),extend:Tf};const Sf="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@vertex\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n // var vertex: vec4 = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",Cf="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n // var computedColor:vec4 = vec4(1.0,0.5,0.5,1.0);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";function Af(e,t){t.classHierarchy.push("vtkWebGPUSimpleMapper"),e.generateShaderDescriptions=(n,r,o)=>{const a=lf.newInstance({type:"vertex",hash:n,code:t.vertexShaderTemplate}),i=lf.newInstance({type:"fragment",hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(a),s.push(i);const l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp("//VTK::[^:]*::","g"),u=l.match(c).filter(((e,t,n)=>n.indexOf(e)===t)).map((e=>`replaceShader${e.substring(7,e.length-2)}`));for(let e=0;e{const r=t.getShaderDescription("vertex");r.replaceShaderCode(null,n),t.getShaderDescription("fragment").replaceShaderCode(r)},e.replaceShaderRenderEncoder=(e,n,r)=>{t.renderEncoder.replaceShaderCode(n)},t.shaderReplacements.set("replaceShaderRenderEncoder",e.replaceShaderRenderEncoder),e.replaceShaderRenderer=(e,n,r)=>{if(!t.WebGPURenderer)return;const o=t.WebGPURenderer.getBindGroup().getShaderCode(n),a=n.getShaderDescription("vertex");let i=a.getCode();i=Jp.substitute(i,"//VTK::Renderer::Dec",[o]).result,a.setCode(i);const s=n.getShaderDescription("fragment");i=s.getCode(),i=Jp.substitute(i,"//VTK::Renderer::Dec",[o]).result,s.setCode(i)},t.shaderReplacements.set("replaceShaderRenderer",e.replaceShaderRenderer),e.replaceShaderMapper=(e,n,r)=>{const o=t.bindGroup.getShaderCode(n),a=n.getShaderDescription("vertex");let i=a.getCode();i=Jp.substitute(i,"//VTK::Mapper::Dec",[o]).result,a.setCode(i);const s=n.getShaderDescription("fragment");s.addBuiltinInput("bool","@builtin(front_facing) frontFacing"),i=s.getCode(),i=Jp.substitute(i,"//VTK::Mapper::Dec",[o]).result,s.setCode(i)},t.shaderReplacements.set("replaceShaderMapper",e.replaceShaderMapper),e.replaceShaderPosition=(e,t,n)=>{const r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","@builtin(position) Position");let o=r.getCode();o=Jp.substitute(o,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,r.setCode(o)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderTCoord=(e,t,n)=>{t.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.addTextureView=e=>{t.textureViews.includes(e)||t.textureViews.push(e)},e.prepareToDraw=n=>{t.renderEncoder=n,e.updateInput(),e.updateBuffers(),e.updateBindings(),e.updatePipeline()},e.updateInput=()=>{},e.updateBuffers=()=>{},e.updateBindings=()=>{t.bindGroup.setBindables(e.getBindables())},e.computePipelineHash=()=>{},e.registerDrawCallback=n=>{n.registerDrawCallback(t.pipeline,e.draw)},e.prepareAndDraw=n=>{e.prepareToDraw(n),n.setPipeline(t.pipeline),e.draw(n)},e.draw=e=>{const n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),t.WebGPURenderer&&t.WebGPURenderer.bindUBO(e),n.bindVertexInput(e,t.vertexInput);const r=t.vertexInput.getIndexBuffer();r?e.drawIndexed(r.getIndexCount(),t.numberOfInstances,0,0,0):e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.getBindables=()=>{const e=[...t.additionalBindables];t.UBO&&e.push(t.UBO),t.SSBO&&e.push(t.SSBO);for(let n=0;n{e.computePipelineHash(),t.pipeline=t.device.getPipeline(t.pipelineHash),t.pipeline||(t.pipeline=rf.newInstance(),t.pipeline.setDevice(t.device),t.WebGPURenderer&&t.pipeline.addBindGroupLayout(t.WebGPURenderer.getBindGroup()),t.pipeline.addBindGroupLayout(t.bindGroup),e.generateShaderDescriptions(t.pipelineHash,t.pipeline,t.vertexInput),t.pipeline.setTopology(t.topology),t.pipeline.setRenderEncoder(t.renderEncoder),t.pipeline.setVertexState(t.vertexInput.getVertexInputInformation()),t.device.createPipeline(t.pipelineHash,t.pipeline))}}const wf={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:"triangle-list",UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function Pf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wf,n),Xt.extend(e,t,n),t.textureViews=[],t.vertexInput=xf.newInstance(),t.bindGroup=jp.newInstance({label:"mapperBG"}),t.additionalBindables=[],t.fragmentShaderTemplate=t.fragmentShaderTemplate||Cf,t.vertexShaderTemplate=t.vertexShaderTemplate||Sf,t.shaderReplacements=new Map,Wt.get(e,t,["pipeline","vertexInput"]),Wt.setGet(e,t,["additionalBindables","device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),Af(e,t)}var If={newInstance:Wt.newInstance(Pf,"vtkWebGPUSimpleMapper"),extend:Pf};function Of(e,t){t.classHierarchy.push("vtkWebGPUFullScreenQuad"),e.replaceShaderPosition=(e,t,n)=>{const r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","@builtin(position) Position"),r.addOutput("vec4","vertexVC");let o=r.getCode();o=Jp.substitute(o,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);","output.vertexVC = vec4(vertexBC, 1);"]).result,r.setCode(o)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.updateBuffers=()=>{const e=t.device.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(e,["vertexBC"]),t.numberOfVertices=6}}const Ef={};function Mf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ef,n),If.extend(e,t,n),Of(e,t)}var Rf={newInstance:Wt.newInstance(Mf,"vtkWebGPUFullScreenQuad"),extend:Mf},Df={BufferUsage:{Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};const Bf=["getMappedRange","mapAsync","unmap"];function Lf(e,t){t.classHierarchy.push("vtkWebGPUBuffer"),e.create=(e,n)=>{t.handle=t.device.getHandle().createBuffer({size:e,usage:n,label:t.label}),t.sizeInBytes=e,t.usage=n},e.write=e=>{!function(e,t,n,r){const o=r.byteLength,a=e.createBuffer({size:o,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=a.getMappedRange(0,o);new Uint8Array(i).set(new Uint8Array(r)),a.unmap();const s=e.createCommandEncoder();s.copyBufferToBuffer(a,0,t,0,o);const l=s.finish();e.queue.submit([l]),a.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=(e,n)=>{t.handle=t.device.getHandle().createBuffer({size:e.byteLength,usage:n,mappedAtCreation:!0,label:t.label}),t.sizeInBytes=e.byteLength,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(let n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vf,n),Wt.obj(e,t),Wt.get(e,t,["handle","sizeInBytes","usage"]),Wt.setGet(e,t,["strideInBytes","device","arrayInformation","label","sourceTime"]),Lf(e,t)}var Nf={newInstance:Wt.newInstance(_f),extend:_f,...Df};const{Representation:Ff}=os,{PrimitiveTypes:kf}=Df;class Uf{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let t=0;t2)for(let a=0;a2){for(let a=0;a{const n=e.cells,r=e.primitiveType,o=e.representation,a=e.cellOffset,i=n.getData(),s=i.length,l=function(e){switch(e){case kf.Points:return"points";case kf.Lines:return"lines";case kf.Triangles:case kf.TriangleEdges:return"polys";case kf.TriangleStripEdges:case kf.TriangleStrips:return"strips";default:return""}}(r),c=e.numberOfPoints,u={provokedPointIds:new Uint8Array(c),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new Uf};let d=null;d=o===Ff.POINTS||r===kf.Points?qf.anythingToPoints:o===Ff.WIREFRAME||r===kf.Lines?qf[`${l}ToWireframe`]:qf[`${l}ToSurface`],Hf=Wf;let p=a||0;for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yf,n),Nf.extend(e,t,n),Wt.setGet(e,t,["flatIdToPointId","flatIdToCellId","flatSize","indexCount"]),Xf(e,t)}var Zf={newInstance:Wt.newInstance(Qf),extend:Qf,...Df};const{BufferUsage:Jf}=Df,{vtkErrorMacro:eg}=Ht,{VtkDataTypes:tg}=ws;function ng(e,t,n,r,o){const a={},i=e.getFlatSize();if(!i)return a;let s=[0,0,0,0];o.shift&&(o.shift.length?s=o.shift:s.fill(o.shift));let l=[1,1,1,1];o.scale&&(o.scale.length?l=o.scale:l.fill(o.scale));const c=!!Object.prototype.hasOwnProperty.call(o,"packExtra")&&o.packExtra;let u,d=0;const p=rt(r,i*(n+(c?1:0)));let f=e.getFlatIdToPointId();o.cellData&&(f=e.getFlatIdToCellId()),1===n?u=function(e){p[d++]=l[0]*t[e]+s[0]}:2===n?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1]}:3!==n||c?3===n&&c?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=1*l[3]+s[3]}:4===n&&(u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=l[3]*t[e+3]+s[3]}):u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2]};for(let e=0;et.device.hasCachedObject(e),e.getBuffer=e=>e.hash?t.device.getCachedObject(e.hash,n,e):n(e),e.getBufferForPointArray=(t,n)=>{const r=function(e){let t;switch(e.getDataType()){case tg.UNSIGNED_CHAR:t="uint8";break;case tg.FLOAT:t="float32";break;case tg.UNSIGNED_INT:t="uint32";break;case tg.INT:t="sint32";break;case tg.DOUBLE:t="float32";break;case tg.UNSIGNED_SHORT:t="uint16";break;case tg.SHORT:t="sin16";break;default:t="float32"}switch(e.getNumberOfComponents()){case 2:t+="x2";break;case 3:t.includes("32")||eg(`unsupported x3 type for ${t}`),t+="x3";break;case 4:t+="x4"}return t}(t),o={hash:`${t.getMTime()}I${n.getMTime()}${r}`,usage:Jf.PointArray,format:r,dataArray:t,indexBuffer:n};return e.getBuffer(o)},e.getFullScreenQuadBuffer=()=>{if(t.fullScreenQuadBuffer)return t.fullScreenQuadBuffer;t.fullScreenQuadBuffer=Nf.newInstance(),t.fullScreenQuadBuffer.setDevice(t.device);const e=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return t.fullScreenQuadBuffer.createAndWrite(e,GPUBufferUsage.VERTEX),t.fullScreenQuadBuffer.setStrideInBytes(12),t.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:"float32x3"}]),t.fullScreenQuadBuffer}}const ag={device:null,fullScreenQuadBuffer:null};function ig(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ag,n),ht(e,t),St(e,t,["device"]),og(e,t)}var sg={newInstance:Mt(ig),extend:ig,...Df};const{BufferUsage:lg}=sg,{vtkErrorMacro:cg}=Wt;function ug(e,t){t.classHierarchy.push("vtkWebGPUStorageBuffer"),e.addEntry=(e,n)=>{if(t._bufferEntryNames.has(e))return void cg(`entry named ${e} already exists`);t._bufferEntryNames.set(e,t.bufferEntries.length);const r=mf(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:hf(n)}),t.sizeInBytes+=r},e.send=e=>{if(!t._buffer){const n={nativeArray:t.Float32Array,usage:lg.Storage,label:t.label};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=e=>{e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=Wt.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r,o)=>{const a=t._bufferEntryNames.get(n);if(void 0===a)return void cg(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=o},e.setArray=(n,r,o)=>{const a=t._bufferEntryNames.get(n);if(void 0===a)return void cg(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT;for(let e=0;e{const o=t._bufferEntryNames.get(n);if(void 0===o)return void cg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e{const o=t._bufferEntryNames.get(n);if(void 0===o)return void cg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e{const o=t._bufferEntryNames.get(n);if(void 0===o)return void cg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];for(let e=0;et._sendTime.getMTime(),e.getShaderCode=(e,n)=>{const r=[`struct ${t.label}StructEntry\n{`];for(let e=0;e,\n};\n@binding(${e}) @group(${n}) var ${t.label}: ${t.label}Struct;\n`),r.join("\n")},e.getBindGroupEntry=()=>({resource:{buffer:t._buffer.getHandle()}}),e.clearData=()=>{t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}const dg={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function pg(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dg,n),Wt.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},Wt.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},Wt.get(e,t,["bindGroupTime"]),Wt.setGet(e,t,["device","bindGroupLayoutEntry","label","numberOfInstances","sizeInBytes"]),ug(e,t)}var fg={newInstance:Wt.newInstance(pg,"vtkWebGPUStorageBuffer"),extend:pg};const{BufferUsage:gg}=sg,{vtkErrorMacro:mg}=Wt;function hg(e,t){t.classHierarchy.push("vtkWebGPUUniformBuffer"),e.addEntry=(e,n)=>{t._bufferEntryNames.has(e)?mg(`entry named ${e} already exists`):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:mf(n),offset:-1,nativeType:hf(n),packed:!1}))},e.sortBufferEntries=()=>{if(!t.sortDirty)return;let e=0;const n=[];let r=4;for(let e=0;e4&&(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}for(let r=0;r{if(!t.UBO){const n={nativeArray:t.Float32Array,usage:gg.UniformArray,label:t.label};t.UBO=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),t.sendDirty=!1}t.sendDirty&&(e.getHandle().queue.writeBuffer(t.UBO.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes),t.sendDirty=!1),t.sendTime.modified()},e.createView=e=>{e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes)),t[e]=Wt.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r)=>{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void mg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];a.lastValue!==r&&(i[a.offset/i.BYTES_PER_ELEMENT]=r,t.sendDirty=!0),a.lastValue=r},e.setArray=(n,r)=>{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void mg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];let s=!1;for(let e=0;e({resource:{buffer:t.UBO.getHandle()}}),e.getSendTime=()=>t.sendTime.getMTime(),e.getShaderCode=(n,r)=>{e.sortBufferEntries();const o=[`struct ${t.label}Struct\n{`];for(let e=0;e ${t.label}: ${t.label}Struct;`),o.join("\n")}}const vg={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function bg(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vg,n),Wt.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"uniform"}},t.sendTime={},Wt.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,Wt.get(e,t,["binding","bindGroupTime"]),Wt.setGet(e,t,["bindGroupLayoutEntry","device","label","sizeInBytes"]),hg(e,t)}var yg={newInstance:Wt.newInstance(bg,"vtkWebGPUUniformBuffer"),extend:bg};const{vtkDebugMacro:Tg}=Ht,xg="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = mapperUBO.BackgroundColor;\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n",Sg=new Float64Array(16),Cg=new Float64Array(16);function Ag(e,t){t.classHierarchy.push("vtkWebGPURenderer"),e.buildPass=n=>{if(n){if(!t.renderable)return;t.camera=t.renderable.getActiveCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.camera),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes(),t.webgpuCamera=e.getViewNodeFor(t.camera),e.updateStabilizedMatrix()}},e.updateStabilizedMatrix=()=>{const e=t.camera.getClippingRange(),n=t.camera.getPositionByReference(),r=[],o=[];var a,i,s,l;wn(o,t.camera.getDirectionOfProjectionByReference(),.5*(e[0]+e[1])),Cn(r,n,o),Mn(o,r,t.stabilizedCenter),i=(a=o)[0],s=a[1],l=a[2],Math.hypot(i,s,l)/(e[1]-e[0])>t.recenterThreshold&&(t.stabilizedCenter=r,t.stabilizedTime.modified())},e.updateLights=()=>{let e=0;const n=t.renderable.getLightsByReference();for(let t=0;t0&&e++;return e||(Tg("No lights are on, creating one."),t.renderable.createLight()),e},e.updateUBO=()=>{const n=t.UBO.getSendTime();if(t._parent.getMTime()>n||e.getMTime()>n||t.camera.getMTime()>n||t.renderable.getMTime()>n){const n=t.webgpuCamera.getKeyMatrices(e);t.UBO.setArray("WCVCMatrix",n.wcvc),t.UBO.setArray("SCPCMatrix",n.scpc),t.UBO.setArray("PCSCMatrix",n.pcsc),t.UBO.setArray("SCVCMatrix",n.scvc),t.UBO.setArray("VCPCMatrix",n.vcpc),t.UBO.setArray("WCVCNormals",n.normalMatrix),t.UBO.setValue("LightCount",t.renderable.getLights().length),t.UBO.setValue("MaxEnvironmentMipLevel",t.renderable.getEnvironmentTexture()?.getMipLevel()),t.UBO.setValue("BackgroundDiffuseStrength",t.renderable.getEnvironmentTextureDiffuseStrength()),t.UBO.setValue("BackgroundSpecularStrength",t.renderable.getEnvironmentTextureSpecularStrength());const r=e.getYInvertedTiledSizeAndOrigin();t.UBO.setArray("viewportSize",[r.usize,r.vsize]),t.UBO.setValue("cameraParallel",t.camera.getParallelProjection());const o=t._parent.getDevice();t.UBO.sendIfNeeded(o)}},e.updateSSBO=()=>{const n=t.renderable.getLights(),r=t.webgpuCamera.getKeyMatrices(e);let o=`${t.renderable.getMTime()}`;for(let e=0;e=90?0:2:1,s[l+1]=Math.cos(xo(n[t].getConeAngle())),s[l+2]=Math.cos(xo(n[t].getConeAngle()+n[t].getConeFalloff())),s[l+3]=0}t.SSBO.clearData(),t.SSBO.setNumberOfInstances(n.length),t.SSBO.addEntry("LightPos","vec4"),t.SSBO.addEntry("LightDir","vec4"),t.SSBO.addEntry("LightColor","vec4"),t.SSBO.addEntry("LightData","vec4"),t.SSBO.setAllInstancesFromArray("LightPos",e),t.SSBO.setAllInstancesFromArray("LightDir",o),t.SSBO.setAllInstancesFromArray("LightColor",i),t.SSBO.setAllInstancesFromArray("LightData",s);const l=t._parent.getDevice();t.SSBO.send(l)}var a;t.lightTimeString=o},e.scissorAndViewport=t=>{const n=e.getYInvertedTiledSizeAndOrigin();t.getHandle().setViewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize,0,1),t.getHandle().setScissorRect(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)},e.bindUBO=e=>{e.activateBindGroup(t.bindGroup)},e.opaquePass=n=>{n?(t.renderEncoder.begin(t._parent.getCommandEncoder()),e.updateUBO(),e.updateSSBO()):(e.scissorAndViewport(t.renderEncoder),e.clear(),t.renderEncoder.end())},e.clear=()=>{if(t.renderable.getTransparent()||t.suppressClear)return;const n=t._parent.getDevice();if(!t.clearFSQ){t.clearFSQ=Rf.newInstance(),t.clearFSQ.setDevice(n),t.clearFSQ.setPipelineHash("clearfsq"),t.clearFSQ.setFragmentShaderTemplate(xg);const e=yg.newInstance({label:"mapperUBO"});e.addEntry("FSQMatrix","mat4x4"),e.addEntry("BackgroundColor","vec4"),t.clearFSQ.setUBO(e),t.backgroundTex=t.renderable.getEnvironmentTexture()}if("clearfsqwithtexture"!==t.clearFSQ.getPipelineHash()&&t.renderable.getUseEnvironmentTextureAsBackground()&&t.backgroundTex?.getImageLoaded()){t.clearFSQ.setFragmentShaderTemplate("\nfn vecToRectCoord(dir: vec3) -> vec2 {\n var tau: f32 = 6.28318530718;\n var pi: f32 = 3.14159265359;\n var out: vec2 = vec2(0.0);\n\n out.x = atan2(dir.z, dir.x) / tau;\n out.x += 0.5;\n\n var phix: f32 = length(vec2(dir.x, dir.z));\n out.y = atan2(dir.y, phix) / pi + 0.5;\n\n return out;\n}\n\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var tcoord: vec4 = vec4(input.vertexVC.xy, -1, 1);\n var V: vec4 = normalize(mapperUBO.FSQMatrix * tcoord); // vec2((input.tcoordVS.x - 0.5) * 2, -(input.tcoordVS.y - 0.5) * 2);\n // textureSampleLevel gets rid of some ugly artifacts\n var background = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, vecToRectCoord(V.xyz), 0.0);\n var computedColor: vec4 = vec4(background.rgb, 1);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n");const e=yg.newInstance({label:"mapperUBO"});e.addEntry("FSQMatrix","mat4x4"),e.addEntry("BackgroundColor","vec4"),t.clearFSQ.setUBO(e);const r=n.getTextureManager().getTextureForVTKTexture(t.backgroundTex);if(r.getReady()){const e=r.createView("EnvironmentTexture");t.clearFSQ.setTextureViews([e]),t.backgroundTexLoaded=!0;const o=t.backgroundTex.getInterpolate()?"linear":"nearest";e.addSampler(n,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:o,magFilter:o,mipmapFilter:"linear"})}t.clearFSQ.setPipelineHash("clearfsqwithtexture")}else if("clearfsqwithtexture"===t.clearFSQ.getPipelineHash()&&!t.renderable.getUseEnvironmentTextureAsBackground()){t.clearFSQ=Rf.newInstance(),t.clearFSQ.setDevice(n),t.clearFSQ.setPipelineHash("clearfsq"),t.clearFSQ.setFragmentShaderTemplate(xg);const e=yg.newInstance({label:"mapperUBO"});e.addEntry("FSQMatrix","mat4x4"),e.addEntry("BackgroundColor","vec4"),t.clearFSQ.setUBO(e)}const r=t.webgpuCamera.getKeyMatrices(e),o=t.renderable.getBackgroundByReference();t.clearFSQ.getUBO().setArray("BackgroundColor",o),f(Cg,r.normalMatrix),ne(Sg,r.scvc,r.pcsc),ne(Sg,Cg,Sg),t.clearFSQ.getUBO().setArray("FSQMatrix",Sg),t.clearFSQ.getUBO().sendIfNeeded(n),t.clearFSQ.prepareAndDraw(t.renderEncoder)},e.translucentPass=n=>{n?t.renderEncoder.begin(t._parent.getCommandEncoder()):(e.scissorAndViewport(t.renderEncoder),t.renderEncoder.end())},e.volumeDepthRangePass=n=>{n?t.renderEncoder.begin(t._parent.getCommandEncoder()):(e.scissorAndViewport(t.renderEncoder),t.renderEncoder.end())},e.getAspectRatio=()=>{const e=t._parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.convertToOpenGLDepth=e=>t.webgpuCamera.convertToOpenGLDepth(e),e.getYInvertedTiledSizeAndOrigin=()=>{const n=e.getTiledSizeAndOrigin(),r=t._parent.getSizeByReference();return n.lowerLeftV=r[1]-n.vsize-n.lowerLeftV,n},e.getTiledSizeAndOrigin=()=>{const e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=e[0]-n[0],o=e[1]-n[1],a=t._parent.normalizedDisplayToDisplay(r,o),i=Math.round(a[0]),s=Math.round(a[1]),l=e[2]-n[0],c=e[3]-n[1],u=t._parent.normalizedDisplayToDisplay(l,c);let d=Math.round(u[0])-i,p=Math.round(u[1])-s;return d<0&&(d=0),p<0&&(p=0),{usize:d,vsize:p,lowerLeftU:i,lowerLeftV:s}},e.getPropFromID=e=>{for(let n=0;nt.stabilizedTime.getMTime(),e.releaseGraphicsResources=()=>{null!==t.selector&&t.selector.releaseGraphicsResources()}}const wg={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};const Pg=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wg,n),Xt.extend(e,t,n),t.UBO=yg.newInstance({label:"rendererUBO"}),t.UBO.addEntry("WCVCMatrix","mat4x4"),t.UBO.addEntry("SCPCMatrix","mat4x4"),t.UBO.addEntry("PCSCMatrix","mat4x4"),t.UBO.addEntry("SCVCMatrix","mat4x4"),t.UBO.addEntry("VCPCMatrix","mat4x4"),t.UBO.addEntry("WCVCNormals","mat4x4"),t.UBO.addEntry("viewportSize","vec2"),t.UBO.addEntry("LightCount","i32"),t.UBO.addEntry("MaxEnvironmentMipLevel","f32"),t.UBO.addEntry("BackgroundDiffuseStrength","f32"),t.UBO.addEntry("BackgroundSpecularStrength","f32"),t.UBO.addEntry("cameraParallel","u32"),t.SSBO=fg.newInstance({label:"rendererLightSSBO"}),t.lightTimeString="",t.bindGroup=jp.newInstance({label:"rendererBG"}),t.bindGroup.setBindables([t.UBO,t.SSBO]),t.tmpMat4=p(new Float64Array(16)),t.stabilizedTime={},ht(t.stabilizedTime,{mtime:0}),bt(e,t,["bindGroup","stabilizedTime"]),Ct(e,t,["stabilizedCenter"]),St(e,t,["renderEncoder","selector","suppressClear","UBO"]),Ag(e,t)}),"vtkWebGPURenderer");Lp("vtkRenderer",Pg);const{CoordinateSystem:Ig}=Hi;function Og(e,t){t.classHierarchy.push("vtkWebGPUActor"),e.buildPass=n=>{n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=n=>{t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=>{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.queryPass=(e,n)=>{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.getBufferShift=n=>(e.getKeyMatrices(n),t.bufferShift),e.getKeyMatrices=e=>{if(Math.max(t.renderable.getMTime(),e.getStabilizedTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();const n=t.renderable.getMatrix();t.bufferShift[0]=n[3],t.bufferShift[1]=n[7],t.bufferShift[2]=n[11];const r=e.getStabilizedCenterByReference();t.renderable.getCoordinateSystem()===Ig.WORLD&&(t.bufferShift[0]-=r[0],t.bufferShift[1]-=r[1],t.bufferShift[2]-=r[2]),f(t.keyMatrices.bcwc,n),t.renderable.getIsIdentity()?p(t.keyMatrices.normalMatrix):(c(t.keyMatrices.normalMatrix,t.keyMatrices.bcwc),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,g(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),f(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),b(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),t.renderable.getCoordinateSystem()===Ig.WORLD?b(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]):c(t.keyMatrices.bcsc,t.keyMatrices.bcwc),t.keyMatricesTime.modified()}return t.keyMatrices}}const Eg={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};const Mg=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Eg,n),Xt.extend(e,t,n),t.keyMatricesTime={},Wt.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},Wt.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],Og(e,t)}));Lp("vtkActor",Mg);const{CoordinateSystem:Rg}=Hi;function Dg(e,t){t.classHierarchy.push("vtkWebGPUActor2D"),e.buildPass=n=>{n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=n=>{t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=>{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.queryPass=(e,n)=>{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.getBufferShift=n=>(e.getKeyMatrices(n),t.bufferShift),e.getKeyMatrices=e=>{if(Math.max(t.renderable.getMTime(),e.getStabilizedTime())>t.keyMatricesTime.getMTime()){t.bufferShift[0]=0,t.bufferShift[1]=0,t.bufferShift[2]=0;const n=e.getStabilizedCenterByReference();t.renderable.getCoordinateSystem()===Rg.WORLD&&(t.bufferShift[0]-=n[0],t.bufferShift[1]-=n[1],t.bufferShift[2]-=n[2]),p(t.keyMatrices.bcwc),p(t.keyMatrices.normalMatrix),b(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),t.renderable.getCoordinateSystem()===Rg.WORLD?b(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-n[0],-n[1],-n[2]]):c(t.keyMatrices.bcsc,t.keyMatrices.bcwc),t.keyMatricesTime.modified()}return t.keyMatrices}}const Bg={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};const Lg=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bg,n),Xt.extend(e,t,n),t.keyMatricesTime={},Wt.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},Wt.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],Dg(e,t)}));function Vg(e,t){t.classHierarchy.push("vtkWebGPUCubeAxesActor"),e.buildPass=n=>{n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=>{if(e){const e=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,n=t.WebGPURenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t.WebGPURenderWindow.getRenderable())}}}Lp("vtkActor2D",Lg);const _g={};const Ng=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,_g,n),Xt.extend(e,t,n),t.CubeAxesActorHelper=Vu.newCubeAxesActorHelper(),Vg(e,t)}),"vtkWebGPUCubeAxesActor");Lp("vtkCubeAxesActor",Ng);const{DisplayLocation:Fg}=rp;function kg(e,t){t.classHierarchy.push("vtkProperty2D"),e.setDisplayLocationToBackground=()=>e.setDisplayLocation(Fg.BACKGROUND),e.setDisplayLocationToForeground=()=>e.setDisplayLocation(Fg.FOREGROUND),e.setRepresentationToWireframe=()=>e.setRepresentation(Yi.WIREFRAME),e.setRepresentationToSurface=()=>e.setRepresentation(Yi.SURFACE),e.setRepresentationToPoints=()=>e.setRepresentation(Yi.POINTS),e.getRepresentationAsString=()=>Wt.enumToString(Yi,t.representation)}const Ug={color:[1,1,1],opacity:1,pointSize:1,lineWidth:1,representation:Yi.SURFACE,displayLocation:Fg.FOREGROUND};function Gg(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ug,n),Wt.obj(e,t),Wt.setGet(e,t,["opacity","lineWidth","pointSize","displayLocation","representation"]),Wt.setGetArray(e,t,["color"],3),kg(e,t)}var zg={newInstance:Wt.newInstance(Gg,"vtkProperty2D"),extend:Gg,...rp};const{BufferUsage:Wg,PrimitiveTypes:Hg}=sg,{Representation:jg}=os,{ScalarMode:$g}=Zl,{CoordinateSystem:Kg}=Hi,{DisplayLocation:qg}=zg,Xg="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@vertex\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n var vertex: vec4 = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",Yg='\nstruct PBRData {\n diffuse: vec3,\n specular: vec3,\n}\n\n// Dot product with the max already in it\nfn mdot(a: vec3, b: vec3) -> f32 {\n return max(0.0, dot(a, b));\n}\n// Dot product with a max in it that does not allow for negative values\n// Physically based rendering is accurate as long as normals are accurate,\n// however this is pretty often not the case. In order to prevent negative\n// values from ruining light calculations and creating zones of zero light,\n// this remapping is used, which smoothly clamps the dot product between\n// zero and one while still maintaining a good amount of accuracy.\nfn cdot(a: vec3, b: vec3) -> f32 {\n var d: f32 = max(0.0, dot(a, b));\n d = pow((d + 1.0) / 2.0, 2.6);\n return d;\n}\n\n// Lambertian diffuse model\nfn lambertDiffuse(base: vec3, N: vec3, L: vec3) -> vec3 {\n var pi: f32 = 3.14159265359; \n var NdotL: f32 = mdot(N, L);\n NdotL = pow(NdotL, 1.5);\n return (base/pi)*NdotL;\n}\n\n// Yasuhiro Fujii improvement on the Oren-Nayar model\n// https://mimosa-pudica.net/improved-oren-nayar.html\n// p is surface color, o is roughness\nfn fujiiOrenNayar(p: vec3, o: f32, N: vec3, L: vec3, V: vec3) -> vec3 {\n var invpi: f32 = 0.31830988618; // 1/pi\n\n var o2 = o*o;\n var NdotL: f32 = mdot(N, L);\n NdotL = pow(NdotL, 1.5); // Less physically accurate, but hides the "seams" between lights better\n\n var NdotV: f32 = mdot(N, V);\n var LdotV: f32 = mdot(L, V);\n\n var s: f32 = LdotV - NdotL*NdotV;\n var t: f32 = mix(1.0, max(NdotL, NdotV), step(0.0, s)); // Mix with step is the equivalent of an if statement\n var A: vec3 = 0.5*(o2 / (o2 + 0.33)) + 0.17*p*(o2 / (o2 + 0.13));\n A = invpi*(1 - A);\n var B: f32 = 0.45*(o2 / (o2 + 0.09));\n B = invpi*B;\n\n return p*NdotL*(A + B*(s/t));\n}\n\n// Fresnel portion of BRDF (IOR only, simplified)\nfn schlickFresnelIOR(V: vec3, N: vec3, ior: f32, k: f32) -> f32 {\n var NdotV: f32 = mdot(V, N);\n var F0: f32 = (pow((ior - 1.0), 2.0) + k*k) / (pow((ior + 1.0), 2.0) + k*k); // This takes into account the roughness, which the other one does not\n return F0 + (1.0 - F0) * pow((1.0-NdotV), 5.0);\n}\n\n// Fresnel portion of BRDF (Color ior, better)\nfn schlickFresnelRGB(V: vec3, N: vec3, F0: vec3) -> vec3 {\n var NdotV: f32 = mdot(V, N);\n return F0 + (1.0 - F0) * pow((1-NdotV), 5.0);\n}\n\n// Normal portion of BRDF\n// https://learnopengl.com/PBR/Theory\n// Trowbridge-Reitz GGX functions: normal, halfway, roughness^2\nfn trGGX(N: vec3, H: vec3, a: f32) -> f32 {\n var pi: f32 = 3.14159265359; \n\n var a2: f32 = a*a;\n var NdotH = mdot(N, H);\n var NdotH2 = NdotH*NdotH;\n \n var denom: f32 = NdotH2 * (a2 - 1.0) + 1.0;\n\n return a2 / max((pi*denom*denom), 0.000001);\n}\n\n// A VERY bad approximation of anisotropy. Real anisotropic calculations require tangent and bitangent\nfn anisotrophicTrGGX(N: vec3, H: vec3, O: vec3, s: f32, a: f32) -> f32 {\n var Op: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(O) * s, 0.)).xyz;\n\n var ggx1: f32 = trGGX(N + Op*s, H, a);\n var ggx2: f32 = trGGX(N - Op*s, H, a);\n return (0.5 * ggx1 + 0.5 * ggx2);\n}\n\n// Geometry portion of BRDF\nfn schlickGGX(N: vec3, X: vec3, k: f32) -> f32 {\n var NdotX = cdot(N, X);\n return NdotX / max(0.000001, (NdotX*(1.0-k) + k));\n}\n\nfn smithSurfaceRoughness(N: vec3, V: vec3, L: vec3, k: f32) -> f32 {\n var ggx1: f32 = min(1.0, schlickGGX(N, V, k));\n var ggx2: f32 = min(1.0, schlickGGX(N, L, k));\n return ggx1*ggx2;\n}\n\n// BRDF Combination\nfn cookTorrance(D: f32, F: f32, G: f32, N: vec3, V: vec3, L: vec3) -> f32 {\n var num: f32 = D*F*G;\n var denom: f32 = 4*cdot(V, N)*cdot(L, N);\n\n return num / max(denom, 0.000001);\n}\n\n// Different lighting calculations for different light sources\nfn calcDirectionalLight(N: vec3, V: vec3, ior: f32, roughness: f32, metallic: f32, direction: vec3, color: vec3, base: vec3) -> PBRData { \n var L: vec3 = normalize(direction); // Light Vector\n var H: vec3 = normalize(L + V); // Halfway Vector\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2;\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L); // Fresnel term is replaced with 1 because it is added later\n var incoming: vec3 = color;\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5);\n\n var specular: vec3 = brdf*incoming*angle;\n // Oren-Nayar gives a clay-like effect when fully rough which some people may not want, so it might be better to give a separate\n // control property for the diffuse vs specular roughness\n var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V); \n // Stores the specular and diffuse separately to allow for finer post processing\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// TODO: find some way to reduce the number of arguments going in here\nfn calcPointLight(N: vec3, V: vec3, fragPos: vec3, ior: f32, roughness: f32, metallic: f32, position: vec3, color: vec3, base: vec3) -> PBRData {\n var L: vec3 = normalize(position - fragPos); // Light Vector\n var H: vec3 = normalize(L + V); // Halfway Vector\n var dist = distance(position, fragPos);\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L);\n var incoming: vec3 = color * (1.0 / (dist*dist));\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources\n\n var specular: vec3 = brdf*incoming*angle;\n var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V);\n\n // Stores the specular and diffuse separately to allow for finer post processing\n // Could also be done (propably more properly) with a struct\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// For a reason unknown to me, spheres dont seem to behave propperly with head-on spot lights\nfn calcSpotLight(N: vec3, V: vec3, fragPos: vec3, ior: f32, roughness: f32, metallic: f32, position: vec3, direction: vec3, cones: vec2, color: vec3, base: vec3) -> PBRData {\n var L: vec3 = normalize(position - fragPos);\n var H: vec3 = normalize(L + V); // Halfway Vector\n var dist = distance(position, fragPos);\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L);\n \n // Cones.x is the inner phi and cones.y is the outer phi\n var theta: f32 = mdot(normalize(direction), L);\n var epsilon: f32 = cones.x - cones.y;\n var intensity: f32 = (theta - cones.y) / epsilon;\n intensity = clamp(intensity, 0.0, 1.0);\n intensity /= dist*dist;\n\n var incoming: vec3 = color * intensity;\n\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources\n\n var specular: vec3 = brdf*incoming*angle;\n var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V);\n\n // Stores the specular and diffuse separately to allow for finer post processing\n // Could also be done (propably more properly) with a struct\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// Environment mapping stuff\n// Takes in a vector and converts it to an equivalent coordinate in a rectilinear texture. Should be replaced with cubemaps at some point\nfn vecToRectCoord(dir: vec3) -> vec2 {\n var tau: f32 = 6.28318530718;\n var pi: f32 = 3.14159265359;\n var out: vec2 = vec2(0.0);\n\n out.x = atan2(dir.z, dir.x) / tau;\n out.x += 0.5;\n\n var phix: f32 = length(vec2(dir.x, dir.z));\n out.y = atan2(dir.y, phix) / pi + 0.5;\n\n return out;\n}\n\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::TCoord::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n // Temporary ambient, diffuse, and opacity\n var ambientColor: vec4 = mapperUBO.AmbientColor;\n var diffuseColor: vec4 = mapperUBO.DiffuseColor;\n var opacity: f32 = mapperUBO.Opacity;\n\n // This should be declared somewhere else\n var _diffuseMap: vec4 = vec4(1.0);\n var _roughnessMap: vec4 = vec4(1.0);\n var _metallicMap: vec4 = vec4(1.0);\n var _normalMap: vec4 = vec4(0.0, 0.0, 1.0, 0.0); // normal map was setting off the normal vector detection in fragment\n var _ambientOcclusionMap: vec4 = vec4(1.);\n var _emissionMap: vec4 = vec4(0.);\n\n //VTK::Color::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Normal::Impl\n\n var computedColor: vec4 = vec4(diffuseColor.rgb, 1.0);\n\n //VTK::Light::Impl\n\n //VTK::Select::Impl\n\n if (computedColor.a == 0.0) { discard; };\n\n //VTK::Position::Impl\n\n //VTK::RenderEncoder::Impl\n\n return output;\n}\n';function Qg(e){return e.indexOf("edge")>=0}function Zg(e,t){t.classHierarchy.push("vtkWebGPUCellArrayMapper"),e.buildPass=n=>{n&&(t.is2D?(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor2D"),t.forceZValue=!0):(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.forceZValue=!1),t.coordinateSystem=t.WebGPUActor.getRenderable().getCoordinateSystem(),t.useRendererMatrix=t.coordinateSystem!==Kg.DISPLAY,t.WebGPURenderer=t.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.device=t.WebGPURenderWindow.getDevice())},e.translucentPass=n=>{n&&(e.prepareToDraw(t.WebGPURenderer.getRenderEncoder()),t.renderEncoder.registerDrawCallback(t.pipeline,e.draw))},e.opaquePass=n=>{n&&(e.prepareToDraw(t.WebGPURenderer.getRenderEncoder()),t.renderEncoder.registerDrawCallback(t.pipeline,e.draw))},e.updateUBO=()=>{const n=t.WebGPUActor.getRenderable().getProperty(),r=t.UBO.getSendTime();if(e.getMTime()>r||n.getMTime()>r||t.renderable.getMTime()>r){const e=t.WebGPUActor.getKeyMatrices(t.WebGPURenderer);if(t.UBO.setArray("BCWCMatrix",e.bcwc),t.UBO.setArray("BCSCMatrix",e.bcsc),t.UBO.setArray("MCWCNormals",e.normalMatrix),t.is2D){t.UBO.setValue("ZValue",t.WebGPUActor.getRenderable().getProperty().getDisplayLocation()===qg.FOREGROUND?1:0);const e=n.getColorByReference();t.UBO.setValue("AmbientIntensity",1),t.UBO.setArray("DiffuseColor",[e[0],e[1],e[2],1]),t.UBO.setValue("DiffuseIntensity",0),t.UBO.setValue("SpecularIntensity",0)}else{let e=n.getAmbientColorByReference();t.UBO.setValue("AmbientIntensity",n.getAmbient()),t.UBO.setArray("AmbientColor",[e[0],e[1],e[2],1]),t.UBO.setValue("DiffuseIntensity",n.getDiffuse()),e=n.getDiffuseColorByReference(),t.UBO.setArray("DiffuseColor",[e[0],e[1],e[2],1]),t.UBO.setValue("Roughness",n.getRoughness()),t.UBO.setValue("BaseIOR",n.getBaseIOR()),t.UBO.setValue("Metallic",n.getMetallic()),t.UBO.setValue("NormalStrength",n.getNormalStrength()),t.UBO.setValue("Emission",n.getEmission()),t.UBO.setValue("SpecularIntensity",n.getSpecular()),e=n.getSpecularColorByReference(),t.UBO.setArray("SpecularColor",[e[0],e[1],e[2],1])}const r=n.getEdgeColorByReference?.();r&&t.UBO.setArray("EdgeColor",[r[0],r[1],r[2],1]),t.UBO.setValue("LineWidth",n.getLineWidth()),t.UBO.setValue("Opacity",n.getOpacity()),t.UBO.setValue("PropID",t.WebGPUActor.getPropID());const o=t.WebGPURenderWindow.getDevice();t.UBO.sendIfNeeded(o)}},e.haveWideLines=()=>{const e=t.WebGPUActor.getRenderable(),n=e.getProperty().getRepresentation();return!(e.getProperty().getLineWidth()<=1)&&t.primitiveType!==Hg.Verts&&(t.primitiveType!==Hg.Triangles&&t.primitiveType!==Hg.TriangleStrips||n===jg.WIREFRAME)},e.replaceShaderPosition=(n,r,o)=>{const a=r.getShaderDescription("vertex");a.addBuiltinOutput("vec4","@builtin(position) Position"),a.hasOutput("vertexVC")||a.addOutput("vec4","vertexVC");let i=a.getCode();t.useRendererMatrix?(i=Jp.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4 = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"," output.vertexVC = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4(vertexBC.xyz, 1.0);","//VTK::Position::Impl"]).result,t.forceZValue&&(i=Jp.substitute(i,"//VTK::Position::Impl",["pCoord = vec4(pCoord.xyz/pCoord.w, 1.0);","pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)):(i=Jp.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4 = mapperUBO.BCSCMatrix*vertexBC;"," pCoord.x = 2.0* pCoord.x / rendererUBO.viewportSize.x - 1.0;"," pCoord.y = 2.0* pCoord.y / rendererUBO.viewportSize.y - 1.0;"," pCoord.z = 0.5 - 0.5 * pCoord.z;","//VTK::Position::Impl"]).result,t.forceZValue&&(i=Jp.substitute(i,"//VTK::Position::Impl",[" pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)),e.haveWideLines()&&(a.addBuiltinInput("u32","@builtin(instance_index) instanceIndex"),i=Jp.substitute(i,"//VTK::Position::Impl",[" var tmpPos: vec4 = pCoord;"," var numSteps: f32 = ceil(mapperUBO.LineWidth - 1.0);"," var offset: f32 = (mapperUBO.LineWidth - 1.0) * (f32(input.instanceIndex / 2u) - numSteps/2.0) / numSteps;"," var tmpPos2: vec3 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * (f32(input.instanceIndex) % 2.0) * offset / rendererUBO.viewportSize.x;"," tmpPos2.y = tmpPos2.y + 2.0 * (f32(input.instanceIndex + 1u) % 2.0) * offset / rendererUBO.viewportSize.y;"," tmpPos2.z = min(1.0, tmpPos2.z + 0.00001);"," pCoord = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);","//VTK::Position::Impl"]).result),i=Jp.substitute(i,"//VTK::Position::Impl",[" output.Position = pCoord;"]).result,a.setCode(i)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderNormal=(e,n,r)=>{const o=r.getBuffer("normalMC"),a=t.WebGPUActor.getRenderable();if(o){const e=n.getShaderDescription("vertex");e.hasOutput("normalVC")||e.addOutput("vec3","normalVC",o.getArrayInformation()[0].interpolation),e.hasOutput("tangentVC")||e.addOutput("vec3","tangentVC",o.getArrayInformation()[0].interpolation),e.hasOutput("bitangentVC")||e.addOutput("vec3","bitangentVC",o.getArrayInformation()[0].interpolation);let t=e.getCode();t=Jp.substitute(t,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"," var c1: vec3 = cross(output.normalVC, vec3(0, 0, 1));"," var c2: vec3 = cross(output.normalVC, vec3(0, 1, 0));"," var tangent: vec3 = mix(c1, c2, distance(c1, c2));"," output.tangentVC = normalize(tangent);"," output.bitangentVC = normalize(cross(output.normalVC, tangent));"]).result,e.setCode(t);const r=n.getShaderDescription("fragment");t=r.getCode(),t=a.getProperty().getNormalTexture()?Jp.substitute(t,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," var tangent: vec3 = input.tangentVC;"," var bitangent: vec3 = input.bitangentVC;"," var TCVCMatrix: mat3x3 = mat3x3("," tangent.x, bitangent.x, normal.x,"," tangent.y, bitangent.y, normal.y,"," tangent.z, bitangent.z, normal.z,"," );"," var mappedNormal: vec3 = TCVCMatrix * (_normalMap.xyz * 2 - 1);"," normal = mix(normal, mappedNormal, mapperUBO.NormalStrength);"," normal = normalize(normal);"]).result:Jp.substitute(t,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," normal = normalize(normal);"]).result,r.setCode(t)}},t.shaderReplacements.set("replaceShaderNormal",e.replaceShaderNormal),e.replaceShaderLight=(e,n,r)=>{if(e.includes("sel"))return;const o=n.getShaderDescription("vertex");o.hasOutput("vertexVC")||o.addOutput("vec4","vertexVC");const a=t.WebGPURenderer.getRenderable(),i=n.getShaderDescription("fragment");let s=i.getCode();if(!s.includes("var normal:")||!t.useRendererMatrix||Qg(e)||t.is2D||e.includes("sel"))s=Jp.substitute(s,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"," computedColor = vec4(diffuse * _diffuseMap.rgb, mapperUBO.Opacity);"]).result,i.setCode(s);else{const e=[" var pi: f32 = 3.14159265359;"," var fragPos: vec3 = vec3(input.vertexVC.xyz);"," var V: vec3 = mix(normalize(-fragPos), vec3(0, 0, 1), f32(rendererUBO.cameraParallel)); // View Vector"," var baseColor: vec3 = _diffuseMap.rgb * diffuseColor.rgb;"," var roughness: f32 = max(0.000001, mapperUBO.Roughness * _roughnessMap.r);"," var metallic: f32 = mapperUBO.Metallic * _metallicMap.r;"," var alpha: f32 = roughness*roughness;"," var ior: f32 = mapperUBO.BaseIOR;"," var k: f32 = alpha*alpha / 2;"," var diffuse: vec3 = vec3(0.);"," var specular: vec3 = vec3(0.);"," var emission: vec3 = _emissionMap.rgb * mapperUBO.Emission;"," {"," var i: i32 = 0;"," loop {"," if !(i < rendererUBO.LightCount) { break; }"," switch (i32(rendererLightSSBO.values[i].LightData.x)) {"," // Point Light"," case 0 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var calculated: PBRData = calcPointLight(normal, V, fragPos, ior, roughness, metallic, pos, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Directional light"," case 1 {"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var calculated: PBRData = calcDirectionalLight(normal, V, ior, roughness, metallic, dir, color, baseColor); // diffuseColor.rgb needs to be fixed with a more dynamic diffuse color"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Spot Light"," case 2 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var cones: vec2 = vec2(rendererLightSSBO.values[i].LightData.y, rendererLightSSBO.values[i].LightData.z);"," var calculated: PBRData = calcSpotLight(normal, V, fragPos, ior, roughness, metallic, pos, dir, cones, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," default { continue; }"," }"," continuing { i++; }"," }"," }"," var fresnel: f32 = schlickFresnelIOR(V, normal, ior, k); // Fresnel"," fresnel = min(1.0, fresnel);"," // This could be controlled with its own variable (that isnt base color) for better artistic control"," var fresnelMetallic: vec3 = schlickFresnelRGB(V, normal, baseColor); // Fresnel for metal, takes color into account"," var kS: vec3 = mix(vec3(fresnel), fresnelMetallic, metallic);"," kS = min(vec3(1.0), kS);"," var kD: vec3 = (1.0 - kS) * (1.0 - metallic);"," var PBR: vec3 = mapperUBO.DiffuseIntensity*kD*diffuse + kS*specular;"," PBR += emission;"," computedColor = vec4(PBR, mapperUBO.Opacity);"];a.getEnvironmentTexture()?.getImageLoaded()&&e.push(" // To get diffuse IBL, the texture is sampled with normals in worldspace"," var diffuseIBLCoords: vec3 = (transpose(rendererUBO.WCVCNormals) * vec4(normal, 1.)).xyz;"," var diffuseCoords: vec2 = vecToRectCoord(diffuseIBLCoords);"," // To get specular IBL, the texture is sampled as the worldspace reflection between the normal and view vectors"," // Reflections are first calculated in viewspace, then converted to worldspace to sample the environment"," var VreflN: vec3 = normalize(reflect(-V, normal));"," var reflectionIBLCoords = (transpose(rendererUBO.WCVCNormals) * vec4(VreflN, 1.)).xyz;"," var specularCoords: vec2 = vecToRectCoord(reflectionIBLCoords);"," var diffuseIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, diffuseCoords, rendererUBO.MaxEnvironmentMipLevel);"," var level = roughness * rendererUBO.MaxEnvironmentMipLevel;"," var specularIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, specularCoords, level);"," var specularIBLContribution: vec3 = specularIBL.rgb*rendererUBO.BackgroundSpecularStrength;"," computedColor += vec4(specularIBLContribution*kS, 0);"," var diffuseIBLContribution: vec3 = diffuseIBL.rgb*rendererUBO.BackgroundDiffuseStrength;"," diffuseIBLContribution *= baseColor * _ambientOcclusionMap.rgb;"," computedColor += vec4(diffuseIBLContribution*kD, 0);"),s=Jp.substitute(s,"//VTK::Light::Impl",e).result,i.setCode(s)}},t.shaderReplacements.set("replaceShaderLight",e.replaceShaderLight),e.replaceShaderColor=(e,t,n)=>{if(Qg(e)){const e=t.getShaderDescription("fragment");let n=e.getCode();return n=Jp.substitute(n,"//VTK::Color::Impl",["ambientColor = mapperUBO.EdgeColor;","diffuseColor = mapperUBO.EdgeColor;"]).result,void e.setCode(n)}const r=n.getBuffer("colorVI");if(!r)return;const o=t.getShaderDescription("vertex");o.addOutput("vec4","color",r.getArrayInformation()[0].interpolation);let a=o.getCode();a=Jp.substitute(a,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,o.setCode(a);const i=t.getShaderDescription("fragment");a=i.getCode(),a=Jp.substitute(a,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,i.setCode(a)},t.shaderReplacements.set("replaceShaderColor",e.replaceShaderColor),e.replaceShaderTCoord=(e,n,r)=>{if(!r.hasAttribute("tcoord"))return;const o=n.getShaderDescription("vertex"),a=r.getBuffer("tcoord"),i=pf(a.getArrayInformation()[0].format);let s=o.getCode();o.addOutput(`vec${i}`,"tcoordVS"),s=Jp.substitute(s,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,o.setCode(s);const l=n.getShaderDescription("fragment");s=l.getCode();const c=t.WebGPUActor.getRenderable(),u=e=>!!e&&e.getDimensionality()===i,d=[];(c.getProperty().getDiffuseTexture?.()?.getImageLoaded()||c.getTextures()[0]||t.colorTexture)&&(u(c.getProperty().getDiffuseTexture?.())||u(c.getTextures()[0])||u(t.colorTexture))&&d.push("_diffuseMap = textureSample(DiffuseTexture, DiffuseTextureSampler, input.tcoordVS);"),c.getProperty().getRoughnessTexture?.()?.getImageLoaded()&&u(c.getProperty().getRoughnessTexture())&&d.push("_roughnessMap = textureSample(RoughnessTexture, RoughnessTextureSampler, input.tcoordVS);"),c.getProperty().getMetallicTexture?.()?.getImageLoaded()&&u(c.getProperty().getMetallicTexture())&&d.push("_metallicMap = textureSample(MetallicTexture, MetallicTextureSampler, input.tcoordVS);"),c.getProperty().getNormalTexture?.()?.getImageLoaded()&&u(c.getProperty().getNormalTexture())&&d.push("_normalMap = textureSample(NormalTexture, NormalTextureSampler, input.tcoordVS);"),c.getProperty().getAmbientOcclusionTexture?.()?.getImageLoaded()&&u(c.getProperty().getAmbientOcclusionTexture())&&d.push("_ambientOcclusionMap = textureSample(AmbientOcclusionTexture, AmbientOcclusionTextureSampler, input.tcoordVS);"),c.getProperty().getEmissionTexture?.()?.getImageLoaded()&&u(c.getProperty().getEmissionTexture())&&d.push("_emissionMap = textureSample(EmissionTexture, EmissionTextureSampler, input.tcoordVS);"),s=Jp.substitute(s,"//VTK::TCoord::Impl",d).result,l.setCode(s)},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.replaceShaderSelect=(e,t,n)=>{if(e.includes("sel")){const e=t.getShaderDescription("fragment");let n=e.getCode();n=Jp.substitute(n,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,e.setCode(n)}},t.shaderReplacements.set("replaceShaderSelect",e.replaceShaderSelect),e.getUsage=(e,t)=>e===jg.POINTS||t===Hg.Points?Wg.Verts:t===Hg.Lines?Wg.Lines:e===jg.WIREFRAME?t===Hg.Triangles?Wg.LinesFromTriangles:Wg.LinesFromStrips:t===Hg.Triangles?Wg.Triangles:t===Hg.TriangleStrips?Wg.Strips:t===Hg.TriangleEdges?Wg.LinesFromTriangles:Wg.LinesFromStrips,e.getHashFromUsage=e=>`pt${e}`,e.getTopologyFromUsage=e=>{switch(e){case Wg.Triangles:return"triangle-list";case Wg.Verts:return"point-list";case Wg.Lines:default:return"line-list"}},e.buildVertexInput=()=>{const n=t.currentInput,r=t.cellArray,o=t.primitiveType;let a=t.WebGPUActor.getRenderable().getProperty().getRepresentation();const i=t.WebGPURenderWindow.getDevice();let s=!1;o===Hg.TriangleEdges&&(s=!0,a=jg.WIREFRAME);const l=t.vertexInput,c=n.getPoints();let u;if(r){const e={hash:`R${a}P${o}${r.getMTime()}`,usage:Wg.Index,cells:r,numberOfPoints:c.getNumberOfPoints(),primitiveType:o,representation:a};u=i.getBufferManager().getBuffer(e),l.setIndexBuffer(u)}else l.setIndexBuffer(null);if(c){const e=t.WebGPUActor.getBufferShift(t.WebGPURenderer),n={hash:`${c.getMTime()}I${u.getMTime()}${e.join()}float32x4`,usage:Wg.PointArray,format:"float32x4",dataArray:c,indexBuffer:u,shift:e,packExtra:!0},r=i.getBufferManager().getBuffer(n);l.addBuffer(r,["vertexBC"])}else l.removeBufferIfPresent("vertexBC");const d=e.getUsage(a,o);if(t._usesCellNormals=!1,t.is2D||d!==Wg.Triangles&&d!==Wg.Strips)l.removeBufferIfPresent("normalMC");else{const e=n.getPointData().getNormals(),a={format:"snorm8x4",indexBuffer:u,packExtra:!0,shift:0,scale:127};if(e){a.hash=`${e.getMTime()}I${u.getMTime()}snorm8x4`,a.dataArray=e,a.usage=Wg.PointArray;const t=i.getBufferManager().getBuffer(a);l.addBuffer(t,["normalMC"])}else if(o===Hg.Triangles){t._usesCellNormals=!0,a.hash=`PFN${c.getMTime()}I${u.getMTime()}snorm8x4`,a.dataArray=c,a.cells=r,a.usage=Wg.NormalsFromPoints;const e=i.getBufferManager().getBuffer(a);l.addBuffer(e,["normalMC"])}else l.removeBufferIfPresent("normalMC")}let p=!1;if(t.renderable.getScalarVisibility()){const e=t.renderable.getColorMapColors();if(e&&!s){const r=t.renderable.getScalarMode();let o=!1;r!==$g.USE_CELL_DATA&&r!==$g.USE_CELL_FIELD_DATA&&r!==$g.USE_FIELD_DATA&&n.getPointData().getScalars()||r===$g.USE_POINT_FIELD_DATA||!e||(o=!0);const a={usage:Wg.PointArray,format:"unorm8x4",hash:`${o}${e.getMTime()}I${u.getMTime()}unorm8x4`,dataArray:e,indexBuffer:u,cellData:o,cellOffset:0},s=i.getBufferManager().getBuffer(a);l.addBuffer(s,["colorVI"]),p=!0}}p||l.removeBufferIfPresent("colorVI");let f=null;if(f=t.renderable.getInterpolateScalarsBeforeMapping?.()&&t.renderable.getColorCoordinates()?t.renderable.getColorCoordinates():n.getPointData().getTCoords(),f&&!s){const e=i.getBufferManager().getBufferForPointArray(f,l.getIndexBuffer());l.addBuffer(e,["tcoord"])}else l.removeBufferIfPresent("tcoord")},e.updateTextures=()=>{const e=[],n=[],r=t.renderable.getColorTextureMap?.();r&&(t.colorTexture||(t.colorTexture=mu.newInstance({label:"polyDataColor"})),t.colorTexture.setInputData(r),n.push(["Diffuse",t.colorTexture]));const o=t.WebGPUActor.getRenderable(),a=t.WebGPURenderer.getRenderable(),i=[];if(o.getProperty().getDiffuseTexture?.()){const e=["Diffuse",o.getProperty().getDiffuseTexture()];i.push(e)}if(o.getTextures()[0]){const e=["Diffuse",o.getTextures()[0]];i.push(e)}if(t.colorTexture){const e=["Diffuse",t.colorTexture];i.push(e)}if(o.getProperty().getRoughnessTexture?.()){const e=["Roughness",o.getProperty().getRoughnessTexture()];i.push(e)}if(o.getProperty().getMetallicTexture?.()){const e=["Metallic",o.getProperty().getMetallicTexture()];i.push(e)}if(o.getProperty().getNormalTexture?.()){const e=["Normal",o.getProperty().getNormalTexture()];i.push(e)}if(o.getProperty().getAmbientOcclusionTexture?.()){const e=["AmbientOcclusion",o.getProperty().getAmbientOcclusionTexture()];i.push(e)}if(o.getProperty().getEmissionTexture?.()){const e=["Emission",o.getProperty().getEmissionTexture()];i.push(e)}if(a.getEnvironmentTexture?.()){const e=["Environment",a.getEnvironmentTexture()];i.push(e)}for(let e=0;e=0;n--)e[n]||(t.textures.splice(n,1),t.textureViews.splice(n,1))},e.computePipelineHash=()=>{let n=`pd${t.useRendererMatrix?"r":""}${t.forceZValue?"z":""}`;if(t.primitiveType===Hg.TriangleEdges||t.primitiveType===Hg.TriangleStripEdges)n+="edge";else{if(t.vertexInput.hasAttribute("normalMC")&&(n+="n"),t.vertexInput.hasAttribute("colorVI")&&(n+="c"),t.vertexInput.hasAttribute("tcoord")){const e=t.vertexInput.getBuffer("tcoord");n+=`t${pf(e.getArrayInformation()[0].format)}`}t.textures.length&&(n+=`tx${t.textures.length}`)}t._usesCellNormals&&(n+="cn"),t.SSBO&&(n+="ssbo"),n+=e.getHashFromUsage(t.usage),n+=t.renderEncoder.getPipelineHash(),t.pipelineHash=n},e.updateBuffers=()=>{t.primitiveType!==Hg.TriangleEdges&&t.primitiveType!==Hg.TriangleStripEdges&&e.updateTextures();const n=t.WebGPUActor.getRenderable(),r=n.getProperty().getRepresentation();t.usage=e.getUsage(r,t.primitiveType),e.buildVertexInput();const o=t.vertexInput.getBuffer("vertexBC");if(e.setNumberOfVertices(o.getSizeInBytes()/o.getStrideInBytes()),e.setTopology(e.getTopologyFromUsage(t.usage)),e.updateUBO(),e.haveWideLines()){const t=n.getProperty();e.setNumberOfInstances(Math.ceil(2*t.getLineWidth()))}else e.setNumberOfInstances(1)}}const Jg={is2D:!1,cellArray:null,currentInput:null,cellOffset:0,primitiveType:0,colorTexture:null,renderEncoder:null,textures:null};function em(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jg,n),If.extend(e,t,n),t.fragmentShaderTemplate=Yg,t.vertexShaderTemplate=Xg,t._tmpMat3=ue(new Float64Array(9)),t._tmpMat4=p(new Float64Array(16)),t.UBO=yg.newInstance({label:"mapperUBO"}),t.UBO.addEntry("BCWCMatrix","mat4x4"),t.UBO.addEntry("BCSCMatrix","mat4x4"),t.UBO.addEntry("MCWCNormals","mat4x4"),t.UBO.addEntry("AmbientColor","vec4"),t.UBO.addEntry("DiffuseColor","vec4"),t.UBO.addEntry("EdgeColor","vec4"),t.UBO.addEntry("SpecularColor","vec4"),t.UBO.addEntry("AmbientIntensity","f32"),t.UBO.addEntry("DiffuseIntensity","f32"),t.UBO.addEntry("Roughness","f32"),t.UBO.addEntry("Metallic","f32"),t.UBO.addEntry("Ambient","f32"),t.UBO.addEntry("Normal","f32"),t.UBO.addEntry("Emission","f32"),t.UBO.addEntry("NormalStrength","f32"),t.UBO.addEntry("BaseIOR","f32"),t.UBO.addEntry("SpecularIntensity","f32"),t.UBO.addEntry("LineWidth","f32"),t.UBO.addEntry("Opacity","f32"),t.UBO.addEntry("ZValue","f32"),t.UBO.addEntry("PropID","u32"),t.UBO.addEntry("ClipNear","f32"),t.UBO.addEntry("ClipFar","f32"),t.UBO.addEntry("Time","u32"),St(e,t,["cellArray","currentInput","cellOffset","is2D","primitiveType","renderEncoder"]),t.textures=[],Zg(e,t)}var tm={newInstance:Mt(em,"vtkWebGPUCellArrayMapper"),extend:em};const{PrimitiveTypes:nm}=sg;function rm(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper"),e.createCellArrayMapper=()=>tm.newInstance(),e.buildPass=n=>{if(n){t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.renderable.getStatic()||t.renderable.update();const n=t.renderable.getInputData();t.renderable.mapScalars(n,1),e.updateCellArrayMappers(n)}},e.updateCellArrayMappers=n=>{const r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],o=[];let a=0;for(let i=nm.Points;i<=nm.Triangles;i++)if(r[i].getNumberOfValues()>0){t.primitives[i]||(t.primitives[i]=e.createCellArrayMapper());const s=t.primitives[i];s.setCellArray(r[i]),s.setCurrentInput(n),s.setCellOffset(a),s.setPrimitiveType(i),s.setRenderable(t.renderable),a+=r[i].getNumberOfCells(),o.push(s)}else t.primitives[i]=null;if(t.WebGPUActor.getRenderable().getProperty().getEdgeVisibility())for(let a=nm.TriangleEdges;a<=nm.TriangleStripEdges;a++)if(r[a-2].getNumberOfValues()>0){t.primitives[a]||(t.primitives[a]=e.createCellArrayMapper());const i=t.primitives[a];i.setCellArray(r[a-2]),i.setCurrentInput(n),i.setCellOffset(t.primitives[a-2].getCellOffset()),i.setPrimitiveType(a),i.setRenderable(t.renderable),o.push(i)}else t.primitives[a]=null;e.prepareNodes(),e.addMissingChildren(o),e.removeUnusedNodes()}}const om={primitives:null};const am=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,om,n),Xt.extend(e,t,n),t.primitives=[],rm(e,t)}),"vtkWebGPUPolyDataMapper");Lp("vtkMapper",am);const{PrimitiveTypes:im}=sg;function sm(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper2D"),e.createCellArrayMapper=()=>tm.newInstance(),e.buildPass=n=>{if(n){t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor2D"),t.renderable.getStatic()||t.renderable.update();const n=t.renderable.getInputData();t.renderable.mapScalars(n,1),e.updateCellArrayMappers(n)}},e.updateCellArrayMappers=n=>{const r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],o=[];let a=0;for(let i=im.Points;i<=im.Triangles;i++)if(r[i].getNumberOfValues()>0){t.primitives[i]||(t.primitives[i]=e.createCellArrayMapper());const s=t.primitives[i];s.setCellArray(r[i]),s.setCurrentInput(n),s.setCellOffset(a),s.setPrimitiveType(i),s.setRenderable(t.renderable),s.setIs2D(!0),a+=r[i].getNumberOfCells(),o.push(s)}else t.primitives[i]=null;e.prepareNodes(),e.addMissingChildren(o),e.removeUnusedNodes()}}function lm(e){return{primitives:[],...e}}const cm=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lm(n)),Xt.extend(e,t,n),t.primitives=[],sm(e,t)}),"vtkWebGPUPolyDataMapper2D");function um(e,t){t.classHierarchy.push("vtkWebGPUScalarBarActor"),e.buildPass=n=>{n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=>{if(e){const e=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,n=t.WebGPURenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t.WebGPURenderWindow.getRenderable())}}}Lp("vtkMapper2D",cm);const dm={};const pm=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dm,n),Xt.extend(e,t,n),t.scalarBarActorHelper=xp.newScalarBarActorHelper(),um(e,t)}),"vtkWebGPUScalarBarActor");function fm(e,t){t.classHierarchy.push("vtkWebGPUSampler"),e.create=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.device=e,t.options.addressModeU=n.addressModeU?n.addressModeU:"clamp-to-edge",t.options.addressModeV=n.addressModeV?n.addressModeV:"clamp-to-edge",t.options.addressModeW=n.addressModeW?n.addressModeW:"clamp-to-edge",t.options.magFilter=n.magFilter?n.magFilter:"nearest",t.options.minFilter=n.minFilter?n.minFilter:"nearest",t.options.mipmapFilter=n.mipmapFilter?n.mipmapFilter:"nearest",t.options.label=t.label,t.handle=t.device.getHandle().createSampler(t.options),t.bindGroupTime.modified()},e.getShaderCode=(e,n)=>`@binding(${e}) @group(${n}) var ${t.label}: sampler;`,e.getBindGroupEntry=()=>({resource:t.handle})}Lp("vtkScalarBarActor",pm);const gm={device:null,handle:null,label:null,options:null};function mm(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gm,n),Wt.obj(e,t),t.options={},t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),Wt.get(e,t,["bindGroupTime","handle","options"]),Wt.setGet(e,t,["bindGroupLayoutEntry","device","label"]),fm(e,t)}var hm={newInstance:Wt.newInstance(mm),extend:mm};function vm(e,t){t.classHierarchy.push("vtkWebGPUTextureView"),e.create=(e,n)=>{t.texture=e,t.options=n,t.options.dimension=t.options.dimension||"2d",t.options.label=t.label,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=uf(t.texture.getFormat());t.bindGroupLayoutEntry.texture.sampleType=r.sampleType},e.createFromTextureHandle=(e,n)=>{t.texture=null,t.options=n,t.options.dimension=t.options.dimension||"2d",t.options.label=t.label,t.textureHandle=e,t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=uf(n.format);t.bindGroupLayoutEntry.texture.sampleType=r.sampleType,t.bindGroupTime.modified()},e.getBindGroupEntry=()=>({resource:e.getHandle()}),e.getShaderCode=(e,n)=>{let r="f32";"sint"===t.bindGroupLayoutEntry.texture.sampleType?r="i32":"uint"===t.bindGroupLayoutEntry.texture.sampleType&&(r="u32");let o=`@binding(${e}) @group(${n}) var ${t.label}: texture_${t.options.dimension}<${r}>;`;return"depth"===t.bindGroupLayoutEntry.texture.sampleType&&(o=`@binding(${e}) @group(${n}) var ${t.label}: texture_depth_${t.options.dimension};`),o},e.addSampler=(n,r)=>{const o=hm.newInstance({label:`${t.label}Sampler`});o.create(n,r),e.setSampler(o)},e.getBindGroupTime=()=>(t.texture&&t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.bindGroupTime),e.getHandle=()=>(t.texture&&t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle)}const bm={texture:null,handle:null,sampler:null,label:null};function ym(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bm,n),Wt.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),Wt.get(e,t,["bindGroupTime","texture"]),Wt.setGet(e,t,["bindGroupLayoutEntry","label","sampler"]),vm(e,t)}var Tm={newInstance:Wt.newInstance(ym),extend:ym};const{BufferUsage:xm}=sg;function Sm(e,t){t.classHierarchy.push("vtkWebGPUTexture"),e.create=(e,n)=>{t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;const r=1===t.depth?"2d":"3d";t.format=n.format?n.format:"rgba8unorm",t.mipLevel=n.mipLevel?n.mipLevel:0,t.usage=n.usage?n.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label,dimension:r,mipLevelCount:t.mipLevel+1})},e.assignFromHandle=(e,n,r)=>{t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:"rgba8unorm",t.usage=r.usage?r.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},e.writeImageData=n=>{let r=[];if(n.canvas)return t.device.getHandle().queue.copyExternalImageToTexture({source:n.canvas,flipY:n.flip},{texture:t.handle,premultipliedAlpha:!0},[t.width,t.height,t.depth]),void(t.ready=!0);n.jsImageData&&!n.nativeArray&&(n.width=n.jsImageData.width,n.height=n.jsImageData.height,n.depth=1,n.format="rgba8unorm",n.flip=!0,n.nativeArray=n.jsImageData.data);const o=uf(t.format);let a=t.width*o.stride;const i=(e,t,n)=>{const r=e.length/(t*n)*e.BYTES_PER_ELEMENT,a=2===o.elementSize&&"float"===o.sampleType;if(a||r%256){const i=e,s=r/i.BYTES_PER_ELEMENT,l=o.elementSize,c=256*Math.floor((s*l+255)/256),u=c/l,d=Wt.newTypedArray(a?"Uint16Array":i.constructor.name,u*t*n);for(let e=0;e{const e=uf(t.format);return 2===e.elementSize&&"float"===e.sampleType?1:255},e.getNumberOfComponents=()=>uf(t.format).numComponents,e.getDimensionality=()=>{let e=0;return t.width>1&&e++,t.height>1&&e++,t.depth>1&&e++,e},e.resizeToMatch=e=>{e.getWidth()===t.width&&e.getHeight()===t.height&&e.getDepth()===t.depth||(t.width=e.getWidth(),t.height=e.getHeight(),t.depth=e.getDepth(),t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.resize=function(e,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;e===t.width&&n===t.height&&r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.createView=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r.dimension||(r.dimension=1===t.depth?"2d":"3d");const o=Tm.newInstance({label:n});return o.create(e,r),o}}const Cm={device:null,handle:null,buffer:null,ready:!1,label:null};function Am(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cm,n),Wt.obj(e,t),Wt.get(e,t,["handle","ready","width","height","depth","format","usage"]),Wt.setGet(e,t,["device","label"]),Sm(e,t)}var wm={newInstance:Wt.newInstance(Am),extend:Am};function Pm(e,t){t.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),e.opaquePass=(n,r)=>{t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent();const o=t.WebGPURenderer.getAspectRatio(),a=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,i=t.WebGPURenderer.getTiledSizeAndOrigin();t.renderable.getUseZValues(),t.renderable.invokeCallback(t.renderable.getInputData(),a,o,i,null)}}const Im={};const Om=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Im,n),Xt.extend(e,t,n),Pm(e,t)}),"vtkWebGPUPixelSpaceCallbackMapper");function Em(){const e=new ArrayBuffer(4),t=new Uint8Array(e),n=new Uint32Array(e);return t[0]=161,t[1]=178,t[2]=195,t[3]=212,3569595041===n[0]?"LittleEndian":2712847316===n[0]?"BigEndian":null}Lp("vtkPixelSpaceCallbackMapper",Om);var Mm=Em(),Rm=function(e,t){if(t<2)return;const n=new Int8Array(e),r=n.length,o=[];for(let e=0;e0&&void 0!==arguments[0]?arguments[0]:"http",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Dm[e](t)};const{vtkErrorMacro:_m,vtkDebugMacro:Nm}=Wt,Fm=()=>(_m("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead."),Promise.reject(new Error("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead.")));let km=0;function Um(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=new XMLHttpRequest;return r.open(e,t,!0),n.headers&&Object.entries(n.headers).forEach((e=>{let[t,n]=e;return r.setRequestHeader(t,n)})),n.progressCallback&&r.addEventListener("progress",n.progressCallback),r}const Gm={fetchArray:function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return r&&r.compression?Fm():n.ref&&!n.ref.pending?new Promise(((o,a)=>{const i=Um("GET",[t,n.ref.basepath,n.ref.id].join("/"),r);i.onreadystatechange=t=>{1===i.readyState&&(n.ref.pending=!0,1==++km&&e?.invokeBusy&&e.invokeBusy(!0)),4===i.readyState&&(n.ref.pending=!1,200===i.status||0===i.status?(n.buffer=i.response,"JSON"===n.ref.encode?n.values=JSON.parse(n.buffer):(Mm!==n.ref.encode&&Mm&&(Nm(`Swap bytes of ${n.name}`),Rm(n.buffer,us[n.dataType])),n.values=Wt.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&&_m(`Error in FetchArray: ${n.name}, does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`),delete n.ref,0==--km&&e?.invokeBusy&&e.invokeBusy(!1),e?.modified&&e.modified(),o(n)):a({xhr:i,e:t}))},i.responseType="string"!==n.dataType?"arraybuffer":"text",i.send()})):Promise.resolve(n)},fetchJSON:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n&&n.compression?Fm():new Promise(((r,o)=>{const a=Um("GET",t,n);a.onreadystatechange=t=>{1===a.readyState&&1==++km&&e?.invokeBusy&&e.invokeBusy(!0),4===a.readyState&&(0==--km&&e?.invokeBusy&&e.invokeBusy(!1),200===a.status||0===a.status?r(JSON.parse(a.responseText)):o({xhr:a,e:t}))},a.responseType="text",a.send()}))},fetchText:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n&&n.compression?Fm():new Promise(((r,o)=>{const a=Um("GET",t,n);a.onreadystatechange=t=>{1===a.readyState&&1==++km&&e?.invokeBusy&&e.invokeBusy(!0),4===a.readyState&&(0==--km&&e?.invokeBusy&&e.invokeBusy(!1),200===a.status||0===a.status?r(a.responseText):o({xhr:a,e:t}))},a.responseType="text",a.send()}))},fetchBinary:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((n,r)=>{const o=Um("GET",e,t);o.onreadystatechange=e=>{4===o.readyState&&(200===o.status||0===o.status?n(o.response):r({xhr:o,e:e}))},o.responseType="arraybuffer",o.send()}))},fetchImage:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((e,r)=>{const o=new Image;n.crossOrigin&&(o.crossOrigin=n.crossOrigin),o.onload=()=>e(o),o.onerror=r,o.src=t}))}};Bm("http")||Lm("http",(e=>Gm));const{vtkDebugMacro:zm}=Wt;function Wm(e,t){t.classHierarchy.push("vtkCamera");const n=new Float64Array(3),r=new Float64Array([0,0,-1]),o=new Float64Array([0,1,0]),a=p(new Float64Array(16)),i=p(new Float64Array(16)),s=new Float64Array(3),l=new Float64Array(3),u=new Float64Array(3),d=p(new Float64Array(16)),m=p(new Float64Array(16)),h=new Float64Array(3),x=new Float64Array(3);function S(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=()=>{const n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=(n,r,o)=>{n===t.position[0]&&r===t.position[1]&&o===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=o,e.computeDistance(),e.modified())},e.setFocalPoint=(n,r,o)=>{n===t.focalPoint[0]&&r===t.focalPoint[1]&&o===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=o,e.computeDistance(),e.modified())},e.setDistance=n=>{if(t.distance===n)return;t.distance=n,t.distance<1e-20&&(t.distance=1e-20,zm("Distance is set to minimum."));const r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()},e.computeDistance=()=>{const e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance<1e-20){t.distance=1e-20,zm("Distance is set to minimum.");const e=t.directionOfProjection;t.focalPoint[0]=t.position[0]+e[0]*t.distance,t.focalPoint[1]=t.position[1]+e[1]*t.distance,t.focalPoint[2]=t.position[2]+e[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,S()},e.dolly=n=>{if(n<=0)return;const r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])},e.roll=n=>{const r=t.position,o=t.focalPoint,a=t.viewUp,i=new Float64Array([a[0],a[1],a[2],0]);p(d);const s=new Float64Array([o[0]-r[0],o[1]-r[1],o[2]-r[2]]);T(d,d,xo(n),s),Ri(i,i,d),t.viewUp[0]=i[0],t.viewUp[1]=i[1],t.viewUp[2]=i[2],e.modified()},e.azimuth=n=>{const r=t.focalPoint;p(m),b(m,m,r),T(m,m,xo(n),t.viewUp),b(m,m,[-r[0],-r[1],-r[2]]),In(h,t.position,m),e.setPosition(h[0],h[1],h[2])},e.yaw=n=>{const r=t.position;p(m),b(m,m,r),T(m,m,xo(n),t.viewUp),b(m,m,[-r[0],-r[1],-r[2]]),In(x,t.focalPoint,m),e.setFocalPoint(x[0],x[1],x[2])},e.elevation=n=>{const r=t.focalPoint,o=e.getViewMatrix(),a=[-o[0],-o[1],-o[2]];p(m),b(m,m,r),T(m,m,xo(n),a),b(m,m,[-r[0],-r[1],-r[2]]),In(h,t.position,m),e.setPosition(h[0],h[1],h[2])},e.pitch=n=>{const r=t.position,o=e.getViewMatrix(),a=[o[0],o[1],o[2]];p(m),b(m,m,r),T(m,m,xo(n),a),b(m,m,[-r[0],-r[1],-r[2]]),In(x,t.focalPoint,m),e.setFocalPoint(...x)},e.zoom=n=>{n<=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=(n,r,o)=>{const a=[n,r,o];Bo(t.position,a,t.position),Bo(t.focalPoint,a,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=n=>{const r=[...t.viewUp,1],o=[],a=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],Ri(o,[...t.position,1],n),Ri(a,[...t.focalPoint,1],n),Ri(i,r,n),i[0]-=o[0],i[1]-=o[1],i[2]-=o[2],e.setPosition(...o.slice(0,3)),e.setFocalPoint(...a.slice(0,3)),e.setViewUp(...i.slice(0,3))},e.getThickness=()=>t.clippingRange[1]-t.clippingRange[0],e.setThickness=n=>{let r=n;r<1e-20&&(r=1e-20,zm("Thickness is set to minimum.")),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=n=>{let r=n;r<1e-20&&(r=1e-20,zm("Thickness is set to minimum.")),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=e=>{},e.getRoll=()=>{},e.setObliqueAngles=(e,t)=>{},e.getOrientation=()=>{},e.getOrientationWXYZ=()=>{},e.getFrustumPlanes=e=>{},e.getCameraLightTransformMatrix=e=>(c(e,t.cameraLightTransform),e),e.computeCameraLightTransform=()=>{c(a,e.getViewMatrix()),g(a,a),w(i,[t.distance,t.distance,t.distance]),v(a,a,i),p(t.cameraLightTransform),b(t.cameraLightTransform,a,[0,0,-1])},e.deepCopy=e=>{},e.physicalOrientationToWorldDirection=e=>{const t=Ni(e[0],e[1],e[2],e[3]),n=Di(),r=Ni(0,0,1,0);var o,a;return a=t,(o=n)[0]=-a[0],o[1]=-a[1],o[2]=-a[2],o[3]=a[3],Vi(r,t,r),Vi(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=t=>{e.getWorldToPhysicalMatrix(t),g(t,t)},e.getWorldToPhysicalMatrix=e=>{p(e);const n=[3];ko(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],f(e,e),Sn(s,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),y(e,e,s),b(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=i=>{g(a,i),In(s,n,a),e.computeDistance();const c=t.distance;e.setPosition(s[0],s[1],s[2]),In(l,r,a),An(l,l,s),Pn(l,l),e.setDirectionOfProjection(l[0],l[1],l[2]),In(u,o,a),An(u,u,s),Pn(u,u),e.setViewUp(u[0],u[1],u[2]),e.setDistance(c)},e.computeViewParametersFromPhysicalMatrix=t=>{e.getWorldToPhysicalMatrix(a),v(a,t,a),e.computeViewParametersFromViewMatrix(a)},e.setViewMatrix=n=>{t.viewMatrix=n,t.viewMatrix&&(c(a,t.viewMatrix),e.computeViewParametersFromViewMatrix(a),f(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=()=>{if(t.viewMatrix)return t.viewMatrix;$(a,t.position,t.focalPoint,t.viewUp),f(a,a);const e=new Float64Array(16);return c(e,a),e},e.setProjectionMatrix=e=>{t.projectionMatrix=e},e.getProjectionMatrix=(e,n,r)=>{const o=new Float64Array(16);if(p(o),t.projectionMatrix){const e=1/t.physicalScale;return Sn(s,e,e,e),c(o,t.projectionMatrix),y(o,o,s),f(o,o),o}p(a);const i=t.clippingRange[1]-t.clippingRange[0],l=[t.clippingRange[0]+(n+1)*i/2,t.clippingRange[0]+(r+1)*i/2];if(t.parallelProjection){const n=t.parallelScale*e,r=t.parallelScale,o=(t.windowCenter[0]-1)*n,i=(t.windowCenter[0]+1)*n,s=(t.windowCenter[1]-1)*r,c=(t.windowCenter[1]+1)*r;H(a,o,i,s,c,l[0],l[1]),f(a,a)}else{if(t.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const n=Math.tan(xo(t.viewAngle)/2);let r,o;!0===t.useHorizontalViewAngle?(r=t.clippingRange[0]*n,o=t.clippingRange[0]*n/e):(r=t.clippingRange[0]*n*e,o=t.clippingRange[0]*n);const i=(t.windowCenter[0]-1)*r,s=(t.windowCenter[0]+1)*r,c=(t.windowCenter[1]-1)*o,u=(t.windowCenter[1]+1)*o,d=l[0],p=l[1];a[0]=2*d/(s-i),a[5]=2*d/(u-c),a[2]=(i+s)/(s-i),a[6]=(c+u)/(u-c),a[10]=-(d+p)/(p-d),a[14]=-1,a[11]=-2*d*p/(p-d),a[15]=0}}return c(o,a),o},e.getCompositeProjectionMatrix=(t,n,r)=>{const o=e.getViewMatrix(),a=e.getProjectionMatrix(t,n,r);return v(a,o,a),a},e.setDirectionOfProjection=(e,n,r)=>{if(t.directionOfProjection[0]===e&&t.directionOfProjection[1]===n&&t.directionOfProjection[2]===r)return;t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;const o=t.directionOfProjection;t.focalPoint[0]=t.position[0]+o[0]*t.distance,t.focalPoint[1]=t.position[1]+o[1]*t.distance,t.focalPoint[2]=t.position[2]+o[2]*t.distance,S()},e.setDeviceAngles=(n,r,o,a)=>{const i=[3];ko(t.physicalViewNorth,t.physicalViewUp,i);const s=p(new Float64Array(16));T(s,s,xo(n),t.physicalViewUp),T(s,s,xo(r),i),T(s,s,xo(o),t.physicalViewNorth),T(s,s,xo(-a),t.physicalViewUp);const l=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),c=new Float64Array(t.physicalViewNorth);In(l,l,s),In(c,c,s),e.setDirectionOfProjection(l[0],l[1],l[2]),e.setViewUp(c[0],c[1],c[2]),e.modified()},e.setOrientationWXYZ=(t,n,r,o)=>{const a=p(new Float64Array(16));if(0!==t&&(0!==n||0!==r||0!==o)){const e=xo(t),i=Di();Bi(i,[n,r,o],e),N(a,i)}const i=new Float64Array(3);In(i,[0,0,-1],a);const s=new Float64Array(3);In(s,[0,1,0],a),e.setDirectionOfProjection(...i),e.setViewUp(...s),e.modified()},e.computeClippingRange=e=>{let n=null,r=null;n=t.viewPlaneNormal,r=t.position;const o=-n[0],a=-n[1],i=-n[2],s=-(o*r[0]+a*r[1]+i*r[2]),l=[o*e[0]+a*e[2]+i*e[4]+s,1e-18];for(let t=0;t<2;t++)for(let n=0;n<2;n++)for(let r=0;r<2;r++){const c=o*e[r]+a*e[2+n]+i*e[4+t]+s;l[0]=cl[1]?c:l[1]}return l}}const Hm={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,cameraLightTransform:s(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function jm(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hm,n),Wt.obj(e,t),Wt.get(e,t,["distance"]),Wt.setGet(e,t,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),Wt.getArray(e,t,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),Wt.setGetArray(e,t,["clippingRange","windowCenter"],2),Wt.setGetArray(e,t,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),Wm(e,t)}var $m={newInstance:Wt.newInstance(jm,"vtkCamera"),extend:jm};function Km(e,t){t.classHierarchy.push("vtkLight");const n=new Float64Array(3);e.getTransformedPosition=()=>(t.transformMatrix?In(n,t.position,t.transformMatrix):Sn(n,t.position[0],t.position[1],t.position[2]),n),e.getTransformedFocalPoint=()=>(t.transformMatrix?In(n,t.focalPoint,t.transformMatrix):Sn(n,t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),n),e.getDirection=()=>(t.directionMTime{const n=new Float64Array(3);Mn(n,t.position,e),t.focalPoint=n},e.setDirectionAngle=(t,n)=>{const r=xo(t),o=xo(n);e.setPosition(Math.cos(r)*Math.sin(o),Math.sin(r),Math.cos(r)*Math.cos(o)),e.setFocalPoint(0,0,0),e.setPositional(0)},e.setLightTypeToHeadLight=()=>{e.setLightType("HeadLight")},e.setLightTypeToCameraLight=()=>{e.setLightType("CameraLight")},e.setLightTypeToSceneLight=()=>{e.setTransformMatrix(null),e.setLightType("SceneLight")},e.lightTypeIsHeadLight=()=>"HeadLight"===t.lightType,e.lightTypeIsSceneLight=()=>"SceneLight"===t.lightType,e.lightTypeIsCameraLight=()=>"CameraLight"===t.lightType}const qm={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function Xm(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qm,n),Wt.obj(e,t),Wt.setGet(e,t,["intensity","switch","positional","exponent","coneAngle","coneFalloff","transformMatrix","lightType","shadowAttenuation","attenuationValues"]),Wt.setGetArray(e,t,["color","position","focalPoint","attenuationValues"],3),Km(e,t)}var Ym={newInstance:Wt.newInstance(Xm,"vtkLight"),extend:Xm,LIGHT_TYPES:["HeadLight","CameraLight","SceneLight"]};const{vtkErrorMacro:Qm}=Wt;function Zm(e,t){function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];t.push(e);const r=e.getNestedProps();if(r&&r.length)for(let e=0;et.props,e.hasViewProp=e=>t.props.includes(e),e.addViewProp=n=>{n&&!e.hasViewProp(n)&&t.props.push(n)},e.removeViewProp=e=>{const n=t.props.filter((t=>t!==e));t.props.length!==n.length&&(t.props=n)},e.removeAllViewProps=()=>{t.props=[]},e.getViewPropsWithNestedProps=()=>{const e=[];for(let r=0;r{e.removeViewProp(t)},e.getActors2D=()=>(t.actors2D=[],t.props.forEach((e=>{t.actors2D=t.actors2D.concat(e.getActors2D())})),t.actors2D),e.displayToView=()=>Qm("call displayToView on your view instead"),e.viewToDisplay=()=>Qm("callviewtodisplay on your view instead"),e.getSize=()=>Qm("call getSize on your View instead"),e.normalizedDisplayToProjection=(t,n,r)=>{const o=e.normalizedDisplayToNormalizedViewport(t,n,r);return e.normalizedViewportToProjection(o[0],o[1],o[2])},e.normalizedDisplayToNormalizedViewport=(e,n,r)=>{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[(e-t.viewport[0])/o[0],(n-t.viewport[1])/o[1],r]},e.normalizedViewportToProjection=(e,t,n)=>[2*e-1,2*t-1,2*n-1],e.projectionToNormalizedDisplay=(t,n,r)=>{const o=e.projectionToNormalizedViewport(t,n,r);return e.normalizedViewportToNormalizedDisplay(o[0],o[1],o[2])},e.normalizedViewportToNormalizedDisplay=(e,n,r)=>{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[e*o[0]+t.viewport[0],n*o[1]+t.viewport[1],r]},e.projectionToNormalizedViewport=(e,t,n)=>[.5*(e+1),.5*(t+1),.5*(n+1)],e.PickPropFrom=("PickPropFrom",()=>Qm("vtkViewport::PickPropFrom - NOT IMPLEMENTED"))}const Jm={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function eh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jm,n),Wt.obj(e,t),Wt.event(e,t,"event"),Wt.setGetArray(e,t,["viewport"],4),Wt.setGetArray(e,t,["background","background2"],3),Zm(e,t)}var th={newInstance:Wt.newInstance(eh,"vtkViewport"),extend:eh};const{vtkDebugMacro:nh,vtkErrorMacro:rh,vtkWarningMacro:oh}=Ht;function ah(e){return()=>rh(`vtkRenderer::${e} - NOT IMPLEMENTED`)}function ih(e,t){t.classHierarchy.push("vtkRenderer");const n={type:"ComputeVisiblePropBoundsEvent",renderer:e},r={type:"ResetCameraClippingRangeEvent",renderer:e},o={type:"ResetCameraEvent",renderer:e};e.updateCamera=()=>(t.activeCamera||(nh("No cameras are on, creating one."),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0),e.updateLightsGeometryToFollowCamera=()=>{const n=e.getActiveCameraAndResetIfCreated();t.lights.forEach((e=>{e.lightTypeIsSceneLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):e.lightTypeIsCameraLight()?e.setTransformMatrix(n.getCameraLightTransformMatrix(s())):rh("light has unknown light type",e.get()))}))},e.updateLightGeometry=()=>!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera(),e.allocateTime=ah("allocateTime"),e.updateGeometry=ah("updateGeometry"),e.getVTKWindow=()=>t._renderWindow,e.setLayer=n=>{nh(e.getClassName(),e,"setting Layer to ",n),t.layer!==n&&(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=n=>t.activeCamera!==n&&(t.activeCamera=n,e.modified(),e.invokeEvent({type:"ActiveCameraEvent",camera:n}),!0),e.makeCamera=()=>{const t=$m.newInstance();return e.invokeEvent({type:"CreateCameraEvent",camera:t}),t},e.getActiveCamera=()=>(t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera),e.getActiveCameraAndResetIfCreated=()=>(t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera),e.getActors=()=>(t.actors=[],t.props.forEach((e=>{t.actors=t.actors.concat(e.getActors())})),t.actors),e.addActor=e.addViewProp,e.removeActor=n=>{t.actors=t.actors.filter((e=>e!==n)),e.removeViewProp(n),e.modified()},e.removeAllActors=()=>{e.getActors().forEach((t=>{e.removeViewProp(t)})),t.actors=[],e.modified()},e.getVolumes=()=>(t.volumes=[],t.props.forEach((e=>{t.volumes=t.volumes.concat(e.getVolumes())})),t.volumes),e.addVolume=e.addViewProp,e.removeVolume=n=>{t.volumes=t.volumes.filter((e=>e!==n)),e.removeViewProp(n),e.modified()},e.removeAllVolumes=()=>{e.getVolumes().forEach((t=>{e.removeViewProp(t)})),t.volumes=[],e.modified()},e.hasLight=e=>t.lights.includes(e),e.addLight=n=>{n&&!e.hasLight(n)&&(t.lights.push(n),e.modified())},e.removeLight=n=>{t.lights=t.lights.filter((e=>e!==n)),e.modified()},e.removeAllLights=()=>{t.lights=[],e.modified()},e.setLightCollection=n=>{t.lights=n,e.modified()},e.makeLight=Ym.newInstance,e.createLight=()=>{t.automaticLightCreation&&(t._createdLight&&(e.removeLight(t._createdLight),t._createdLight.delete(),t._createdLight=null),t._createdLight=e.makeLight(),e.addLight(t._createdLight),t._createdLight.setLightTypeToHeadLight(),t._createdLight.setPosition(e.getActiveCamera().getPosition()),t._createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=(t,n,r,o)=>{let a=e.normalizedDisplayToProjection(t,n,r);return a=e.projectionToView(a[0],a[1],a[2],o),e.viewToWorld(a[0],a[1],a[2])},e.worldToNormalizedDisplay=(t,n,r,o)=>{let a=e.worldToView(t,n,r);return a=e.viewToProjection(a[0],a[1],a[2],o),e.projectionToNormalizedDisplay(a[0],a[1],a[2])},e.viewToWorld=(e,n,r)=>{if(null===t.activeCamera)return rh("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const o=t.activeCamera.getViewMatrix();g(o,o),f(o,o);const a=new Float64Array([e,n,r]);return In(a,a,o),a},e.projectionToView=(e,n,r,o)=>{if(null===t.activeCamera)return rh("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);g(a,a),f(a,a);const i=new Float64Array([e,n,r]);return In(i,i,a),i},e.worldToView=(e,n,r)=>{if(null===t.activeCamera)return rh("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const o=t.activeCamera.getViewMatrix();f(o,o);const a=new Float64Array([e,n,r]);return In(a,a,o),a},e.viewToProjection=(e,n,r,o)=>{if(null===t.activeCamera)return rh("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);f(a,a);const i=new Float64Array([e,n,r]);return In(i,i,a),i},e.computeVisiblePropBounds=()=>{t.allBounds[0]=Mi.INIT_BOUNDS[0],t.allBounds[1]=Mi.INIT_BOUNDS[1],t.allBounds[2]=Mi.INIT_BOUNDS[2],t.allBounds[3]=Mi.INIT_BOUNDS[3],t.allBounds[4]=Mi.INIT_BOUNDS[4],t.allBounds[5]=Mi.INIT_BOUNDS[5];let r=!0;e.invokeEvent(n);for(let e=0;et.allBounds[1]&&(t.allBounds[1]=e[1]),e[2]t.allBounds[3]&&(t.allBounds[3]=e[3]),e[4]t.allBounds[5]&&(t.allBounds[5]=e[5]))}}return r&&(va(t.allBounds),nh("Can't compute bounds, no 3D props are visible")),t.allBounds},e.resetCamera=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const r=n||e.computeVisiblePropBounds(),a=[0,0,0];if(!ba(r))return nh("Cannot reset camera!"),!1;let i=null;if(!e.getActiveCamera())return rh("Trying to reset non-existent camera"),!1;i=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),a[0]=(r[0]+r[1])/2,a[1]=(r[2]+r[3])/2,a[2]=(r[4]+r[5])/2;let s=r[1]-r[0],l=r[3]-r[2],c=r[5]-r[4];s*=s,l*=l,c*=c;let u=s+l+c;u=0===u?1:u,u=.5*Math.sqrt(u);const d=xo(t.activeCamera.getViewAngle()),p=u,f=u/Math.sin(.5*d),g=t.activeCamera.getViewUp();return Math.abs(Fo(g,i))>.999&&(oh("Resetting view-up since view plane normal is parallel"),t.activeCamera.setViewUp(-g[2],g[0],g[1])),t.activeCamera.setFocalPoint(a[0],a[1],a[2]),t.activeCamera.setPosition(a[0]+f*i[0],a[1]+f*i[1],a[2]+f*i[2]),e.resetCameraClippingRange(r),t.activeCamera.setParallelScale(p),t.activeCamera.setPhysicalScale(u),t.activeCamera.setPhysicalTranslation(-a[0],-a[1],-a[2]),e.invokeEvent(o),!0},e.resetCameraClippingRange=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const o=n||e.computeVisiblePropBounds();if(!ba(o))return nh("Cannot reset camera clipping range!"),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return rh("Trying to reset clipping range of non-existent camera"),!1;const a=t.activeCamera.computeClippingRange(o);let i=0;if(t.activeCamera.getParallelProjection())i=.2*t.activeCamera.getParallelScale();else{const e=xo(t.activeCamera.getViewAngle());i=.2*Math.tan(e/2)*a[1]}return a[1]-a[0]=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]{e!==t._renderWindow&&(t._vtkWindow=e,t._renderWindow=e)},e.visibleActorCount=()=>t.props.filter((e=>e.getVisibility())).length,e.visibleVolumeCount=e.visibleActorCount,e.getMTime=()=>{let e=t.mtime;const n=t.activeCamera?t.activeCamera.getMTime():0;n>e&&(e=n);const r=t._createdLight?t._createdLight.getMTime():0;return r>e&&(e=r),e},e.getTransparent=()=>!!t.preserveColorBuffer,e.isActiveCameraCreated=()=>!!t.activeCamera}const sh={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:Pa(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function lh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};for(Object.assign(t,sh,n),th.extend(e,t,n),t.background||(t.background=[0,0,0,1]);t.background.length<3;)t.background.push(0);3===t.background.length&&t.background.push(1),bt(e,t,["_renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),St(e,t,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","environmentTexture","environmentTextureDiffuseStrength","environmentTextureSpecularStrength","useEnvironmentTextureAsBackground","useShadows","pass"]),Ct(e,t,["actors","volumes","lights"]),wt(e,t,["background"],4,1),Pt(0,t,["renderWindow"]),ih(e,t)}var ch={newInstance:Mt(lh,"vtkRenderer"),extend:lh};const uh=Object.create(null);function dh(e,t){uh[e]=t}function ph(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return uh[e]&&uh[e](t)}function fh(e,t){t.classHierarchy.push("vtkRenderWindow"),e.addRenderer=n=>{e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=n=>{t.renderers=t.renderers.filter((e=>e!==n)),e.modified()},e.hasRenderer=e=>-1!==t.renderers.indexOf(e),e.newAPISpecificView=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ph(e||t.defaultViewAPI,n)},e.addView=n=>{e.hasView(n)||(n.setRenderable(e),t._views.push(n),e.modified())},e.removeView=n=>{t._views=t._views.filter((e=>e!==n)),e.modified()},e.hasView=e=>-1!==t._views.indexOf(e),e.preRender=()=>{t.renderers.forEach((e=>{e.isActiveCameraCreated()||e.resetCamera()}))},e.render=()=>{e.preRender(),t.interactor?t.interactor.render():t._views.forEach((e=>e.traverseAllPasses()))},e.getStatistics=()=>{const e={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return t._views.forEach((t=>{t.getGraphicsMemoryInfo&&(e.gpuMemoryMB+=t.getGraphicsMemoryInfo()/1e6)})),t.renderers.forEach((n=>{const r=n.getViewProps(),o=t._views[0].getViewNodeFor(n);r.forEach((t=>{if(t.getVisibility()){e.propCount+=1;const n=t.getMapper&&t.getMapper();if(n&&n.getPrimitiveCount){const t=o.getViewNodeFor(n);if(t){t.getAllocatedGPUMemoryInBytes&&(e.gpuMemoryMB+=t.getAllocatedGPUMemoryInBytes()/1e6);const r=n.getPrimitiveCount();Object.keys(r).forEach((t=>{e[t]||(e[t]=0),e[t]+=r[t]}))}}}else e.invisiblePropCount+=1}))})),e.str=Object.keys(e).map((t=>`${t}: ${e[t]}`)).join("\n"),e},e.captureImages=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Wt.setImmediate(e.render),t._views.map((e=>e.captureNextImage?e.captureNextImage(n,r):void 0)).filter((e=>!!e))},e.addRenderWindow=n=>!t.childRenderWindows.includes(n)&&(t.childRenderWindows.push(n),e.modified(),!0),e.removeRenderWindow=n=>{const r=t.childRenderWindows.findIndex((e=>e===n));return!(r<0||(t.childRenderWindows.splice(r,1),e.modified(),0))}}const gh={defaultViewAPI:"WebGL",renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1,childRenderWindows:[]};function mh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gh,n),Wt.obj(e,t),Wt.setGet(e,t,["interactor","numberOfLayers","_views","defaultViewAPI"]),Wt.get(e,t,["neverRendered"]),Wt.getArray(e,t,["renderers","childRenderWindows"]),Wt.moveToProtected(e,t,["views"]),Wt.event(e,t,"completion"),fh(e,t)}var hh={newInstance:Wt.newInstance(mh,"vtkRenderWindow"),extend:mh,registerViewConstructor:dh,listViewAPIs:function(){return Object.keys(uh)},newAPISpecificView:ph};const vh={Unknown:0,LeftController:1,RightController:2},bh={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7};var yh={Device:vh,Input:bh,Axis:{Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4}};const{Device:Th,Input:xh}=yh,{vtkWarningMacro:Sh,vtkErrorMacro:Ch,normalizeWheel:Ah,vtkOnceErrorMacro:wh}=Wt,Ph={ctrlKey:!1,altKey:!1,shiftKey:!1},Ih={"xr-standard":[xh.Trigger,xh.Grip,xh.TrackPad,xh.Thumbstick,xh.A,xh.B]},Oh=["StartAnimation","Animation","EndAnimation","PointerEnter","PointerLeave","MouseEnter","MouseLeave","StartMouseMove","MouseMove","EndMouseMove","LeftButtonPress","LeftButtonRelease","MiddleButtonPress","MiddleButtonRelease","RightButtonPress","RightButtonRelease","KeyPress","KeyDown","KeyUp","StartMouseWheel","MouseWheel","EndMouseWheel","StartPinch","Pinch","EndPinch","StartPan","Pan","EndPan","StartRotate","Rotate","EndRotate","Button3D","Move3D","StartPointerLock","EndPointerLock","StartInteraction","Interaction","EndInteraction","AnimationFrameRateUpdate"];function Eh(e){e.cancelable&&e.preventDefault()}function Mh(e){const t=Object.create(null);return e.forEach((e=>{let{pointerId:n,position:r}=e;t[n]=r})),t}function Rh(e,t){t.classHierarchy.push("vtkRenderWindowInteractor");const n={...e},r=new Set,o=new Map;let a=1;function i(n,r){t._forcedRenderer||(t.currentRenderer=e.findPokedRenderer(n,r))}e.start=()=>{(t.initialized||(e.initialize(),t.initialized))&&e.startEventLoop()},e.setRenderWindow=e=>{Ch("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},e.setInteractorStyle=n=>{t.interactorStyle!==n&&(null!=t.interactorStyle&&t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&&t.interactorStyle.getInteractor()!==e&&t.interactorStyle.setInteractor(e))},e.initialize=()=>{t.initialized=!0,e.enable(),e.render()},e.enable=()=>e.setEnabled(!0),e.disable=()=>e.setEnabled(!1),e.startEventLoop=()=>Sh("empty event loop"),e.getCurrentRenderer=()=>(t.currentRenderer||i(0,0),t.currentRenderer);const s=t._getScreenEventPositionFor||function(e){const n=t._view.getCanvas(),r=n.getBoundingClientRect(),a=n.width/r.width,s=n.height/r.height,l={x:a*(e.clientX-r.left),y:s*(r.height-e.clientY+r.top),z:0};return(o.size<=1||!t.currentRenderer)&&i(l.x,l.y),l};function l(e){return{controlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey}}function c(e){const t=l(e);return{key:e.key,keyCode:e.charCode,...t}}function u(e){return e.pointerType||""}const d=()=>{if(null===t.container)return;const{container:n}=t;n.addEventListener("contextmenu",Eh),n.addEventListener("wheel",e.handleWheel),n.addEventListener("DOMMouseScroll",e.handleWheel),n.addEventListener("pointerenter",e.handlePointerEnter),n.addEventListener("pointerleave",e.handlePointerLeave),n.addEventListener("pointermove",e.handlePointerMove,{passive:!1}),n.addEventListener("pointerdown",e.handlePointerDown,{passive:!1}),n.addEventListener("pointerup",e.handlePointerUp),n.addEventListener("pointercancel",e.handlePointerCancel),document.addEventListener("keypress",e.handleKeyPress),document.addEventListener("keydown",e.handleKeyDown),document.addEventListener("keyup",e.handleKeyUp),document.addEventListener("pointerlockchange",e.handlePointerLockChange),n.style.touchAction="none",n.style.userSelect="none",n.style.webkitTapHighlightColor="rgba(0,0,0,0)"};e.bindEvents=e=>{null!==e&&n.setContainer(e)&&d()};const p=()=>{clearTimeout(t.moveTimeoutID),clearTimeout(t.wheelTimeoutID),t.moveTimeoutID=0,t.wheelTimeoutID=0,a=1;const{container:n}=t;n&&(n.removeEventListener("contextmenu",Eh),n.removeEventListener("wheel",e.handleWheel),n.removeEventListener("DOMMouseScroll",e.handleWheel),n.removeEventListener("pointerenter",e.handlePointerEnter),n.removeEventListener("pointerleave",e.handlePointerLeave),n.removeEventListener("pointermove",e.handlePointerMove,{passive:!1}),n.removeEventListener("pointerdown",e.handlePointerDown,{passive:!1}),n.removeEventListener("pointerup",e.handlePointerUp),n.removeEventListener("pointercancel",e.handlePointerCancel)),document.removeEventListener("keypress",e.handleKeyPress),document.removeEventListener("keydown",e.handleKeyDown),document.removeEventListener("keyup",e.handleKeyUp),document.removeEventListener("pointerlockchange",e.handlePointerLockChange),o.clear()};function f(){t._view&&t.enabled&&t.enableRender&&(t.inRender=!0,t._view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.unbindEvents=()=>{p(),n.setContainer(null)},e.handleKeyPress=t=>{const n=c(t);e.keyPressEvent(n)},e.handleKeyDown=t=>{const n=c(t);e.keyDownEvent(n)},e.handleKeyUp=t=>{const n=c(t);e.keyUpEvent(n)},e.handlePointerEnter=t=>{const n={...l(t),position:s(t),deviceType:u(t)};e.pointerEnterEvent(n),"mouse"===n.deviceType&&e.mouseEnterEvent(n)},e.handlePointerLeave=t=>{const n={...l(t),position:s(t),deviceType:u(t)};e.pointerLeaveEvent(n),"mouse"===n.deviceType&&e.mouseLeaveEvent(n)},e.handlePointerDown=n=>{if(!(n.button>2||e.isPointerLocked()))switch(t.preventDefaultOnPointerDown&&Eh(n),n.target.hasPointerCapture(n.pointerId)&&n.target.releasePointerCapture(n.pointerId),t.container.setPointerCapture(n.pointerId),o.has(n.pointerId)&&Sh("[RenderWindowInteractor] duplicate pointerId detected"),o.set(n.pointerId,{pointerId:n.pointerId,position:s(n)}),n.pointerType){case"pen":case"touch":e.handleTouchStart(n);break;default:e.handleMouseDown(n)}},e.handlePointerUp=n=>{if(o.has(n.pointerId))switch(t.preventDefaultOnPointerUp&&Eh(n),o.delete(n.pointerId),t.container.releasePointerCapture(n.pointerId),n.pointerType){case"pen":case"touch":e.handleTouchEnd(n);break;default:e.handleMouseUp(n)}},e.handlePointerCancel=t=>{if(o.has(t.pointerId))switch(o.delete(t.pointerId),t.pointerType){case"pen":case"touch":e.handleTouchEnd(t);break;default:e.handleMouseUp(t)}},e.handlePointerMove=t=>{switch(o.has(t.pointerId)&&(o.get(t.pointerId).position=s(t)),t.pointerType){case"pen":case"touch":e.handleTouchMove(t);break;default:e.handleMouseMove(t)}},e.handleMouseDown=t=>{const n={...l(t),position:s(t),deviceType:u(t)};switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Ch(`Unknown mouse button pressed: ${t.button}`)}},e.requestPointerLock=()=>{t.container&&t.container.requestPointerLock()},e.exitPointerLock=()=>document.exitPointerLock?.(),e.isPointerLocked=()=>!!t.container&&document.pointerLockElement===t.container,e.handlePointerLockChange=()=>{e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=n=>{void 0!==n?r.has(n)?Sh("requester is already registered for animating"):(r.add(n),t.animationRequest||1!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Ch("undefined requester, can not start animating")},e.extendAnimation=n=>{const o=Date.now()+n;t._animationExtendedEnd=Math.max(t._animationExtendedEnd,o),t.animationRequest||0!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())},e.isAnimating=()=>t.xrAnimation||null!==t.animationRequest,e.cancelAnimation=function(n){let o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r.has(n))r.delete(n),t.animationRequest&&0===r.size&&Date.now()>t._animationExtendedEnd&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!o){const e=n&&n.getClassName?n.getClassName():n;Sh(`${e} did not request an animation`)}},e.switchToXRAnimation=()=>{t.animationRequest&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.xrAnimation=!0},e.returnFromXRAnimation=()=>{t.xrAnimation=!1,0!==r.size&&(t.recentAnimationFrameRate=10,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateXRGamepads=(n,r,o)=>{n.inputSources.forEach((n=>{const a=null==n.gripSpace?null:r.getPose(n.gripSpace,o),i=null==n.gripSpace?null:r.getPose(n.targetRaySpace,o),s=n.gamepad,l=n.handedness;if(s){s.index in t.lastGamepadValues||(t.lastGamepadValues[s.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let r=0;r{const r={...l(n),position:s(n),deviceType:u(n)};0===t.moveTimeoutID?e.startMouseMoveEvent(r):(e.mouseMoveEvent(r),clearTimeout(t.moveTimeoutID)),t.moveTimeoutID=setTimeout((()=>{e.endMouseMoveEvent(),t.moveTimeoutID=0}),200)},e.handleAnimation=()=>{const n=Date.now();t._animationFrameCount++,n-t._animationStartTime>1e3&&t._animationFrameCount>1&&(t.recentAnimationFrameRate=1e3*(t._animationFrameCount-1)/(n-t._animationStartTime),t.lastFrameTime=1/t.recentAnimationFrameRate,e.animationFrameRateUpdateEvent(),t._animationStartTime=n,t._animationFrameCount=1),e.animationEvent(),f(),r.size>0||Date.now(){Eh(n);const r={...Ah(n),...l(n),position:s(n),deviceType:u(n)};0===t.wheelTimeoutID&&(a=Math.abs(r.spinY)>=.3?Math.abs(r.spinY):1),r.spinY/=a,0===t.wheelTimeoutID?(e.startMouseWheelEvent(r),e.mouseWheelEvent(r)):(e.mouseWheelEvent(r),clearTimeout(t.wheelTimeoutID)),t.mouseScrollDebounceByPass?(e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0):t.wheelTimeoutID=setTimeout((()=>{e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0}),200)},e.handleMouseUp=t=>{const n={...l(t),position:s(t),deviceType:u(t)};switch(t.button){case 0:e.leftButtonReleaseEvent(n);break;case 1:e.middleButtonReleaseEvent(n);break;case 2:e.rightButtonReleaseEvent(n);break;default:Ch(`Unknown mouse button released: ${t.button}`)}},e.handleTouchStart=n=>{const r=[...o.values()];if(t.recognizeGestures&&r.length>1){const t=Mh(o);if(2===r.length){const t={...l(Ph),position:r[0].position,deviceType:u(n)};e.leftButtonReleaseEvent(t)}e.recognizeGesture("TouchStart",t)}else if(1===r.length){const t={...l(Ph),position:s(n),deviceType:u(n)};e.leftButtonPressEvent(t)}},e.handleTouchMove=n=>{const r=[...o.values()];if(t.recognizeGestures&&r.length>1){const t=Mh(o);e.recognizeGesture("TouchMove",t)}else if(1===r.length){const t={...l(Ph),position:r[0].position,deviceType:u(n)};e.mouseMoveEvent(t)}},e.handleTouchEnd=n=>{const r=[...o.values()];if(t.recognizeGestures)if(0===r.length){const t={...l(Ph),position:s(n),deviceType:u(n)};e.leftButtonReleaseEvent(t)}else if(1===r.length){const t=Mh(o);e.recognizeGesture("TouchEnd",t);const a={...l(Ph),position:r[0].position,deviceType:u(n)};e.leftButtonPressEvent(a)}else{const t=Mh(o);e.recognizeGesture("TouchMove",t)}else if(1===r.length){const t={...l(Ph),position:r[0].position,deviceType:u(n)};e.leftButtonReleaseEvent(t)}},e.setView=n=>{t._view!==n&&(t._view=n,t._view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=()=>t._view?.getRenderable()?.getRenderersByReference()?.[0],e.findPokedRenderer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t._view)return null;const r=t._view?.getRenderable()?.getRenderers();if(!r||0===r.length)return null;r.sort(((e,t)=>e.getLayer()-t.getLayer()));let o=null,a=null,i=null,s=r.length;for(;s--;){const l=r[s];if(t._view.isInViewport(e,n,l)&&l.getInteractive()){i=l;break}null===o&&l.getInteractive()&&(o=l),null===a&&t._view.isInViewport(e,n,l)&&(a=l)}return null===i&&(i=o),null===i&&(i=a),null==i&&(i=r[0]),i},e.render=()=>{e.isAnimating()||t.inRender||f()},Oh.forEach((n=>{const r=n.charAt(0).toLowerCase()+n.slice(1);e[`${r}Event`]=r=>{if(!t.enabled)return;if(!e.getCurrentRenderer())return void wh("\n Can not forward events without a current renderer on the interactor.\n ");const o={type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer(),...r};e[`invoke${n}`](o)}})),e.recognizeGesture=(n,r)=>{if(Object.keys(r).length>2)return;if(t.startingEventPositions||(t.startingEventPositions={}),"TouchStart"===n)return Object.keys(r).forEach((e=>{t.startingEventPositions[e]=r[e]})),void(t.currentGesture="Start");if("TouchEnd"===n)return"Pinch"===t.currentGesture&&(e.render(),e.endPinchEvent()),"Rotate"===t.currentGesture&&(e.render(),e.endRotateEvent()),"Pan"===t.currentGesture&&(e.render(),e.endPanEvent()),t.currentGesture="Start",void(t.startingEventPositions={});let o=0;const a=[],i=[];Object.keys(r).forEach((e=>{a[o]=r[e],i[o]=t.startingEventPositions[e],o++}));const s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((a[0].x-a[1].x)*(a[0].x-a[1].x)+(a[0].y-a[1].y)*(a[0].y-a[1].y));let c=So(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=So(Math.atan2(a[1].y-a[0].y,a[1].x-a[0].x)),d=u-c;u=u+180>=360?u-180:u+180,c=c+180>=360?c-180:c+180,Math.abs(u-c)n&&o>a&&o>i){t.currentGesture="Pinch";const n={scale:1,touches:r};e.startPinchEvent(n)}else if(a>n&&a>i){t.currentGesture="Rotate";const n={rotation:0,touches:r};e.startRotateEvent(n)}else if(i>n){t.currentGesture="Pan";const n={translation:[0,0],touches:r};e.startPanEvent(n)}}else{if("Rotate"===t.currentGesture){const t={rotation:d,touches:r};e.rotateEvent(t)}if("Pinch"===t.currentGesture){const t={scale:l/s,touches:r};e.pinchEvent(t)}if("Pan"===t.currentGesture){const t={translation:p,touches:r};e.panEvent(t)}}},e.handleVisibilityChange=()=>{t._animationStartTime=Date.now(),t._animationFrameCount=0},e.setCurrentRenderer=e=>{t._forcedRenderer=!!e,t.currentRenderer=e},e.setContainer=e=>{p();const t=n.setContainer(e??null);return t&&d(),t},e.delete=()=>{for(;r.size;)e.cancelAnimation(r.values().next().value);void 0!==document.hidden&&document.removeEventListener("visibilitychange",e.handleVisibilityChange),t.container&&e.setContainer(null),n.delete()},void 0!==document.hidden&&document.addEventListener("visibilitychange",e.handleVisibilityChange,!1)}const Dh={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:"Start",animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function Bh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Dh,n),Wt.obj(e,t),t._animationExtendedEnd=0,Wt.event(e,t,"RenderEvent"),Oh.forEach((n=>Wt.event(e,t,n))),Wt.get(e,t,["initialized","interactorStyle","lastFrameTime","recentAnimationFrameRate","_view"]),Wt.setGet(e,t,["container","lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker","preventDefaultOnPointerDown","preventDefaultOnPointerUp","mouseScrollDebounceByPass"]),Wt.moveToProtected(e,t,["view"]),Rh(e,t)}var Lh={newInstance:Wt.newInstance(Bh,"vtkRenderWindowInteractor"),extend:Bh,handledEvents:Oh,...yh};const{vtkErrorMacro:Vh,VOID:_h}=Wt;function Nh(e,t){t.classHierarchy.push("vtkInteractorObserver");const n={...e};function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function o(){Lh.handledEvents.forEach((n=>{e[`handle${n}`]&&t.subscribedEvents.push(t._interactor[`on${n}`]((r=>t.processEvents?e[`handle${n}`](r):_h),t.priority))}))}e.setInteractor=n=>{n!==t._interactor&&(r(),t._interactor=n,n&&t.enabled&&o(),e.modified())},e.setEnabled=n=>{n!==t.enabled&&(r(),n&&(t._interactor?o():Vh("\n The interactor must be set before subscribing to events\n ")),t.enabled=n,e.modified())},e.computeDisplayToWorld=(e,n,r,o)=>e?t._interactor.getView().displayToWorld(n,r,o,e):null,e.computeWorldToDisplay=(e,n,r,o)=>e?t._interactor.getView().worldToDisplay(n,r,o,e):null,e.setPriority=e=>{n.setPriority(e)&&t._interactor&&(r(),o())}}const Fh={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function kh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fh,n),Wt.obj(e,t),Wt.event(e,t,"InteractionEvent"),Wt.event(e,t,"StartInteractionEvent"),Wt.event(e,t,"EndInteractionEvent"),Wt.get(e,t,["_interactor","enabled"]),Wt.setGet(e,t,["priority","processEvents"]),Wt.moveToProtected(e,t,["interactor"]),Nh(e,t)}var Uh={newInstance:Wt.newInstance(kh,"vtkInteractorObserver"),extend:kh,computeWorldToDisplay:function(e,t,n,r){return e.getRenderWindow().getViews()[0].worldToDisplay(t,n,r,e)},computeDisplayToWorld:function(e,t,n,r){return e.getRenderWindow().getViews()[0].displayToWorld(t,n,r,e)}},Gh={States:{IS_START:0,IS_NONE:0,IS_ROTATE:1,IS_PAN:2,IS_SPIN:3,IS_DOLLY:4,IS_CAMERA_POSE:11,IS_WINDOW_LEVEL:1024,IS_SLICE:1025}};const{States:zh}=Gh,Wh={Rotate:zh.IS_ROTATE,Pan:zh.IS_PAN,Spin:zh.IS_SPIN,Dolly:zh.IS_DOLLY,CameraPose:zh.IS_CAMERA_POSE,WindowLevel:zh.IS_WINDOW_LEVEL,Slice:zh.IS_SLICE};function Hh(e,t){t.classHierarchy.push("vtkInteractorStyle"),Object.keys(Wh).forEach((n=>{Wt.event(e,t,`Start${n}Event`),e[`start${n}`]=()=>{t.state===zh.IS_NONE&&(t.state=Wh[n],t._interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:"StartInteractionEvent"}),e[`invokeStart${n}Event`]({type:`Start${n}Event`}))},Wt.event(e,t,`End${n}Event`),e[`end${n}`]=()=>{t.state===Wh[n]&&(t.state=zh.IS_NONE,t._interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:"EndInteractionEvent"}),e[`invokeEnd${n}Event`]({type:`End${n}Event`}),t._interactor.render())}})),t.getRenderer=e=>t.focusedRenderer||e.pokedRenderer,e.handleKeyPress=e=>{const n=t._interactor;let r=null;switch(e.key){case"r":case"R":t.getRenderer(e).resetCamera(),n.render();break;case"w":case"W":r=t.getRenderer(e).getActors(),r.forEach((e=>{const t=e.getProperty();t.setRepresentationToWireframe&&t.setRepresentationToWireframe()})),n.render();break;case"s":case"S":r=t.getRenderer(e).getActors(),r.forEach((e=>{const t=e.getProperty();t.setRepresentationToSurface&&t.setRepresentationToSurface()})),n.render();break;case"v":case"V":r=t.getRenderer(e).getActors(),r.forEach((e=>{const t=e.getProperty();t.setRepresentationToPoints&&t.setRepresentationToPoints()})),n.render()}}}const jh={state:zh.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function $h(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,jh,n),Uh.extend(e,t,n),Wt.setGet(e,t,["focusedRenderer"]),Hh(e,t)}var Kh={newInstance:Wt.newInstance($h,"vtkInteractorStyle"),extend:$h,...Gh};const{States:qh}=Gh;function Xh(e,t){t.classHierarchy.push("vtkInteractorStyleTrackballCamera"),e.handleMouseMove=n=>{const r=n.position,o=t.getRenderer(n);switch(t.state){case qh.IS_ROTATE:e.handleMouseRotate(o,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case qh.IS_PAN:e.handleMousePan(o,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case qh.IS_DOLLY:e.handleMouseDolly(o,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case qh.IS_SPIN:e.handleMouseSpin(o,r),e.invokeInteractionEvent({type:"InteractionEvent"})}t.previousPosition=r},e.handleButton3D=n=>{!n||!n.pressed||n.device!==vh.RightController||n.input!==bh.Trigger&&n.input!==bh.TrackPad?!n||n.pressed||n.device!==vh.RightController||n.input!==bh.Trigger&&n.input!==bh.TrackPad||t.state!==qh.IS_CAMERA_POSE||e.endCameraPose():e.startCameraPose()},e.handleMove3D=n=>{t.state===qh.IS_CAMERA_POSE&&e.updateCameraPose(n)},e.updateCameraPose=e=>{const n=t.getRenderer(e).getActiveCamera(),r=n.getPhysicalTranslation(),o=.025*n.getPhysicalScale(),a=n.physicalOrientationToWorldDirection([e.orientation.x,e.orientation.y,e.orientation.z,e.orientation.w]);n.setPhysicalTranslation(r[0]+a[0]*o,r[1]+a[1]*o,r[2]+a[2]*o)},e.handleLeftButtonPress=n=>{const r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=()=>{switch(t.state){case qh.IS_DOLLY:e.endDolly();break;case qh.IS_PAN:e.endPan();break;case qh.IS_SPIN:e.endSpin();break;case qh.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=()=>{e.startDolly()},e.handleEndMouseWheel=()=>{e.endDolly()},e.handleStartPinch=n=>{t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=()=>{e.endDolly()},e.handleStartRotate=n=>{t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=()=>{e.endRotate()},e.handleStartPan=n=>{t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=()=>{e.endPan()},e.handlePinch=n=>{e.dollyByFactor(t.getRenderer(n),n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=n=>{const r=t.getRenderer(n).getActiveCamera();let o=r.getFocalPoint();o=e.computeWorldToDisplay(t.getRenderer(n),o[0],o[1],o[2]);const a=o[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(t.getRenderer(n),o[0]+i[0]-s[0],o[1]+i[1]-s[1],a),c=e.computeDisplayToWorld(t.getRenderer(n),o[0],o[1],a),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],o=r.getFocalPoint();const d=r.getPosition();r.setFocalPoint(u[0]+o[0],u[1]+o[1],u[2]+o[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t._interactor.getLightFollowCamera()&&t.getRenderer(n).updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=e=>{const n=t.getRenderer(e).getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=(e,n)=>{if(!t.previousPosition)return;const r=t._interactor,o=n.x-t.previousPosition.x,a=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e);let s=-.1,l=-.1;i[0]&&i[1]&&(s=-20/i[1],l=-20/i[0]);const c=o*l*t.motionFactor,u=a*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange(),r.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=(e,n)=>{if(!t.previousPosition)return;const r=t._interactor,o=e.getActiveCamera(),a=r.getView().getViewportCenter(e),i=So(Math.atan2(t.previousPosition.y-a[1],t.previousPosition.x-a[0])),s=So(Math.atan2(n.y-a[1],n.x-a[0]))-i;Number.isNaN(s)||(o.roll(s),o.orthogonalizeViewUp())},e.handleMousePan=(n,r)=>{if(!t.previousPosition)return;const o=n.getActiveCamera();let a=o.getFocalPoint();a=e.computeWorldToDisplay(n,a[0],a[1],a[2]);const i=a[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],a=o.getFocalPoint();const u=o.getPosition();o.setFocalPoint(c[0]+a[0],c[1]+a[1],c[2]+a[2]),o.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t._interactor.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=(n,r)=>{if(!t.previousPosition)return;const o=r.y-t.previousPosition.y,a=t._interactor.getView().getViewportCenter(n),i=t.motionFactor*o/a[1];e.dollyByFactor(n,1.1**i)},e.handleMouseWheel=n=>{const r=1-n.spinY/t.zoomFactor;e.dollyByFactor(t.getRenderer(n),r)},e.dollyByFactor=(e,n)=>{if(Number.isNaN(n))return;const r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange()),t._interactor.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()}}const Yh={motionFactor:10,zoomFactor:10};function Qh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yh,n),Kh.extend(e,t,n),Wt.setGet(e,t,["motionFactor","zoomFactor"]),Xh(e,t)}var Zh={newInstance:Wt.newInstance(Qh,"vtkInteractorStyleTrackballCamera"),extend:Qh};function Jh(e){return e}function ev(e){return null===e||"null"===e?null:"true"===e||"false"!==e&&(void 0!==e&&"undefined"!==e?"["===e[0]&&"]"===e[e.length-1]?e.substring(1,e.length-1).split(",").map((e=>ev(e.trim()))):""===e||Number.isNaN(Number(e))?e:Number(e):void 0)}var tv=function(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.location.search;const n={},r=e?ev:Jh,o=(t||"").replace(/#.*/,"").replace("?","").split("&");return o.forEach((e=>{const[t,o]=e.split("=").map((e=>decodeURIComponent(e)));t&&(n[t]=!o||r(o))})),n};function nv(e,t){t.classHierarchy.push("vtkFramebuffer"),e.getBothMode=()=>t.context.FRAMEBUFFER,e.saveCurrentBindingsAndBuffers=t=>{const n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=e=>{if(!t.context)return void Ze("you must set the OpenGLRenderWindow before calling saveCurrentBindings");const n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t._openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=e=>{},e.restorePreviousBindingsAndBuffers=t=>{const n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=e=>{if(!t.context)return void Ze("you must set the OpenGLRenderWindow before calling restorePreviousBindings");const n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t._openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=e=>{},e.bind=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=n;null===r&&(r=t.context.FRAMEBUFFER),t.context.bindFramebuffer(r,t.glFramebuffer);for(let e=0;e{t.context?(t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n):Ze("you must set the OpenGLRenderWindow before calling create")},e.setColorBuffer=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const r=t.context;if(!r)return void Ze("you must set the OpenGLRenderWindow before calling setColorBuffer");let o=r.COLOR_ATTACHMENT0;if(n>0){if(!t._openGLRenderWindow.getWebgl2())return void Ze("Using multiple framebuffer attachments requires WebGL 2");o+=n}t.colorBuffers[n]=e,r.framebufferTexture2D(r.FRAMEBUFFER,o,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const n=t.context;if(!n)return void Ze("you must set the OpenGLRenderWindow before calling removeColorBuffer");let r=n.COLOR_ATTACHMENT0;if(e>0){if(!t._openGLRenderWindow.getWebgl2())return void Ze("Using multiple framebuffer attachments requires WebGL 2");r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0),t.colorBuffers=t.colorBuffers.splice(e,1)},e.setDepthBuffer=e=>{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else Ze("Attaching depth buffer textures to fbo requires WebGL 2");else Ze("you must set the OpenGLRenderWindow before calling setDepthBuffer")},e.removeDepthBuffer=()=>{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else Ze("Attaching depth buffer textures to framebuffers requires WebGL 2");else Ze("you must set the OpenGLRenderWindow before calling removeDepthBuffer")},e.getGLFramebuffer=()=>t.glFramebuffer,e.setOpenGLRenderWindow=n=>{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))},e.releaseGraphicsResources=()=>{t.glFramebuffer&&t.context.deleteFramebuffer(t.glFramebuffer)},e.getSize=()=>null==t.glFramebuffer?null:[t.glFramebuffer.width,t.glFramebuffer.height],e.populateFramebuffer=()=>{if(!t.context)return void Ze("you must set the OpenGLRenderWindow before calling populateFrameBuffer");e.bind();const n=t.context,r=Dd.newInstance();r.setOpenGLRenderWindow(t._openGLRenderWindow),r.setMinificationFilter(hd.LINEAR),r.setMagnificationFilter(hd.LINEAR),r.create2DFromRaw(t.glFramebuffer.width,t.glFramebuffer.height,4,ds.UNSIGNED_CHAR,null),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)},e.getColorTexture=()=>t.colorBuffers[0]}const rv={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function ov(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rv,n),ht(e,t),t.colorBuffers&&Ze("you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead."),t.colorBuffers=[],Ct(e,t,["colorBuffers"]),nv(e,t)}var av={newInstance:Mt(ov,"vtkFramebuffer"),extend:ov};function iv(e,t){t.classHierarchy.push("vtkRenderPass"),e.getOperation=()=>t.currentOperation,e.setCurrentOperation=e=>{t.currentOperation=e,t.currentTraverseOperation=`traverse${Wt.capitalize(t.currentOperation)}`},e.getTraverseOperation=()=>t.currentTraverseOperation,e.traverse=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t.deleted||(t._currentParent=r,t.preDelegateOperations.forEach((t=>{e.setCurrentOperation(t),n.traverse(e)})),t.delegates.forEach((t=>{t.traverse(n,e)})),t.postDelegateOperations.forEach((t=>{e.setCurrentOperation(t),n.traverse(e)})))}}const sv={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function lv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,sv,n),Wt.obj(e,t),Wt.get(e,t,["currentOperation"]),Wt.setGet(e,t,["delegates","_currentParent","preDelegateOperations","postDelegateOperations"]),Wt.moveToProtected(e,t,["currentParent"]),iv(e,t)}var cv={newInstance:Wt.newInstance(lv,"vtkRenderPass"),extend:lv};const{Representation:uv}=os,{vtkErrorMacro:dv}=Wt;function pv(e){const t=id.substitute(e.Fragment,"//VTK::RenderPassFragmentShader::Impl","\n float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);\n gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);\n gl_FragData[1].r = weight;\n ",!1);e.Fragment=t.result}function fv(e,t){t.classHierarchy.push("vtkOpenGLOrderIndependentTranslucentPass"),e.createVertexBuffer=()=>{const e=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),n=new Float32Array([0,0,1,0,0,1,1,1]),r=new Uint16Array([4,0,1,3,2]),o=ws.newInstance({numberOfComponents:3,values:e});o.setName("points");const a=ws.newInstance({numberOfComponents:2,values:n});a.setName("tcoords");const i=ws.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(i,"polys",uv.SURFACE,{points:o,tcoords:a,cellOffset:0}),t.VBOBuildTime.modified()},e.createFramebuffer=e=>{const n=e.getSize(),r=e.getContext();t.framebuffer=av.newInstance(),t.framebuffer.setOpenGLRenderWindow(e),t.framebuffer.create(...n),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind(),t.translucentRGBATexture=Dd.newInstance(),t.translucentRGBATexture.setInternalFormat(r.RGBA16F),t.translucentRGBATexture.setFormat(r.RGBA),t.translucentRGBATexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRGBATexture.setOpenGLRenderWindow(e),t.translucentRGBATexture.create2DFromRaw(n[0],n[1],4,"Float32Array",null),t.translucentRTexture=Dd.newInstance(),t.translucentRTexture.setInternalFormat(r.R16F),t.translucentRTexture.setFormat(r.RED),t.translucentRTexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRTexture.setOpenGLRenderWindow(e),t.translucentRTexture.create2DFromRaw(n[0],n[1],1,"Float32Array",null),t.translucentZTexture=Dd.newInstance(),t.translucentZTexture.setOpenGLRenderWindow(e),t.translucentZTexture.createDepthFromRaw(n[0],n[1],"Float32Array",null),t.framebuffer.setColorBuffer(t.translucentRGBATexture,0),t.framebuffer.setColorBuffer(t.translucentRTexture,1),t.framebuffer.setDepthBuffer(t.translucentZTexture)},e.createCopyShader=e=>{t.copyShader=e.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","attribute vec2 tcoordTC;","varying vec2 tcoord;","void main() { tcoord = tcoordTC; gl_Position = vertexDC; }"].join("\n"),"//VTK::System::Dec\n\nin vec2 tcoord;\n\nuniform sampler2D translucentRTexture;\nuniform sampler2D translucentRGBATexture;\n\n// the output of this shader\n//VTK::Output::Dec\n\nvoid main()\n{\n vec4 t1Color = texture(translucentRGBATexture, tcoord);\n float t2Color = texture(translucentRTexture, tcoord).r;\n gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);\n}\n","")},e.createVBO=n=>{const r=n.getContext();t.tris.setOpenGLRenderWindow(n),e.createVertexBuffer();const o=t.copyShader;t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),"vertexDC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),r.FLOAT,3,r.FALSE)||dv("Error setting vertexDC in copy shader VAO."),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),"tcoordTC",t.tris.getCABO().getTCoordOffset(),t.tris.getCABO().getStride(),r.FLOAT,2,r.FALSE)||dv("Error setting vertexDC in copy shader VAO.")},e.traverse=(n,r,o)=>{if(t.deleted)return;const a=n.getSize(),i=n.getContext();if(t._supported=!1,r.getSelector()||!i||!n.getWebgl2()||!i.getExtension("EXT_color_buffer_half_float")&&!i.getExtension("EXT_color_buffer_float"))return e.setCurrentOperation("translucentPass"),void r.traverse(e);if(t._supported=!0,null===t.framebuffer)e.createFramebuffer(n);else{const r=t.framebuffer.getSize();null===r||r[0]!==a[0]||r[1]!==a[1]?(t.framebuffer.releaseGraphicsResources(),t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRTexture.releaseGraphicsResources(n),t.translucentZTexture.releaseGraphicsResources(n),e.createFramebuffer(n)):(t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind())}i.drawBuffers([i.COLOR_ATTACHMENT0]),i.clearBufferfv(i.COLOR,0,[0,0,0,0]),i.clearBufferfv(i.DEPTH,0,[1]),i.colorMask(!1,!1,!1,!1),o.getOpaqueActorCount()>0&&(o.setCurrentOperation("opaqueZBufferPass"),r.traverse(o)),i.colorMask(!0,!0,!0,!0),i.drawBuffers([i.COLOR_ATTACHMENT0,i.COLOR_ATTACHMENT1]),i.viewport(0,0,a[0],a[1]),i.scissor(0,0,a[0],a[1]),i.clearBufferfv(i.COLOR,0,[0,0,0,1]),i.clearBufferfv(i.COLOR,1,[0,0,0,0]),i.enable(i.DEPTH_TEST),i.enable(i.BLEND),i.blendFuncSeparate(i.ONE,i.ONE,i.ZERO,i.ONE_MINUS_SRC_ALPHA),e.setCurrentOperation("translucentPass"),r.traverse(e),i.drawBuffers([i.NONE]),t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader?e.createCopyShader(n):n.getShaderCache().readyShaderProgram(t.copyShader),t.copyVAO||(t.copyVAO=ud.newInstance(),t.copyVAO.setOpenGLRenderWindow(n)),t.copyVAO.bind(),t.VBOBuildTime.getMTime()t._supported?pv:null,e.releaseGraphicsResources=n=>{t.framebuffer&&(t.framebuffer.releaseGraphicsResources(n),t.framebuffer=null),t.translucentRGBATexture&&(t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRGBATexture=null),t.translucentRTexture&&(t.translucentRTexture.releaseGraphicsResources(n),t.translucentRTexture=null),t.translucentZTexture&&(t.translucentZTexture.releaseGraphicsResources(n),t.translucentZTexture=null),t.copyVAO&&(t.copyVAO.releaseGraphicsResources(n),t.copyVAO=null),t.copyShader&&(t.copyShader.releaseGraphicsResources(n),t.copyShader=null),t.tris&&(t.tris.releaseGraphicsResources(n),t.tris=null),e.modified()}}const gv={framebuffer:null,copyShader:null,tris:null};function mv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gv,n),cv.extend(e,t,n),t.VBOBuildTime={},Wt.obj(t.VBOBuildTime,{mtime:0}),t.tris=md.newInstance(),Wt.get(e,t,["framebuffer"]),fv(e,t)}var hv={newInstance:Wt.newInstance(mv,"vtkOpenGLOrderIndependentTranslucentPass"),extend:mv};function vv(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(t.deleted)return;t._currentParent=r,e.setCurrentOperation("buildPass"),n.traverse(e);const o=n.getRenderable().getNumberOfLayers(),a=n.getRenderable().getRenderersByReference();for(let r=0;r0||t.translucentActorCount>0)&&t.volumeCount>0||t.depthRequested){const r=n.getFramebufferSize();null===t.framebuffer&&(t.framebuffer=av.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();const o=t.framebuffer.getSize();null!==o&&o[0]===r[0]&&o[1]===r[1]||(t.framebuffer.create(r[0],r[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation("zBufferPass"),s.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation("cameraPass"),s.traverse(e),t.opaqueActorCount>0&&(e.setCurrentOperation("opaquePass"),s.traverse(e)),t.translucentActorCount>0&&(t.translucentPass||(t.translucentPass=hv.newInstance()),t.translucentPass.traverse(n,s,e)),t.volumeCount>0&&(e.setCurrentOperation("volumePass"),s.traverse(e)),t.overlayActorCount>0&&(e.setCurrentOperation("overlayPass"),s.traverse(e))}}},e.getZBufferTexture=()=>t.framebuffer?t.framebuffer.getColorTexture():null,e.requestDepth=()=>{t.depthRequested=!0},e.incrementOpaqueActorCount=()=>t.opaqueActorCount++,e.incrementTranslucentActorCount=()=>t.translucentActorCount++,e.incrementVolumeCount=()=>t.volumeCount++,e.incrementOverlayActorCount=()=>t.overlayActorCount++}const bv={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function yv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bv,n),cv.extend(e,t,n),Wt.get(e,t,["framebuffer","opaqueActorCount","translucentActorCount","volumeCount"]),vv(e,t)}var Tv={newInstance:Wt.newInstance(yv,"vtkForwardPass"),extend:yv};const{FieldAssociations:xv}=Ys;function Sv(e,t){t.classHierarchy.push("vtkHardwareSelector"),e.getSourceDataAsync=async(e,t,n,r,o)=>{},e.selectAsync=async(t,n,r,o,a)=>{const i=await e.getSourceDataAsync(t,n,r,o,a);return i?i.generateSelection(n,r,o,a):[]}}const Cv={fieldAssociation:xv.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function Av(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cv,n),Wt.obj(e,t),Wt.setGet(e,t,["fieldAssociation","captureZValues"]),Sv(e,t)}var wv={newInstance:Wt.newInstance(Av,"vtkHardwareSelector"),extend:Av};function Pv(e,t){t.classHierarchy.push("vtkSelectionNode"),e.getBounds=()=>t.points.getBounds()}const Iv={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Ov(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Iv,n),Wt.obj(e,t),t.properties={},Wt.setGet(e,t,["contentType","fieldType","properties","selectionList"]),Pv(e,t)}var Ev={newInstance:Wt.newInstance(Ov,"vtkSelectionNode"),extend:Ov,SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};const{PassTypes:Mv}=_l,{SelectionContent:Rv,SelectionField:Dv}=Ev,{FieldAssociations:Bv}=Ys,{vtkErrorMacro:Lv}=Wt;function Vv(e){return`${e.propID} ${e.compositeID}`}function _v(e,t,n,r){return n?n[4*(t*(r[2]-r[0]+1)+e)+3]:0}function Nv(e,t,n,r){if(!n)return 0;const o=4*(t*(r[2]-r[0]+1)+e),a=n[o],i=n[o+1];return 256*(256*n[o+2]+i)+a}function Fv(e,t){let n=t;return n<<=24,n|=e,n}function kv(e,t,n,r){const o=n<0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]e.area[2]||t[1]e.area[3])return null;const n=[t[0]-e.area[0],t[1]-e.area[1]],o=Nv(n[0],n[1],e.pixBuffer[Mv.ACTOR_PASS],e.area);if(o<=0||o-1>=e.props.length)return null;const a={valid:!0};a.propID=o-1,a.prop=e.props[a.propID];let i=Nv(n[0],n[1],e.pixBuffer[Mv.COMPOSITE_INDEX_PASS],e.area);if((i<0||i>16777215)&&(i=0),a.compositeID=i-1,e.captureZValues){const r=4*(n[1]*(e.area[2]-e.area[0]+1)+n[0]);a.zValue=(256*e.zBuffer[r]+e.zBuffer[r+1])/65535,a.displayPosition=t}if(e.pixBuffer[Mv.ID_LOW24]&&0===_v(n[0],n[1],e.pixBuffer[Mv.ID_LOW24],e.area))return a;const s=Nv(n[0],n[1],e.pixBuffer[Mv.ID_LOW24],e.area),l=Nv(n[0],n[1],e.pixBuffer[Mv.ID_HIGH24],e.area);return a.attributeID=Fv(s,l),a}const a=[t[0],t[1]],i=[0,0];let s=kv(e,t,0,r);if(s&&s.valid)return s;for(let t=1;tt?a[1]-t:0;n<=a[1]+t;++n){if(i[1]=n,a[0]>=t&&(i[0]=a[0]-t,s=kv(e,i,0,r),s&&s.valid))return s;if(i[0]=a[0]+t,s=kv(e,i,0,r),s&&s.valid)return s}for(let n=a[0]>=t?a[0]-(t-1):0;n<=a[0]+(t-1);++n){if(i[0]=n,a[1]>=t&&(i[1]=a[1]-t,s=kv(e,i,0,r),s&&s.valid))return s;if(i[1]=a[1]+t,s=kv(e,i,0,r),s&&s.valid)return s}}return r[0]=t[0],r[1]=t[1],null}function Uv(e,t,n,r,o){const a=[];let i=0;return t.forEach(((t,s)=>{const l=Ev.newInstance();switch(l.setContentType(Rv.INDICES),e){case Bv.FIELD_ASSOCIATION_CELLS:l.setFieldType(Dv.CELL);break;case Bv.FIELD_ASSOCIATION_POINTS:l.setFieldType(Dv.POINT);break;default:Lv("Unknown field association")}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().attributeID=t.info.attributeID,l.getProperties().pixelCount=t.pixelCount,n&&(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=o.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),a[i]=l,i++})),a}function Gv(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t<=l;t++)for(let n=a;n<=s;n++){const r=kv(e,[n,t],0,u);if(r&&r.valid){const t=Vv(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&&r.zValue{t.rawPixBuffer=[],t.pixBuffer=[],t.zBuffer=null},e.beginSelection=()=>{t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer),t.maxAttributeId=0;const n=t._openGLRenderWindow.getSize();if(t.framebuffer){t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers();const e=t.framebuffer.getSize();e&&e[0]===n[0]&&e[1]===n[1]?t.framebuffer.bind():(t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer())}else t.framebuffer=av.newInstance(),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer();if(t._openGLRenderer.clear(),t._openGLRenderer.setSelector(e),t.hitProps={},t.propPixels={},t.props=[],e.releasePixBuffers(),t.fieldAssociation===Bv.FIELD_ASSOCIATION_POINTS){const e=t._openGLRenderWindow.getContext(),n=e.isEnabled(e.BLEND);e.disable(e.BLEND),t._openGLRenderWindow.traverseAllPasses(),n&&e.enable(e.BLEND)}},e.endSelection=()=>{t.hitProps={},t._openGLRenderer.setSelector(null),t.framebuffer.restorePreviousBindingsAndBuffers()},e.preCapturePass=()=>{const e=t._openGLRenderWindow.getContext();t.originalBlending=e.isEnabled(e.BLEND),e.disable(e.BLEND)},e.postCapturePass=()=>{const e=t._openGLRenderWindow.getContext();t.originalBlending&&e.enable(e.BLEND)},e.select=()=>{let n=null;return e.captureBuffers()&&(n=e.generateSelection(t.area[0],t.area[1],t.area[2],t.area[3]),e.releasePixBuffers()),n},e.getSourceDataAsync=async(n,r,o,a,i)=>{if(t._renderer=n,void 0===r){const n=t._openGLRenderWindow.getSize();e.setArea(0,0,n[0]-1,n[1]-1)}else e.setArea(r,o,a,i);if(!e.captureBuffers())return!1;const s={area:[...t.area],pixBuffer:[...t.pixBuffer],captureZValues:t.captureZValues,zBuffer:t.zBuffer,props:[...t.props],fieldAssociation:t.fieldAssociation,renderer:n,openGLRenderWindow:t._openGLRenderWindow,generateSelection:function(){for(var e=arguments.length,t=new Array(e),n=0;n{if(!t._renderer||!t._openGLRenderWindow)return Lv("Renderer and view must be set before calling Select."),!1;t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer),t._openGLRenderWindow.getRenderable().preRender(),e.invokeEvent({type:"StartEvent"}),t.originalBackground=t._renderer.getBackgroundByReference(),t._renderer.setBackground(0,0,0,0);const n=t._openGLRenderWindow.getRenderPasses();e.beginSelection();const r=[];for(t.currentPass=Mv.MIN_KNOWN_PASS;t.currentPass<=Mv.MAX_KNOWN_PASS;t.currentPass++)e.passRequired(t.currentPass)&&(e.preCapturePass(t.currentPass),t.captureZValues&&t.currentPass===Mv.ACTOR_PASS&&"function"==typeof n[0].requestDepth&&"function"==typeof n[0].getFramebuffer?(n[0].requestDepth(),t._openGLRenderWindow.traverseAllPasses()):t._openGLRenderWindow.traverseAllPasses(),e.postCapturePass(t.currentPass),e.savePixelBuffer(t.currentPass),r.push(t.currentPass));return r.forEach((n=>{t.currentPass=n,e.processPixelBuffers()})),t.currentPass=Mv.MAX_KNOWN_PASS,e.endSelection(),t._renderer.setBackground(t.originalBackground),e.invokeEvent({type:"EndEvent"}),!0},e.processPixelBuffers=()=>{t.props.forEach(((n,r)=>{e.isPropHit(r)&&n.processSelectorPixelBuffers(e,t.propPixels[r])}))},e.passRequired=e=>{if(e===Mv.ID_HIGH24){if(t.fieldAssociation===Bv.FIELD_ASSOCIATION_POINTS)return t.maximumPointId>16777215;if(t.fieldAssociation===Bv.FIELD_ASSOCIATION_CELLS)return t.maximumCellId>16777215}return!0},e.savePixelBuffer=n=>{if(t.pixBuffer[n]=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),!t.rawPixBuffer[n]){const e=(t.area[2]-t.area[0]+1)*(t.area[3]-t.area[1]+1)*4;t.rawPixBuffer[n]=new Uint8Array(e),t.rawPixBuffer[n].set(t.pixBuffer[n])}if(n===Mv.ACTOR_PASS){if(t.captureZValues){const e=t._openGLRenderWindow.getRenderPasses();if("function"==typeof e[0].requestDepth&&"function"==typeof e[0].getFramebuffer){const n=e[0].getFramebuffer();n.saveCurrentBindingsAndBuffers(),n.bind(),t.zBuffer=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),n.restorePreviousBindingsAndBuffers()}}e.buildPropHitList(t.rawPixBuffer[n])}},e.buildPropHitList=e=>{let n=0;for(let r=0;r<=t.area[3]-t.area[1];r++)for(let o=0;o<=t.area[2]-t.area[0];o++){let a=Nv(o,r,e,t.area);a>0&&(a--,a in t.hitProps||(t.hitProps[a]=!0,t.propPixels[a]=[]),t.propPixels[a].push(4*n)),++n}},e.renderProp=n=>{t.currentPass===Mv.ACTOR_PASS&&(e.setPropColorValueFromInt(t.props.length+1),t.props.push(n))},e.renderCompositeIndex=n=>{t.currentPass===Mv.COMPOSITE_INDEX_PASS&&e.setPropColorValueFromInt(n+1)},e.renderAttributeId=e=>{e<0||(t.maxAttributeId=e>t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=e=>Wt.enumToString(Mv,e),e.isPropHit=e=>Boolean(t.hitProps[e]),e.setPropColorValueFromInt=e=>{t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=(n,r,o)=>{const a=r<0?0:r;if(0===a){if(o[0]=n[0],o[1]=n[1],n[0]t.area[2]||n[1]t.area[3])return null;const e=[n[0]-t.area[0],n[1]-t.area[1]],r=Nv(e[0],e[1],t.pixBuffer[Mv.ACTOR_PASS],t.area);if(r<=0||r-1>=t.props.length)return null;const a={valid:!0};a.propID=r-1,a.prop=t.props[a.propID];let i=Nv(e[0],e[1],t.pixBuffer[Mv.COMPOSITE_INDEX_PASS],t.area);if((i<0||i>16777215)&&(i=0),a.compositeID=i-1,t.captureZValues){const r=4*(e[1]*(t.area[2]-t.area[0]+1)+e[0]);a.zValue=(256*t.zBuffer[r]+t.zBuffer[r+1])/65535,a.displayPosition=n}if(t.pixBuffer[Mv.ID_LOW24]&&0===_v(e[0],e[1],t.pixBuffer[Mv.ID_LOW24],t.area))return a;const s=Nv(e[0],e[1],t.pixBuffer[Mv.ID_LOW24],t.area),l=Nv(e[0],e[1],t.pixBuffer[Mv.ID_HIGH24],t.area);return a.attributeID=Fv(s,l),a}const i=[n[0],n[1]],s=[0,0];let l=e.getPixelInformation(n,0,o);if(l&&l.valid)return l;for(let t=1;tt?i[1]-t:0;n<=i[1]+t;++n){if(s[1]=n,i[0]>=t&&(s[0]=i[0]-t,l=e.getPixelInformation(s,0,o),l&&l.valid))return l;if(s[0]=i[0]+t,l=e.getPixelInformation(s,0,o),l&&l.valid)return l}for(let n=i[0]>=t?i[0]-(t-1):0;n<=i[0]+(t-1);++n){if(s[0]=n,i[1]>=t&&(s[1]=i[1]-t,l=e.getPixelInformation(s,0,o),l&&l.valid))return l;if(s[1]=i[1]+t,l=e.getPixelInformation(s,0,o),l&&l.valid)return l}}return o[0]=n[0],o[1]=n[1],null},e.generateSelection=(n,r,o,a)=>{const i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=Math.floor(a),u=new Map,d=[0,0];for(let n=s;n<=c;n++)for(let r=i;r<=l;r++){const o=[r,n],a=e.getPixelInformation(o,0,d);if(a&&a.valid){const e=Vv(a);if(u.has(e)){const n=u.get(e);n.pixelCount++,t.captureZValues&&a.zValuet.rawPixBuffer[e],e.getPixelBuffer=e=>t.pixBuffer[e],e.attach=(e,n)=>{t._openGLRenderWindow=e,t._renderer=n};const n=e.setArea;e.setArea=function(){return!!n(...arguments)&&(t.area[0]=Math.floor(t.area[0]),t.area[1]=Math.floor(t.area[1]),t.area[2]=Math.floor(t.area[2]),t.area[3]=Math.floor(t.area[3]),!0)}}const Wv={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function Hv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wv,n),wv.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),Wt.setGetArray(e,t,["area"],4),Wt.setGet(e,t,["_renderer","currentPass","_openGLRenderWindow","maximumPointId","maximumCellId"]),Wt.setGetArray(e,t,["propColorValue"],3),Wt.moveToProtected(e,t,["renderer","openGLRenderWindow"]),Wt.event(e,t,"event"),zv(e,t)}var jv={newInstance:Wt.newInstance(Hv,"vtkOpenGLHardwareSelector"),extend:Hv,..._l},$v=n(594),Kv=n.n($v);const qv=["lastShaderProgramBound","context","_openGLRenderWindow"];function Xv(e,t){t.classHierarchy.push("vtkShaderCache"),e.replaceShaderValues=(e,n,r)=>{let o=n;r.length>0&&(o=id.substitute(o,"VSOut","GSOut").result);const a=t._openGLRenderWindow.getWebgl2();let i="\n",s="#version 100\n";a?s="#version 300 es\n#define attribute in\n#define textureCube texture\n#define texture2D texture\n#define textureCubeLod textureLod\n#define texture2DLod textureLod\n":(t.context.getExtension("OES_standard_derivatives"),t.context.getExtension("EXT_frag_depth")&&(i="#extension GL_EXT_frag_depth : enable\n"),t.context.getExtension("EXT_shader_texture_lod")&&(i+="#extension GL_EXT_shader_texture_lod : enable\n#define textureCubeLod textureCubeLodEXT\n#define texture2DLod texture2DLodEXT")),o=id.substitute(o,"//VTK::System::Dec",[`${s}\n`,a?"":"#extension GL_OES_standard_derivatives : enable\n",i,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;let l=id.substitute(e,"//VTK::System::Dec",[`${s}\n`,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;if(a){l=id.substitute(l,"varying","out").result,o=id.substitute(o,"varying","in").result;let e="",t=0;for(;o.includes(`gl_FragData[${t}]`);)o=id.substitute(o,`gl_FragData\\[${t}\\]`,`fragOutput${t}`).result,e+=`layout(location = ${t}) out vec4 fragOutput${t};\n`,t++;o=id.substitute(o,"//VTK::Output::Dec",e).result}return{VSSource:l,FSSource:o,GSSource:id.substitute(r,"//VTK::System::Dec",s).result}},e.readyShaderProgramArray=(t,n,r)=>{const o=e.replaceShaderValues(t,n,r),a=e.getShaderProgram(o.VSSource,o.FSSource,o.GSSource);return e.readyShaderProgram(a)},e.readyShaderProgram=t=>t&&(t.getCompiled()||t.compileShader())&&e.bindShaderProgram(t)?t:null,e.getShaderProgram=(e,n,r)=>{const o=`${e}${n}${r}`,a=Kv().hash(o);if(!(a in t.shaderPrograms)){const o=id.newInstance();return o.setContext(t.context),o.getVertexShader().setSource(e),o.getFragmentShader().setSource(n),r&&o.getGeometryShader().setSource(r),o.setMd5Hash(a),t.shaderPrograms[a]=o,o}return t.shaderPrograms[a]},e.releaseGraphicsResources=n=>{e.releaseCurrentShaderProgram(),Object.keys(t.shaderPrograms).map((e=>t.shaderPrograms[e])).forEach((e=>e.cleanup())),t.shaderPrograms={}},e.releaseCurrentShaderProgram=()=>{t.lastShaderProgramBound&&(t.lastShaderProgramBound.cleanup(),t.lastShaderProgramBound=null)},e.bindShaderProgram=e=>(t.lastShaderProgramBound===e||(t.lastShaderProgramBound&&t.lastShaderProgramBound.release(),e.bind(),t.lastShaderProgramBound=e),1)}const Yv={lastShaderProgramBound:null,shaderPrograms:null,context:null};function Qv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yv,n),t.shaderPrograms={},Wt.obj(e,t),Wt.setGet(e,t,qv),Wt.moveToProtected(e,t,["openGLRenderWindow"]),Xv(e,t)}var Zv={newInstance:Wt.newInstance(Qv,"vtkShaderCache"),extend:Qv};const{vtkErrorMacro:Jv}=Wt;function eb(e,t){t.classHierarchy.push("vtkOpenGLTextureUnitManager"),e.deleteTable=()=>{for(let e=0;e{if(t.context!==n){if(0!==t.context&&e.deleteTable(),t.context=n,t.context){t.numberOfTextureUnits=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS);for(let e=0;e{for(let n=0;ne.isAllocated(n)?-1:(t.textureUnits[n]=!0,n),e.isAllocated=e=>t.textureUnits[e],e.free=e=>{t.textureUnits[e]=!1},e.freeAll=()=>{for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tb,n),Wt.obj(e,t),t.textureUnits=[],Wt.get(e,t,["numberOfTextureUnits"]),Wt.setGet(e,t,["context"]),eb(e,t)}var rb={newInstance:Wt.newInstance(nb,"vtkOpenGLTextureUnitManager"),extend:nb};function ob(e,t){t.classHierarchy.push("vtkRenderWindowViewNode"),e.getViewNodeFactory=()=>null,e.getAspectRatio=()=>t.size[0]/t.size[1],e.getAspectRatioForRenderer=e=>{const n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=(t,n,r)=>{const o=r.getViewportByReference(),a=e.getFramebufferSize();return o[0]*a[0]<=t&&o[2]*a[0]>=t&&o[1]*a[1]<=n&&o[3]*a[1]>=n},e.getViewportSize=t=>{const n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=t=>{const n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=(t,n,r)=>{const o=e.getFramebufferSize();return[t/o[0],n/o[1],r]},e.normalizedDisplayToDisplay=(t,n,r)=>{const o=e.getFramebufferSize();return[t*o[0],n*o[1],r]},e.worldToView=(e,t,n,r)=>r.worldToView(e,t,n),e.viewToWorld=(e,t,n,r)=>r.viewToWorld(e,t,n),e.worldToDisplay=(t,n,r,o)=>{const a=o.worldToView(t,n,r),i=e.getViewportSize(o),s=o.viewToProjection(a[0],a[1],a[2],i[0]/i[1]),l=o.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=(t,n,r,o)=>{const a=e.displayToNormalizedDisplay(t,n,r),i=o.normalizedDisplayToProjection(a[0],a[1],a[2]),s=e.getViewportSize(o),l=o.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return o.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=(t,n,r,o)=>{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-a[0]-.5,i[1]-a[1]-.5,r]},e.viewportToNormalizedViewport=(t,n,r,o)=>{const a=e.getViewportSize(o);return a&&0!==a[0]&&0!==a[1]?[t/(a[0]-1),n/(a[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=(t,n,r,o)=>{const a=e.getViewportSize(o);return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=(t,n,r)=>[t,e.getFramebufferSize()[1]-n-1,r],e.viewportToNormalizedDisplay=(t,n,r,o)=>{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=t+a[0]+.5,s=n+a[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getComputedDevicePixelRatio=()=>t.size[0]/e.getContainerSize()[0],e.getContainerSize=()=>{Wt.vtkErrorMacro("not implemented")},e.getPixelData=(e,t,n,r)=>{Wt.vtkErrorMacro("not implemented")},e.createSelector=()=>{Wt.vtkErrorMacro("not implemented")}}const ab={size:void 0,selector:void 0};function ib(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ab,n),t.size||(t.size=[300,300]),Wt.getArray(e,t,["size"],2),Wt.get(e,t,["selector"]),Xt.extend(e,t,n),ob(e,t)}var sb={newInstance:Wt.newInstance(ib,"vtkRenderWindowViewNode"),extend:ib};const{vtkDebugMacro:lb,vtkErrorMacro:cb}=Wt,ub={position:"absolute",top:0,left:0,width:"100%",height:"100%"},db=["activateTexture","deactivateTexture","disableCullFace","enableCullFace","get3DContext","getActiveFramebuffer","getContext","getDefaultTextureByteSize","getDefaultTextureInternalFormat","getDefaultToWebgl2","getGLInformations","getGraphicsMemoryInfo","getGraphicsResourceForObject","getHardwareMaximumLineWidth","getPixelData","getShaderCache","getTextureUnitForTexture","getTextureUnitManager","getWebgl2","makeCurrent","releaseGraphicsResources","registerGraphicsResourceUser","unregisterGraphicsResourceUser","restoreContext","setActiveFramebuffer","setContext","setDefaultToWebgl2","setGraphicsResourceForObject"];function pb(e,t,n){const r=e.createFramebuffer(),o=e.createTexture();e.bindTexture(e.TEXTURE_2D,o),e.texImage2D(e.TEXTURE_2D,0,t,2,2,0,t,n,null),e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,o,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindTexture(e.TEXTURE_2D,null),a===e.FRAMEBUFFER_COMPLETE}let fb=0;const gb=[];function mb(e){e.preventDefault()}function hb(e,t){let n;function r(){return n||(n=function(){const e=new Map,t={apply:(t,n,r)=>e.has(r[0])?e.get(r[0]):t.apply(n,r)},n=Object.create(null);return n.getParameter=(e,n,r,o)=>new Proxy(o.bind(e),t),n.depthMask=(t,n,r,o)=>{return new Proxy(o.bind(t),(a=t.DEPTH_WRITEMASK,{apply:(t,n,r)=>(e.set(a,r[0]),t.apply(n,r))}));var a},{get(e,t,r){if("__getUnderlyingContext"===t)return()=>e;let o=Reflect.get(e,t,e);o instanceof Function&&(o=o.bind(e));const a=n[t];return a?a(e,t,r,o):o}}}()),n}t.classHierarchy.push("vtkOpenGLRenderWindow"),e.getViewNodeFactory=()=>t.myFactory,t.canvas.addEventListener("webglcontextlost",mb,!1),t.canvas.addEventListener("webglcontextrestored",e.restoreContext,!1);const o=[0,0];let a;e.onModified((function(){t.renderable&&(t.size[0]===o[0]&&t.size[1]===o[1]||(o[0]=t.size[0],o[1]=t.size[1],t.canvas.setAttribute("width",t.size[0]),t.canvas.setAttribute("height",t.size[1]))),t.viewStream&&t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?"none":"block",t.el&&(t.el.style.cursor=t.cursorVisibility?t.cursor:"none"),t.containerSize=null})),e.buildPass=n=>{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.addMissingNodes(t.renderable.getChildRenderWindowsByReference()),e.removeUnusedNodes(),e.initialize(),t.children.forEach((t=>{t.setOpenGLRenderWindow?.(e)}))}},e.initialize=()=>{if(!t.initialized){if(t.rootOpenGLRenderWindow=e.getLastAncestorOfType("vtkOpenGLRenderWindow"),t.rootOpenGLRenderWindow)t.context2D=e.get2DContext();else{t.context=e.get3DContext(),e.resizeFromChildRenderWindows(),t.context&&(fb++,gb.forEach((e=>e(fb)))),t.textureUnitManager=rb.newInstance(),t.textureUnitManager.setContext(t.context),t.shaderCache.setContext(t.context);const n=t.context;n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA),n.depthFunc(n.LEQUAL),n.enable(n.BLEND)}t.initialized=!0}},e.makeCurrent=()=>{t.context.makeCurrent()},e.setContainer=n=>{t.el&&t.el!==n&&(t.canvas.parentNode!==t.el&&cb("Error: canvas parent node does not match container"),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)),t.el!==n&&(t.el=n,t.el&&(t.el.appendChild(t.canvas),t.useBackgroundImage&&t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=>t.el,e.getContainerSize=()=>{if(!t.containerSize&&t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=>{const e=t.activeFramebuffer?.getSize();return e||t.size},e.getPixelData=(e,n,r,o)=>{const a=new Uint8Array((r-e+1)*(o-n+1)*4);return t.context.readPixels(e,n,r-e+1,o-n+1,t.context.RGBA,t.context.UNSIGNED_BYTE,a),a},e.get3DContext=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:"high-performance"},n=null;const o="undefined"!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&&o&&(n=t.canvas.getContext("webgl2",e),n&&(t.webgl2=!0,lb("using webgl2"))),n||(lb("using webgl1"),n=t.canvas.getContext("webgl",e)||t.canvas.getContext("experimental-webgl",e)),new Proxy(n,r())},e.get2DContext=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t.canvas.getContext("2d",e)},e.restoreContext=()=>{const t=cv.newInstance();t.setCurrentOperation("Release"),t.traverse(e,null)},e.activateTexture=n=>{const r=t._textureResourceIds.get(n);if(void 0!==r)return void t.context.activeTexture(t.context.TEXTURE0+r);const o=e.getTextureUnitManager().allocate();o<0?cb("Hardware does not support the number of textures defined."):(t._textureResourceIds.set(n,o),t.context.activeTexture(t.context.TEXTURE0+o))},e.deactivateTexture=n=>{const r=t._textureResourceIds.get(n);void 0!==r&&(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=e=>{const n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureByteSize=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(t.webgl2)switch(e){case ds.CHAR:case ds.SIGNED_CHAR:case ds.UNSIGNED_CHAR:return 1;case n:case r:case ds.UNSIGNED_SHORT:case ds.SHORT:case ds.VOID:return 2;default:return 4}return 1},e.getDefaultTextureInternalFormat=function(e,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(t.webgl2)switch(e){case ds.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;default:return t.context.RGBA8}case r&&!o&&ds.UNSIGNED_SHORT:switch(n){case 1:return r.R16_EXT;case 2:return r.RG16_EXT;case 3:return r.RGB16_EXT;default:return r.RGBA16_EXT}case r&&!o&&ds.SHORT:switch(n){case 1:return r.R16_SNORM_EXT;case 2:return r.RG16_SNORM_EXT;case 3:return r.RGB16_SNORM_EXT;default:return r.RGBA16_SNORM_EXT}default:switch(n){case 1:return o?t.context.R16F:t.context.R32F;case 2:return o?t.context.RG16F:t.context.RG32F;case 3:return o?t.context.RGB16F:t.context.RGB32F;default:return o?t.context.RGBA16F:t.context.RGBA32F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;default:return t.context.RGBA}},e.setBackgroundImage=e=>{t.bgImage.src=e.src},e.setUseBackgroundImage=e=>{t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",{resetCamera:r=!1,size:o=null,scale:a=1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=>e*a)):null},new Promise(((n,o)=>{const a=e.onImageReady((o=>{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach((e=>{let{restoreParamsFn:t,arg:n}=e;return t(n)})),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement("img");if(n.style=ub,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t.rootOpenGLRenderWindow?.resizeFromChildRenderWindows(),t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=>{const n=t.getActiveCamera(),o=n.get("focalPoint","position","parallelScale");return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((e=>{let{resetCameraFn:t,resetCameraArgs:n}=e;return t(n)}))}e.traverseAllPasses()}}))}))},e.getHardwareMaximumLineWidth=()=>{if(null!=a)return a;const t=e.get3DContext(),n=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE);return a=n[1],n[1]},e.getGLInformations=()=>{if(t._glInformation)return t._glInformation;const n=e.get3DContext(),r=n.getExtension("OES_texture_float"),o=n.getExtension("OES_texture_half_float"),a=n.getExtension("WEBGL_debug_renderer_info"),i=n.getExtension("WEBGL_draw_buffers"),s=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),l=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",n.getParameter(n.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",n.getParameter(n.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",n.getParameter(n.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",s&&n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",n.getParameter(n.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",n.getParameter(n.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",n.getParameter(n.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",n.getParameter(n.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",n.getParameter(n.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",n.getParameter(n.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",n.getParameter(n.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",n.getParameter(n.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",n.getParameter(n.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",n.getParameter(n.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",n.getParameter(n.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[r&&pb(n,n.RGBA,n.UNSIGNED_BYTE)?"RGBA":"",r&&pb(n,n.RGB,n.UNSIGNED_BYTE)?"RGB":"",r&&pb(n,n.LUMINANCE,n.UNSIGNED_BYTE)?"LUMINANCE":"",r&&pb(n,n.ALPHA,n.UNSIGNED_BYTE)?"ALPHA":"",r&&pb(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[o&&pb(n,n.RGBA,o.HALF_FLOAT_OES)?"RGBA":"",o&&pb(n,n.RGB,o.HALF_FLOAT_OES)?"RGB":"",o&&pb(n,n.LUMINANCE,o.HALF_FLOAT_OES)?"LUMINANCE":"",o&&pb(n,n.ALPHA,o.HALF_FLOAT_OES)?"ALPHA":"",o&&pb(n,n.LUMINANCE_ALPHA,o.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[r&&pb(n,n.RGBA,n.FLOAT)?"RGBA":"",r&&pb(n,n.RGB,n.FLOAT)?"RGB":"",r&&pb(n,n.LUMINANCE,n.FLOAT)?"LUMINANCE":"",r&&pb(n,n.ALPHA,n.FLOAT)?"ALPHA":"",r&&pb(n,n.LUMINANCE_ALPHA,n.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",n.getSupportedExtensions().join("
\t\t\t\t\t ")],["WebGL Renderer","RENDERER",n.getParameter(n.RENDERER)],["WebGL Vendor","VENDOR",n.getParameter(n.VENDOR)],["WebGL Version","VERSION",n.getParameter(n.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",n.getParameter(n.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",a&&n.getParameter(a.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",a&&n.getParameter(a.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",t.webgl2?2:1]],c={};for(;l.length;){const[e,t,n]=l.pop();t&&(c[t]={label:e,value:n})}return t._glInformation=c,c},e.traverseAllPasses=()=>{if(t.renderPasses)for(let n=0;n0&&void 0!==arguments[0]?arguments[0]:t.imageFormat;const r=document.createElement("canvas"),o=r.getContext("2d");r.width=t.canvas.width,r.height=t.canvas.height,o.drawImage(t.canvas,0,0);const a=t.canvas.getBoundingClientRect(),i=t.renderable;i.getRenderers().forEach((e=>{e.getViewProps().forEach((e=>{if(e.getContainer){const t=e.getContainer().getElementsByTagName("canvas");for(let e=0;e{const e=t.rootOpenGLRenderWindow;if(!e||!t.context2D||t.children.some((e=>!!e.getSelector?.())))return;const n=e.getCanvas(),r=t.canvas;t.context2D.drawImage(n,0,n.height-r.height,r.width,r.height,0,0,r.width,r.height)},e.resizeFromChildRenderWindows=()=>{const n=t.renderable.getChildRenderWindowsByReference();if(n.length>0){const t=[0,0];for(let r=0;rt[0]?o[0]:t[0],t[1]=o[1]>t[1]?o[1]:t[1])}e.setSize(...t)}},e.disableCullFace=()=>{t.cullFaceEnabled&&(t.context.disable(t.context.CULL_FACE),t.cullFaceEnabled=!1)},e.enableCullFace=()=>{t.cullFaceEnabled||(t.context.enable(t.context.CULL_FACE),t.cullFaceEnabled=!0)},e.setViewStream=n=>t.viewStream!==n&&(t.subscription&&(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream&&(t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=>e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()),!0),e.createSelector=()=>{const t=jv.newInstance();return t.setOpenGLRenderWindow(e),t},e.delete=Wt.chain((()=>{t.context&&(fb--,gb.forEach((e=>e(fb)))),e.setContainer(),e.setViewStream()}),(function(){t.canvas.removeEventListener("webglcontextlost",mb),t.canvas.removeEventListener("webglcontextrestored",e.restoreContext)}),e.delete),e.setActiveFramebuffer=e=>{t.activeFramebuffer=e};const i=e.setSize;e.setSize=(t,n)=>{const r=i(t,n);return r&&e.invokeWindowResizeEvent({width:t,height:n}),r},e.registerGraphicsResourceUser=(n,r)=>{t._graphicsResources.has(n)||e.setGraphicsResourceForObject(n,null,null),t._graphicsResources.get(n)?.users.add(r)},e.unregisterGraphicsResourceUser=(n,r)=>{const o=t._graphicsResources.get(n);o&&(o.users.delete(r),o.users.size||(o.oglObject?.releaseGraphicsResources(e),t._graphicsResources.delete(n)))},e.getGraphicsResourceForObject=e=>t._graphicsResources.get(e),e.setGraphicsResourceForObject=(n,r,o)=>{if(!n)return;const a=t._graphicsResources.get(n);a?.oglObject?.releaseGraphicsResources(e),t._graphicsResources.set(n,{coreObject:n,oglObject:r,hash:o,users:a?.users??new Set})},e.getGraphicsMemoryInfo=()=>{let e=0;return t._graphicsResources.forEach((t=>{let{oglObject:n}=t;e+=n.getAllocatedGPUMemoryInBytes()})),e},e.releaseGraphicsResources=()=>{null!==t.shaderCache&&t.shaderCache.releaseGraphicsResources(e),t._graphicsResources.forEach((t=>{let{oglObject:n}=t;n.releaseGraphicsResources(e)})),t._graphicsResources.clear(),null!==t.textureUnitManager&&t.textureUnitManager.freeAll(),t.renderable.getRenderersByReference().forEach((t=>{e.getViewNodeFor(t)?.releaseGraphicsResources()}))};const s={...e};db.forEach((n=>{e[n]=function(){return t.rootOpenGLRenderWindow?t.rootOpenGLRenderWindow[n](...arguments):s[n](...arguments)}}))}const vb={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,context2D:null,canvas:null,cursorVisibility:!0,cursor:"pointer",textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1};const bb=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vb,n),sb.extend(e,t,n),t.canvas||(t.canvas=document.createElement("canvas"),t.canvas.style.width="100%"),t.selector||(t.selector=jv.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",t._textureResourceIds=new Map,t._graphicsResources=new Map,t._glInformation=null,t.myFactory=an.newInstance(),t.shaderCache=Zv.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=Tv.newInstance(),Wt.get(e,t,["shaderCache","textureUnitManager","webgl2","useBackgroundImage","activeFramebuffer","rootOpenGLRenderWindow"]),Wt.setGet(e,t,["initialized","context","context2D","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","useOffScreen"]),Wt.setGetArray(e,t,["size"],2),Wt.event(e,t,"imageReady"),Wt.event(e,t,"windowResizeEvent"),hb(e,t)}),"vtkOpenGLRenderWindow");dh("WebGL",bb),tn("vtkRenderWindow",bb);const yb=["setBindGroup","setIndexBuffer","setVertexBuffer","draw","drawIndexed"];function Tb(e,t){t.classHierarchy.push("vtkWebGPURenderEncoder"),e.begin=e=>{t.drawCallbacks=[],t.handle=e.beginRenderPass(t.description),t.label&&t.handle.pushDebugGroup(t.label)},e.end=()=>{for(let n=0;n{if(t.boundPipeline===e)return;t.handle.setPipeline(e.getHandle());const n=e.getPipelineDescription();if(t.colorTextureViews.length!==n.fragment.targets.length)console.log(`mismatched attachment counts on pipeline ${n.fragment.targets.length} while encoder has ${t.colorTextureViews.length}`),console.trace();else for(let e=0;e{t.replaceShaderCodeFunction(e)},e.setColorTextureView=(e,n)=>{t.colorTextureViews[e]!==n&&(t.colorTextureViews[e]=n)},e.activateBindGroup=e=>{const n=t.boundPipeline.getDevice(),r=t.boundPipeline.getBindGroupLayoutCount(e.getLabel());t.handle.setBindGroup(r,e.getBindGroup(n));const o=n.getBindGroupLayoutDescription(e.getBindGroupLayout(n)),a=n.getBindGroupLayoutDescription(t.boundPipeline.getBindGroupLayout(r));o!==a&&(console.log(`renderEncoder ${t.pipelineHash} mismatched bind group layouts bind group has\n${o}\n versus pipeline\n${a}\n`),console.trace())},e.attachTextureViews=()=>{for(let e=0;e{for(let r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xb,n),ht(e,t),t.description={colorAttachments:[{view:void 0,loadOp:"load",storeOp:"store"}],depthStencilAttachment:{view:void 0,depthLoadOp:"clear",depthClearValue:0,depthStoreOp:"store"}},t.replaceShaderCodeFunction=e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor = computedColor;"]).result,t.setCode(n)},t.pipelineSettings={primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!0,depthCompare:"greater-equal",format:"depth32float"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}},t.colorTextureViews=[],bt(e,t,["boundPipeline","colorTextureViews"]),St(e,t,["depthTextureView","description","handle","label","pipelineHash","pipelineSettings","replaceShaderCodeFunction"]),Tb(e,t)}var Cb={newInstance:Mt(Sb,"vtkWebGPURenderEncoder"),extend:Sb};function Ab(e,t){t.classHierarchy.push("vtkWebGPUOpaquePass"),e.traverse=(n,r)=>{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.renderEncoder)t.colorTexture.resize(r.getCanvas().width,r.getCanvas().height),t.depthTexture.resize(r.getCanvas().width,r.getCanvas().height);else{e.createRenderEncoder(),t.colorTexture=wm.newInstance({label:"opaquePassColor"}),t.colorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:"rgba16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const n=t.colorTexture.createView("opaquePassColorTexture");t.renderEncoder.setColorTextureView(0,n),t.depthFormat="depth32float",t.depthTexture=wm.newInstance({label:"opaquePassDepth"}),t.depthTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:t.depthFormat,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView("opaquePassDepthTexture");t.renderEncoder.setDepthTextureView(a)}t.renderEncoder.attachTextureViews(),e.setCurrentOperation("opaquePass"),n.setRenderEncoder(t.renderEncoder),n.traverse(e)},e.getColorTextureView=()=>t.renderEncoder.getColorTextureViews()[0],e.getDepthTextureView=()=>t.renderEncoder.getDepthTextureView(),e.createRenderEncoder=()=>{t.renderEncoder=Cb.newInstance({label:"OpaquePass"}),t.renderEncoder.setPipelineHash("op")}}const wb={renderEncoder:null,colorTexture:null,depthTexture:null};function Pb(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wb,n),cv.extend(e,t,n),Wt.get(e,t,["colorTexture","depthTexture"]),Ab(e,t)}var Ib={newInstance:Wt.newInstance(Pb,"vtkWebGPUOpaquePass"),extend:Pb};function Ob(e,t){t.classHierarchy.push("vtkWebGPUOrderIndependentTranslucentPass"),e.traverse=(n,r)=>{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.translucentRenderEncoder)t.translucentColorTexture.resizeToMatch(t.colorTextureView.getTexture()),t.translucentAccumulateTexture.resizeToMatch(t.colorTextureView.getTexture());else{e.createRenderEncoder(),e.createFinalEncoder(),t.translucentColorTexture=wm.newInstance({label:"translucentPassColor"}),t.translucentColorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:"rgba16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const n=t.translucentColorTexture.createView("oitpColorTexture");t.translucentRenderEncoder.setColorTextureView(0,n),t.translucentAccumulateTexture=wm.newInstance({label:"translucentPassAccumulate"}),t.translucentAccumulateTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const a=t.translucentAccumulateTexture.createView("oitpAccumTexture");t.translucentRenderEncoder.setColorTextureView(1,a),t.fullScreenQuad=Rf.newInstance(),t.fullScreenQuad.setDevice(r.getDevice()),t.fullScreenQuad.setPipelineHash("oitpfsq"),t.fullScreenQuad.setTextureViews(t.translucentRenderEncoder.getColorTextureViews()),t.fullScreenQuad.setFragmentShaderTemplate("\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var tcoord: vec2 = vec2(i32(input.fragPos.x), i32(input.fragPos.y));\n var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;\n if (reveal == 1.0) { discard; }\n var tcolor: vec4 = textureLoad(oitpColorTexture, tcoord, 0);\n var total: f32 = max(tcolor.a, 0.01);\n var computedColor: vec4 = vec4(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n")}t.translucentRenderEncoder.setDepthTextureView(t.depthTextureView),t.translucentRenderEncoder.attachTextureViews(),e.setCurrentOperation("translucentPass"),n.setRenderEncoder(t.translucentRenderEncoder),n.traverse(e),e.finalPass(r,n)},e.finalPass=(e,n)=>{t.translucentFinalEncoder.setColorTextureView(0,t.colorTextureView),t.translucentFinalEncoder.attachTextureViews(),t.translucentFinalEncoder.begin(e.getCommandEncoder()),n.scissorAndViewport(t.translucentFinalEncoder),t.fullScreenQuad.prepareAndDraw(t.translucentFinalEncoder),t.translucentFinalEncoder.end()},e.getTextures=()=>[t.translucentColorTexture,t.translucentAccumulateTexture],e.createRenderEncoder=()=>{t.translucentRenderEncoder=Cb.newInstance({label:"translucentRender"});const e=t.translucentRenderEncoder.getDescription();e.colorAttachments=[{view:void 0,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"},{view:void 0,clearValue:[1,0,0,0],loadOp:"clear",storeOp:"store"}],e.depthStencilAttachment={view:void 0,depthLoadOp:"load",depthStoreOp:"store"},t.translucentRenderEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor"),t.addOutput("f32","outAccum"),t.addBuiltinInput("vec4","@builtin(position) fragPos");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["var w: f32 = computedColor.a * pow(0.1 + input.fragPos.z, 2.0);","output.outColor = vec4(computedColor.rgb*w, w);","output.outAccum = computedColor.a;"]).result,t.setCode(n)})),t.translucentRenderEncoder.setPipelineHash("oitpr"),t.translucentRenderEncoder.setPipelineSettings({primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!1,depthCompare:"greater",format:"depth32float"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"one",dstFactor:"one"},alpha:{srcfactor:"one",dstFactor:"one"}}},{format:"r16float",blend:{color:{srcFactor:"zero",dstFactor:"one-minus-src"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},e.createFinalEncoder=()=>{t.translucentFinalEncoder=Cb.newInstance({label:"translucentFinal"}),t.translucentFinalEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),t.translucentFinalEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor"),t.addBuiltinInput("vec4","@builtin(position) fragPos");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(computedColor.rgb, computedColor.a);"]).result,t.setCode(n)})),t.translucentFinalEncoder.setPipelineHash("oitpf"),t.translucentFinalEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})}}const Eb={colorTextureView:null,depthTextureView:null};function Mb(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Eb,n),cv.extend(e,t,n),Wt.setGet(e,t,["colorTextureView","depthTextureView"]),Ob(e,t)}var Rb={newInstance:Wt.newInstance(Mb,"vtkWebGPUOrderIndependentTranslucentPass"),extend:Mb};const Db=0,Bb=1,Lb=2,Vb=3,_b=4,Nb="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Volume::TraverseDec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\nfn getTextureValue(vTex: texture_3d, tpos: vec4) -> f32\n{\n // todo multicomponent support\n return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r;\n}\n\nfn getGradient(vTex: texture_3d, tpos: vec4, vNum: i32, scalar: f32) -> vec4\n{\n var result: vec4;\n\n var tstep: vec4 = volumeSSBO.values[vNum].tstep;\n result.x = getTextureValue(vTex, tpos + vec4(tstep.x, 0.0, 0.0, 1.0)) - scalar;\n result.y = getTextureValue(vTex, tpos + vec4(0.0, tstep.y, 0.0, 1.0)) - scalar;\n result.z = getTextureValue(vTex, tpos + vec4(0.0, 0.0, tstep.z, 1.0)) - scalar;\n result.w = 0.0;\n\n // divide by spacing as that is our delta\n result = result / volumeSSBO.values[vNum].spacing;\n // now we have a gradient in unit tcoords\n\n var grad: f32 = length(result.xyz);\n if (grad > 0.0)\n {\n // rotate to View Coords, needed for lighting and shading\n var nMat: mat4x4 = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals;\n result = nMat * result;\n result = result / length(result);\n }\n\n // store gradient magnitude in .w\n result.w = grad;\n\n return result;\n}\n\nfn processVolume(vTex: texture_3d, vNum: i32, cNum: i32, posSC: vec4, tfunRows: f32) -> vec4\n{\n var outColor: vec4 = vec4(0.0, 0.0, 0.0, 0.0);\n\n // convert to tcoords and reject if outside the volume\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*posSC;\n if (tpos.x < 0.0 || tpos.y < 0.0 || tpos.z < 0.0 ||\n tpos.x > 1.0 || tpos.y > 1.0 || tpos.z > 1.0) { return outColor; }\n\n var scalar: f32 = getTextureValue(vTex, tpos);\n\n var coord: vec2 =\n vec2(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\n (0.5 + 2.0 * f32(vNum)) / tfunRows);\n var color: vec4 = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\n\n var gofactor: f32 = 1.0;\n var normal: vec4 = vec4(0.0,0.0,0.0,0.0);\n if (componentSSBO.values[cNum].gomin < 1.0 || volumeSSBO.values[vNum].shade[0] > 0.0)\n {\n normal = getGradient(vTex, tpos, vNum, scalar);\n if (componentSSBO.values[cNum].gomin < 1.0)\n {\n gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift,\n componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax);\n }\n }\n\n coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\n var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\n\n if (volumeSSBO.values[vNum].shade[0] > 0.0)\n {\n color = color*abs(normal.z);\n }\n\n outColor = vec4(color.rgb, gofactor * opacity);\n\n return outColor;\n}\n\n// adjust the start and end point of a raycast such that it intersects the unit cube.\n// This function is used to take a raycast starting point and step vector\n// and numSteps and return the startijng and ending steps for intersecting the\n// unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates\n// that have valid values. So this funtion can be used to take a ray in texture coordinates\n// and bound it to intersecting the texture.\n//\nfn adjustBounds(tpos: vec4, tstep: vec4, numSteps: f32) -> vec2\n{\n var result: vec2 = vec2(0.0, numSteps);\n var tpos2: vec4 = tpos + tstep*numSteps;\n\n // move tpos to the start of the volume\n var adjust: f32 =\n min(\n max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x),\n min(\n max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y),\n max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z)));\n if (adjust < 0.0)\n {\n result.x = result.x - adjust;\n }\n\n // adjust length to the end\n adjust =\n max(\n min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x),\n max(\n min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y),\n min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z)));\n if (adjust > 0.0)\n {\n result.y = result.y - adjust;\n }\n\n return result;\n}\n\nfn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -> vec4\n{\n // how many rows (tfuns) do we have in our tfunTexture\n var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\n\n var coord: vec2 =\n vec2(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\n (0.5 + 2.0 * f32(vNum)) / tfunRows);\n var color: vec4 = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\n coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\n var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\n return vec4(color.rgb, opacity);\n}\n\nfn traverseMax(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4)\n{\n // convert to tcoords and reject if outside the volume\n var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\n var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\n var tstep: vec4 = tpos2 - tpos;\n\n var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps);\n\n // did we hit anything\n if (rayBounds.x >= rayBounds.y)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n return;\n }\n\n tpos = tpos + tstep*rayBounds.x;\n var curDist: f32 = rayBounds.x;\n var maxVal: f32 = -1.0e37;\n loop\n {\n var scalar: f32 = getTextureValue(vTex, tpos);\n if (scalar > maxVal)\n {\n maxVal = scalar;\n }\n\n // increment position\n curDist = curDist + 1.0;\n tpos = tpos + tstep;\n\n // check if we have reached a terminating condition\n if (curDist > rayBounds.y) { break; }\n }\n\n // process to get the color and opacity\n traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum);\n}\n\nfn traverseMin(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4)\n{\n // convert to tcoords and reject if outside the volume\n var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\n var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\n var tstep: vec4 = tpos2 - tpos;\n\n var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps);\n\n // did we hit anything\n if (rayBounds.x >= rayBounds.y)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n return;\n }\n\n tpos = tpos + tstep*rayBounds.x;\n var curDist: f32 = rayBounds.x;\n var minVal: f32 = 1.0e37;\n loop\n {\n var scalar: f32 = getTextureValue(vTex, tpos);\n if (scalar < minVal)\n {\n minVal = scalar;\n }\n\n // increment position\n curDist = curDist + 1.0;\n tpos = tpos + tstep;\n\n // check if we have reached a terminating condition\n if (curDist > rayBounds.y) { break; }\n }\n\n // process to get the color and opacity\n traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum);\n}\n\nfn traverseAverage(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4)\n{\n // convert to tcoords and reject if outside the volume\n var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\n var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\n var tstep: vec4 = tpos2 - tpos;\n\n var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps);\n\n // did we hit anything\n if (rayBounds.x >= rayBounds.y)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n return;\n }\n\n let ipRange: vec4 = volumeSSBO.values[vNum].ipScalarRange;\n tpos = tpos + tstep*rayBounds.x;\n var curDist: f32 = rayBounds.x;\n var avgVal: f32 = 0.0;\n var sampleCount: f32 = 0.0;\n loop\n {\n var sample: f32 = getTextureValue(vTex, tpos);\n // right now leave filtering off until WebGL changes get merged\n // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)\n // {\n avgVal = avgVal + sample;\n sampleCount = sampleCount + 1.0;\n // }\n\n // increment position\n curDist = curDist + 1.0;\n tpos = tpos + tstep;\n\n // check if we have reached a terminating condition\n if (curDist > rayBounds.y) { break; }\n }\n\n if (sampleCount <= 0.0)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n }\n\n // process to get the color and opacity\n traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum);\n}\n\nfn traverseAdditive(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4)\n{\n // convert to tcoords and reject if outside the volume\n var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\n var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\n var tstep: vec4 = tpos2 - tpos;\n\n var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps);\n\n // did we hit anything\n if (rayBounds.x >= rayBounds.y)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n return;\n }\n\n let ipRange: vec4 = volumeSSBO.values[vNum].ipScalarRange;\n tpos = tpos + tstep*rayBounds.x;\n var curDist: f32 = rayBounds.x;\n var sumVal: f32 = 0.0;\n loop\n {\n var sample: f32 = getTextureValue(vTex, tpos);\n // right now leave filtering off until WebGL changes get merged\n // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)\n // {\n sumVal = sumVal + sample;\n // }\n\n // increment position\n curDist = curDist + 1.0;\n tpos = tpos + tstep;\n\n // check if we have reached a terminating condition\n if (curDist > rayBounds.y) { break; }\n }\n\n // process to get the color and opacity\n traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum);\n}\n\nfn composite(rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4) -> vec4\n{\n // initial ray position is at the beginning\n var rayPosSC: vec4 = minPosSC;\n\n // how many rows (tfuns) do we have in our tfunTexture\n var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\n\n var curDist: f32 = 0.0;\n var computedColor: vec4 = vec4(0.0, 0.0, 0.0, 0.0);\n var sampleColor: vec4;\n//VTK::Volume::TraverseCalls\n\n loop\n {\n // for each volume, sample and accumulate color\n//VTK::Volume::CompositeCalls\n\n // increment position\n curDist = curDist + mapperUBO.SampleDistance;\n rayPosSC = rayPosSC + rayStepSC;\n\n // check if we have reached a terminating condition\n if (curDist > rayLengthSC) { break; }\n if (computedColor.a > 0.98) { break; }\n }\n return computedColor;\n}\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r;\n var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r;\n\n // discard empty rays\n if (rayMax <= rayMin) { discard; }\n else\n {\n // compute start and end ray positions in view coordinates\n var minPosSC: vec4 = rendererUBO.PCSCMatrix*vec4(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0);\n minPosSC = minPosSC * (1.0 / minPosSC.w);\n var maxPosSC: vec4 = rendererUBO.PCSCMatrix*vec4(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0);\n maxPosSC = maxPosSC * (1.0 / maxPosSC.w);\n\n var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz);\n var rayStepSC: vec4 = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC);\n rayStepSC.w = 0.0;\n\n var computedColor: vec4;\n\n//VTK::Volume::Loop\n\n//VTK::RenderEncoder::Impl\n }\n\n return output;\n}\n",Fb=new Float64Array(16),kb=new Float64Array(16);function Ub(e,t){t.classHierarchy.push("vtkWebGPUVolumePassFSQ"),e.replaceShaderPosition=(e,t,n)=>{const r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","@builtin(position) Position");let o=r.getCode();o=Jp.substitute(o,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);"]).result,r.setCode(o),t.getShaderDescription("fragment").addBuiltinInput("vec4","@builtin(position) fragPos")},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderVolume=(e,n,r)=>{const o=n.getShaderDescription("fragment");let a=o.getCode();const i=[],s=[];for(let e=0;e(\n sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\n (1.0 - computedColor.a)*sampleColor.a + computedColor.a);")):(s.push(` sampleColor = traverseVals[${e}];`),s.push(" computedColor = vec4(\n sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\n (1.0 - computedColor.a)*sampleColor.a + computedColor.a);"));a=Jp.substitute(a,"//VTK::Volume::CompositeCalls",i).result,a=Jp.substitute(a,"//VTK::Volume::TraverseCalls",s).result,a=Jp.substitute(a,"//VTK::Volume::TraverseDec",[`var traverseVals: array,${t.volumes.length}>;`]).result;let l=!1;for(let e=0;e{let r=e.getMTime();for(let e=0;e{let r=Math.max(e.getMTime(),t.WebGPURenderer.getStabilizedTime());for(let e=0;e"),t.SSBO.addEntry("planeNormals","mat4x4"),t.SSBO.addEntry("shade","vec4"),t.SSBO.addEntry("tstep","vec4"),t.SSBO.addEntry("spacing","vec4"),t.SSBO.addEntry("ipScalarRange","vec4"),t.SSBO.setAllInstancesFromArray("SCTCMatrix",a),t.SSBO.setAllInstancesFromArray("planeNormals",i),t.SSBO.setAllInstancesFromArray("shade",l),t.SSBO.setAllInstancesFromArray("tstep",s),t.SSBO.setAllInstancesFromArray("spacing",c),t.SSBO.setAllInstancesFromArray("ipScalarRange",u),t.SSBO.send(n),t.componentSSBO.clearData(),t.componentSSBO.setNumberOfInstances(t.numRows);const d=new Float64Array(t.numRows),m=new Float64Array(t.numRows),h=new Float64Array(t.numRows),T=new Float64Array(t.numRows),x=new Float64Array(t.numRows),S=new Float64Array(t.numRows),C=new Float64Array(t.numRows),A=new Float64Array(t.numRows);let w=0;for(let e=0;e{n();let r=t.volumes[0].getRenderable().getMapper().getSampleDistance();for(let e=0;e{t.pipelineHash="volfsq";for(let e=0;e{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r{const e=r();return e.push(t.componentSSBO),e.push(t.clampSampler),e}}const Gb={volumes:null,rowLength:1024,lastVolumeLength:0};function zb(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gb,n),Rf.extend(e,t,n),t.fragmentShaderTemplate=Nb,t.UBO=yg.newInstance({label:"mapperUBO"}),t.UBO.addEntry("SampleDistance","f32"),t.SSBO=fg.newInstance({label:"volumeSSBO"}),t.componentSSBO=fg.newInstance({label:"componentSSBO"}),t.lutBuildTime={},Wt.obj(t.lutBuildTime,{mtime:0}),Ub(e,t)}var Wb={newInstance:Wt.newInstance(zb,"vtkWebGPUVolumePassFSQ"),extend:zb};const{Representation:Hb}=os,{BufferUsage:jb,PrimitiveTypes:$b}=sg,Kb=[[0,4,6],[0,6,2],[1,3,7],[1,7,5],[0,5,4],[0,1,5],[2,6,7],[2,7,3],[0,3,1],[0,2,3],[4,5,7],[4,7,6]],qb="\n//VTK::Renderer::Dec\n\n//VTK::Select::Dec\n\n//VTK::VolumePass::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Select::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::VolumePass::Impl\n\n // use the maximum (closest) of the current value and the zbuffer\n // the blend func will then take the min to find the farthest stop value\n var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2(i32(input.fragPos.x), i32(input.fragPos.y)), 0));\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";function Xb(e,t){t.classHierarchy.push("vtkWebGPUVolumePass"),e.initialize=n=>{t._clearEncoder||e.createClearEncoder(n),t._mergeEncoder||e.createMergeEncoder(n),t._copyEncoder||e.createCopyEncoder(n),t._depthRangeEncoder||e.createDepthRangeEncoder(n),t.fullScreenQuad||(t.fullScreenQuad=Wb.newInstance(),t.fullScreenQuad.setDevice(n.getDevice()),t.fullScreenQuad.setTextureViews([...t._depthRangeEncoder.getColorTextureViews()])),t._volumeCopyQuad||(t._volumeCopyQuad=Rf.newInstance(),t._volumeCopyQuad.setPipelineHash("volpassfsq"),t._volumeCopyQuad.setDevice(n.getDevice()),t._volumeCopyQuad.setFragmentShaderTemplate("\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = textureSample(volumePassColorTexture,\n volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n"),t._copyUBO=yg.newInstance({label:"mapperUBO"}),t._copyUBO.addEntry("tscale","vec2"),t._volumeCopyQuad.setUBO(t._copyUBO),t._volumeCopyQuad.setTextureViews([t._colorTextureView]))},e.traverse=(n,r)=>{if(t.deleted)return;t._currentParent=r,e.initialize(r),e.computeTiming(r),e.renderDepthBounds(n,r),t._firstGroup=!0;const o=r.getDevice(),a=o.getHandle().limits.maxSampledTexturesPerShaderStage-4;if(t.volumes.length>a){const o=n.getRenderable().getActiveCamera().getPosition(),i=[];for(let e=0;ei[t]-i[e]));let l=[],c=s.length%a;for(let o=0;o=c&&(e.rayCastPass(r,n,l),l=[],c=a,t._firstGroup=!1)}else e.rayCastPass(r,n,t.volumes);if(t._volumeCopyQuad.setWebGPURenderer(n),t._useSmallViewport){const e=t._colorTextureView.getTexture().getWidth(),n=t._colorTextureView.getTexture().getHeight();t._copyUBO.setArray("tscale",[t._smallViewportWidth/e,t._smallViewportHeight/n])}else t._copyUBO.setArray("tscale",[1,1]);t._copyUBO.sendIfNeeded(o),t._copyEncoder.setColorTextureView(0,t.colorTextureView),t._copyEncoder.attachTextureViews(),t._copyEncoder.begin(r.getCommandEncoder()),n.scissorAndViewport(t._copyEncoder),t._volumeCopyQuad.prepareAndDraw(t._copyEncoder),t._copyEncoder.end()},e.delete=Wt.chain((()=>{t._animationRateSubscription&&(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),e.delete),e.computeTiming=e=>{const n=e.getRenderable().getInteractor();if(null==t._lastScale){const e=t.volumes[0].getRenderable().getMapper();t._lastScale=e.getInitialInteractionScale()||1}t._useSmallViewport=!1,n.isAnimating()&&t._lastScale>1.5&&(t._useSmallViewport=!0),t._colorTexture.resize(e.getCanvas().width,e.getCanvas().height),t._animationRateSubscription||(t._animationRateSubscription=n.onAnimationFrameRateUpdate((()=>{const e=t.volumes[0].getRenderable().getMapper();if(e.getAutoAdjustSampleDistances()){const e=n.getRecentAnimationFrameRate(),r=t._lastScale*n.getDesiredUpdateRate()/e;t._lastScale=r,t._lastScale>400&&(t._lastScale=400)}else t._lastScale=e.getImageSampleDistance()*e.getImageSampleDistance();t._lastScale<1.5&&(t._lastScale=1.5)})))},e.rayCastPass=(e,n,r)=>{const o=t._firstGroup?t._clearEncoder:t._mergeEncoder;o.attachTextureViews(),o.begin(e.getCommandEncoder());let a=t._colorTextureView.getTexture().getWidth(),i=t._colorTextureView.getTexture().getHeight();if(t._useSmallViewport){const n=e.getCanvas(),r=1/Math.sqrt(t._lastScale);t._smallViewportWidth=Math.ceil(r*n.width),t._smallViewportHeight=Math.ceil(r*n.height),a=t._smallViewportWidth,i=t._smallViewportHeight}o.getHandle().setViewport(0,0,a,i,0,1),o.getHandle().setScissorRect(0,0,a,i),t.fullScreenQuad.setWebGPURenderer(n),t.fullScreenQuad.setVolumes(r),t.fullScreenQuad.prepareAndDraw(o),o.end()},e.renderDepthBounds=(n,r)=>{e.updateDepthPolyData(n);const o=t._boundsPoly,a=o.getPoints(),i=o.getPolys();let s={hash:`vp${i.getMTime()}`,usage:jb.Index,cells:i,numberOfPoints:a.getNumberOfPoints(),primitiveType:$b.Triangles,representation:Hb.SURFACE};const l=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().setIndexBuffer(l),s={usage:jb.PointArray,format:"float32x4",hash:`vp${a.getMTime()}${i.getMTime()}`,dataArray:a,indexBuffer:l,packExtra:!0};const c=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().addBuffer(c,["vertexBC"]),t._mapper.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),e.drawDepthRange(n,r)},e.updateDepthPolyData=e=>{let n=!1;for(let e=0;e{t._depthRangeTexture.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeTexture2.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeEncoder.attachTextureViews(),e.setCurrentOperation("volumeDepthRangePass"),n.setRenderEncoder(t._depthRangeEncoder),n.volumeDepthRangePass(!0),t._mapper.setWebGPURenderer(n),t._mapper.prepareToDraw(t._depthRangeEncoder),t._mapper.registerDrawCallback(t._depthRangeEncoder),n.volumeDepthRangePass(!1)},e.createDepthRangeEncoder=e=>{const n=e.getDevice();t._depthRangeEncoder=Cb.newInstance({label:"VolumePass DepthRange"}),t._depthRangeEncoder.setPipelineHash("volr"),t._depthRangeEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor1"),t.addOutput("vec4","outColor2");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor1 = vec4(input.fragPos.z, 0.0, 0.0, 0.0);","output.outColor2 = vec4(stopval, 0.0, 0.0, 0.0);"]).result,t.setCode(n)})),t._depthRangeEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"},{view:null,clearValue:[1,1,1,1],loadOp:"clear",storeOp:"store"}]}),t._depthRangeEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"r16float",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"max"},alpha:{srcfactor:"one",dstFactor:"one",operation:"max"}}},{format:"r16float",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"min"},alpha:{srcfactor:"one",dstFactor:"one",operation:"min"}}}]}}),t._depthRangeTexture=wm.newInstance({label:"volumePassMaxDepth"}),t._depthRangeTexture.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const r=t._depthRangeTexture.createView("maxTexture");t._depthRangeEncoder.setColorTextureView(0,r),t._depthRangeTexture2=wm.newInstance({label:"volumePassDepthMin"}),t._depthRangeTexture2.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const o=t._depthRangeTexture2.createView("minTexture");t._depthRangeEncoder.setColorTextureView(1,o),t._mapper.setDevice(e.getDevice()),t._mapper.setTextureViews([t.depthTextureView])},e.createClearEncoder=e=>{t._colorTexture=wm.newInstance({label:"volumePassColor"}),t._colorTexture.create(e.getDevice(),{width:e.getCanvas().width,height:e.getCanvas().height,format:"bgra8unorm",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}),t._colorTextureView=t._colorTexture.createView("volumePassColorTexture"),t._colorTextureView.addSampler(e.getDevice(),{minFilter:"linear",magFilter:"linear"}),t._clearEncoder=Cb.newInstance({label:"VolumePass Clear"}),t._clearEncoder.setColorTextureView(0,t._colorTextureView),t._clearEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"}]}),t._clearEncoder.setPipelineHash("volpf"),t._clearEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"bgra8unorm",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},e.createCopyEncoder=e=>{t._copyEncoder=Cb.newInstance({label:"volumePassCopy"}),t._copyEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),t._copyEncoder.setPipelineHash("volcopypf"),t._copyEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},e.createMergeEncoder=e=>{t._mergeEncoder=Cb.newInstance({label:"volumePassMerge"}),t._mergeEncoder.setColorTextureView(0,t._colorTextureView),t._mergeEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),t._mergeEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(computedColor.rgb, computedColor.a);"]).result,t.setCode(n)})),t._mergeEncoder.setPipelineHash("volpf"),t._mergeEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"bgra8unorm",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},e.setVolumes=n=>{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yb,n),cv.extend(e,t,n),t._mapper=If.newInstance(),t._mapper.setFragmentShaderTemplate(qb),t._mapper.getShaderReplacements().set("replaceShaderVolumePass",((e,t,n)=>{t.getShaderDescription("fragment").addBuiltinInput("vec4","@builtin(position) fragPos")})),t._boundsPoly=uu.newInstance(),t._lastMTimes=[],Wt.setGet(e,t,["colorTextureView","depthTextureView"]),Xb(e,t)}var Zb={newInstance:Wt.newInstance(Qb,"vtkWebGPUVolumePass"),extend:Qb};function Jb(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(t.deleted)return;t._currentParent=r,e.setCurrentOperation("buildPass"),n.traverse(e),t.opaquePass||(t.opaquePass=Ib.newInstance());const o=n.getRenderable().getNumberOfLayers(),a=n.getChildren();for(let r=0;r0&&(t.translucentPass||(t.translucentPass=Rb.newInstance()),t.translucentPass.setColorTextureView(t.opaquePass.getColorTextureView()),t.translucentPass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.translucentPass.traverse(i,n)),t.volumes.length>0&&(t.volumePass||(t.volumePass=Zb.newInstance()),t.volumePass.setColorTextureView(t.opaquePass.getColorTextureView()),t.volumePass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.volumePass.setVolumes(t.volumes),t.volumePass.traverse(i,n)),e.finalPass(n,i))}},e.finalPass=(n,r)=>{t._finalBlitEncoder||e.createFinalBlitEncoder(n),t._finalBlitOutputTextureView.createFromTextureHandle(n.getCurrentTexture(),{depth:1,format:n.getPresentationFormat()}),t._finalBlitEncoder.attachTextureViews(),t._finalBlitEncoder.begin(n.getCommandEncoder()),r.scissorAndViewport(t._finalBlitEncoder),t._fullScreenQuad.prepareAndDraw(t._finalBlitEncoder),t._finalBlitEncoder.end()},e.createFinalBlitEncoder=e=>{t._finalBlitEncoder=Cb.newInstance({label:"forwardPassBlit"}),t._finalBlitEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),t._finalBlitEncoder.setPipelineHash("fpf"),t._finalBlitEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:e.getPresentationFormat(),blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}}),t._fsqSampler=hm.newInstance({label:"finalPassSampler"}),t._fsqSampler.create(e.getDevice(),{minFilter:"linear",magFilter:"linear"}),t._fullScreenQuad=Rf.newInstance(),t._fullScreenQuad.setDevice(e.getDevice()),t._fullScreenQuad.setPipelineHash("fpfsq"),t._fullScreenQuad.setTextureViews([t.opaquePass.getColorTextureView()]),t._fullScreenQuad.setAdditionalBindables([t._fsqSampler]),t._fullScreenQuad.setFragmentShaderTemplate("\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = clamp(textureSampleLevel(opaquePassColorTexture, finalPassSampler, input.tcoordVS, 0.0),vec4(0.0),vec4(1.0));\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n"),t._finalBlitOutputTextureView=Tm.newInstance(),t._finalBlitEncoder.setColorTextureView(0,t._finalBlitOutputTextureView)},e.incrementOpaqueActorCount=()=>t.opaqueActorCount++,e.incrementTranslucentActorCount=()=>t.translucentActorCount++,e.addVolume=e=>{t.volumes.push(e)}}const ey={opaqueActorCount:0,translucentActorCount:0,volumes:null,opaqueRenderEncoder:null,translucentPass:null,volumePass:null};function ty(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ey,n),cv.extend(e,t,n),Wt.setGet(e,t,["opaquePass","translucentPass","volumePass"]),Jb(e,t)}var ny={newInstance:Wt.newInstance(ty,"vtkForwardPass"),extend:ty};const{VtkDataTypes:ry}=ws;function oy(e,t){function n(e){if(e.imageData){e.dataArray=e.imageData.getPointData().getScalars(),e.time=e.dataArray.getMTime(),e.nativeArray=e.dataArray.getData();const t=e.imageData.getDimensions();switch(e.width=t[0],e.height=t[1],e.depth=t[2],e.dataArray.getNumberOfComponents()){case 1:e.format="r";break;case 2:e.format="rg";break;default:e.format="rgba"}switch(e.dataArray.getDataType()){case ry.UNSIGNED_CHAR:e.format+="8unorm";break;case ry.FLOAT:case ry.UNSIGNED_INT:case ry.INT:case ry.DOUBLE:case ry.UNSIGNED_SHORT:case ry.SHORT:default:e.format+="16float"}}e.image&&(e.width=e.image.width,e.height=e.image.height,e.depth=1,e.format="rgba8unorm"),e.jsImageData&&(e.width=e.jsImageData.width,e.height=e.jsImageData.height,e.depth=1,e.format="rgba8unorm",e.flip=!0,e.nativeArray=e.jsImageData.data),e.canvas&&(e.width=e.canvas.width,e.height=e.canvas.height,e.depth=1,e.format="rgba8unorm",e.flip=!0,e.usage=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT)}function r(e){const n=wm.newInstance();return n.create(t.device,{width:e.width,height:e.height,depth:e.depth,format:e.format,usage:e.usage,mipLevel:e.mipLevel}),(e.nativeArray||e.image||e.canvas)&&n.writeImageData(e),n}t.classHierarchy.push("vtkWebGPUTextureManager"),e.getTexture=e=>e.hash?t.device.getCachedObject(e.hash,r,e):r(e),e.getTextureForImageData=e=>{const r={time:e.getMTime()};return r.imageData=e,n(r),r.hash=r.time+r.format+r.mipLevel,t.device.getTextureManager().getTexture(r)},e.getTextureForVTKTexture=e=>{const r={time:e.getMTime()};return e.getInputData()?r.imageData=e.getInputData():e.getImage()?r.image=e.getImage():e.getJsImageData()?r.jsImageData=e.getJsImageData():e.getCanvas()&&(r.canvas=e.getCanvas()),n(r),r.mipLevel=e.getMipLevel(),r.hash=r.time+r.format+r.mipLevel,t.device.getTextureManager().getTexture(r)}}const ay={handle:null,device:null};function iy(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ay,n),Wt.obj(e,t),Wt.setGet(e,t,["device"]),oy(e,t)}var sy={newInstance:Wt.newInstance(iy),extend:iy};class ly extends Map{constructor(){super(),this.registry=new FinalizationRegistry((e=>{const t=super.get(e);t&&t.deref&&void 0===t.deref()&&super.delete(e)}))}getValue(e){const t=super.get(e);if(t){const n=t.deref();if(void 0!==n)return n;super.delete(e)}}setValue(e,t){let n;return t&&"object"==typeof t&&(n=new WeakRef(t),this.registry.register(t,e),super.set(e,n)),n}}function cy(e,t){t.classHierarchy.push("vtkWebGPUDevice"),e.initialize=e=>{t.handle=e},e.createCommandEncoder=()=>t.handle.createCommandEncoder(),e.submitCommandEncoder=e=>{t.handle.queue.submit([e.finish()])},e.getShaderModule=e=>t.shaderCache.getShaderModule(e),e.getBindGroupLayout=e=>{if(!e.entries)return null;for(let t=0;t{for(let n=0;ne in t.pipelines?t.pipelines[e]:null,e.createPipeline=(n,r)=>{r.initialize(e,n),t.pipelines[n]=r},e.onSubmittedWorkDone=()=>t.handle.queue.onSubmittedWorkDone(),e.hasCachedObject=e=>t.objectCache.getValue(e),e.getCachedObject=function(e,n){if(!e)return vtkErrorMacro("attempt to cache an object without a hash"),null;const r=t.objectCache.getValue(e);if(r)return r;for(var o=arguments.length,a=new Array(o>2?o-2:0),i=2;i2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,uy,n),ht(e,t),St(e,t,["handle"]),bt(e,t,["bufferManager","shaderCache","textureManager"]),t.objectCache=new ly,t.shaderCache=Jp.newInstance(),t.shaderCache.setDevice(e),t.bindGroupLayouts=[],t.bufferManager=sg.newInstance(),t.bufferManager.setDevice(e),t.textureManager=sy.newInstance(),t.textureManager.setDevice(e),t.pipelines={},cy(e,t)}var py={newInstance:Mt(dy,"vtkWebGPUDevice"),extend:dy};function fy(e,t){t.classHierarchy.push("vtkWebGPUHardwareSelectionPass"),e.traverse=(n,r)=>{if(t.deleted)return;t._currentParent=null,e.setCurrentOperation("buildPass"),n.traverse(e);const o=n.getDevice();if(t.selectionRenderEncoder)t.colorTexture.resize(n.getCanvas().width,n.getCanvas().height),t.depthTexture.resizeToMatch(t.colorTexture);else{e.createRenderEncoder(),t.colorTexture=wm.newInstance({label:"hardwareSelectorColor"}),t.colorTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:"rgba32uint",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const r=t.colorTexture.createView("hardwareSelectColorTexture");t.selectionRenderEncoder.setColorTextureView(0,r),t.depthTexture=wm.newInstance({label:"hardwareSelectorDepth"}),t.depthTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:"depth32float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView("hardwareSelectDepthTexture");t.selectionRenderEncoder.setDepthTextureView(a)}t.selectionRenderEncoder.attachTextureViews(),r.setRenderEncoder(t.selectionRenderEncoder),e.setCurrentOperation("cameraPass"),r.traverse(e),e.setCurrentOperation("opaquePass"),r.traverse(e)},e.createRenderEncoder=()=>{t.selectionRenderEncoder=Cb.newInstance({label:"HardwareSelectionPass"}),t.selectionRenderEncoder.setPipelineHash("sel"),t.selectionRenderEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(mapperUBO.PropID, compositeID, 0u, 0u);"]).result,t.setCode(n)})),t.selectionRenderEncoder.getDescription().colorAttachments[0].clearValue=[0,0,0,0],t.selectionRenderEncoder.setPipelineSettings({primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!0,depthCompare:"greater",format:"depth32float"},fragment:{targets:[{format:"rgba32uint",blend:void 0}]}})}}const gy={selectionRenderEncoder:null,colorTexture:null,depthTexture:null};function my(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gy,n),cv.extend(e,t,n),Wt.get(e,t,["colorTexture","depthTexture"]),fy(e,t)}var hy={newInstance:Wt.newInstance(my,"vtkWebGPUHardwareSelectionPass"),extend:my};const{SelectionContent:vy,SelectionField:by}=Ev,{FieldAssociations:yy}=Ys,{vtkErrorMacro:Ty}=Wt;function xy(e){return`${e.propID} ${e.compositeID}`}function Sy(e,t,n,r){const o=4*((n.height-t-1)*n.colorBufferWidth+e)+r;return n.colorValues[o]}function Cy(e,t,n,r){const o=n<0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]<0||t[0]>=e.width||t[1]<0||t[1]>=e.height)return null;const n=Sy(t[0],t[1],e,0);if(n<=0)return null;const o={};o.propID=n;let a=Sy(t[0],t[1],e,1);if((a<0||a>16777215)&&(a=0),o.compositeID=a,e.captureZValues){const n=(e.height-t[1]-1)*e.zbufferBufferWidth+t[0];o.zValue=e.depthValues[n],o.zValue=e.webGPURenderer.convertToOpenGLDepth(o.zValue),o.displayPosition=t}return o}const a=[t[0],t[1]],i=[0,0];let s=Cy(e,t,0,r);if(s)return s;for(let t=1;tt?a[1]-t:0;n<=a[1]+t;++n){if(i[1]=n,a[0]>=t&&(i[0]=a[0]-t,s=Cy(e,i,0,r),s))return s;if(i[0]=a[0]+t,s=Cy(e,i,0,r),s)return s}for(let n=a[0]>=t?a[0]-(t-1):0;n<=a[0]+(t-1);++n){if(i[0]=n,a[1]>=t&&(i[1]=a[1]-t,s=Cy(e,i,0,r),s))return s;if(i[1]=a[1]+t,s=Cy(e,i,0,r),s)return s}}return r[0]=t[0],r[1]=t[1],null}function Ay(e,t){t.classHierarchy.push("vtkWebGPUHardwareSelector"),e.endSelection=()=>{t.WebGPURenderer.setSelector(null)},e.getSourceDataAsync=async e=>{if(!e||!t._WebGPURenderWindow)return Ty("Renderer and view must be set before calling Select."),!1;t._WebGPURenderWindow.getRenderable().preRender(),t._WebGPURenderWindow.getInitialized()||(t._WebGPURenderWindow.initialize(),await new Promise((e=>{t._WebGPURenderWindow.onInitialized(e)})));const n=t._WebGPURenderWindow.getViewNodeFor(e);if(!n)return!1;const r=n.getSuppressClear();n.setSuppressClear(!0),t._selectionPass.traverse(t._WebGPURenderWindow,n),n.setSuppressClear(r);const o=t._WebGPURenderWindow.getDevice(),a=t._selectionPass.getColorTexture(),i=t._selectionPass.getDepthTexture(),s={area:[0,0,a.getWidth()-1,a.getHeight()-1],captureZValues:t.captureZValues,fieldAssociation:t.fieldAssociation,renderer:e,webGPURenderer:n,webGPURenderWindow:t._WebGPURenderWindow,width:a.getWidth(),height:a.getHeight()};s.colorBufferWidth=16*Math.floor((s.width+15)/16),s.colorBufferSizeInBytes=s.colorBufferWidth*s.height*4*4;const l=Nf.newInstance({label:"hardwareSelectColorBuffer"});l.setDevice(o),l.create(s.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const c=t._WebGPURenderWindow.getCommandEncoder();let u;c.copyTextureToBuffer({texture:a.getHandle()},{buffer:l.getHandle(),bytesPerRow:16*s.colorBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1}),t.captureZValues&&(s.zbufferBufferWidth=64*Math.floor((s.width+63)/64),u=Nf.newInstance({label:"hardwareSelectDepthBuffer"}),u.setDevice(o),s.zbufferSizeInBytes=s.height*s.zbufferBufferWidth*4,u.create(s.zbufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST),c.copyTextureToBuffer({texture:i.getHandle(),aspect:"depth-only"},{buffer:u.getHandle(),bytesPerRow:4*s.zbufferBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1})),o.submitCommandEncoder(c);const d=l.mapAsync(GPUMapMode.READ);if(t.captureZValues){const e=u.mapAsync(GPUMapMode.READ);await Promise.all([d,e]),s.depthValues=new Float32Array(u.getMappedRange().slice()),u.unmap()}else await d;return s.colorValues=new Uint32Array(l.getMappedRange().slice()),l.unmap(),s.generateSelection=(e,t,n,r)=>function(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t<=l;t++)for(let n=a;n<=s;n++){const r=Cy(e,[n,t],0,u);if(r){const t=xy(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&&r.zValue{const i=Ev.newInstance();switch(i.setContentType(vy.INDICES),e){case yy.FIELD_ASSOCIATION_CELLS:i.setFieldType(by.CELL);break;case yy.FIELD_ASSOCIATION_POINTS:i.setFieldType(by.POINT);break;default:Ty("Unknown field association")}i.getProperties().propID=t.info.propID;const s=n.webGPURenderer.getPropFromID(t.info.propID);i.getProperties().prop=s.getRenderable(),i.getProperties().compositeID=t.info.compositeID,i.getProperties().pixelCount=t.pixelCount,n.captureZValues&&(i.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],i.getProperties().worldPosition=n.webGPURenderWindow.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,n.renderer)),i.setSelectionList(t.attributeIDs),r[o]=i,o++})),r}(e.fieldAssociation,c,e)}(s,e,t,n,r),s}}const wy={};function Py(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wy,n),wv.extend(e,t,n),t._selectionPass=hy.newInstance(),Wt.setGet(e,t,["_WebGPURenderWindow"]),Wt.moveToProtected(e,t,["WebGPURenderWindow"]),Ay(e,t)}var Iy={newInstance:Wt.newInstance(Py,"vtkWebGPUHardwareSelector"),extend:Py};const{vtkErrorMacro:Oy}=Wt,Ey={position:"absolute",top:0,left:0,width:"100%",height:"100%"};function My(e,t){t.classHierarchy.push("vtkWebGPURenderWindow"),e.getViewNodeFactory=()=>t.myFactory;const n=[0,0];e.onModified((function(){t.renderable&&(t.size[0]===n[0]&&t.size[1]===n[1]||(n[0]=t.size[0],n[1]=t.size[1],t.canvas.setAttribute("width",t.size[0]),t.canvas.setAttribute("height",t.size[1]),e.recreateSwapChain())),t.viewStream&&t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?"none":"block",t.el&&(t.el.style.cursor=t.cursorVisibility?t.cursor:"none"),t.containerSize=null})),e.recreateSwapChain=()=>{t.context&&(t.context.unconfigure(),t.presentationFormat=navigator.gpu.getPreferredCanvasFormat(t.adapter),t.context.configure({device:t.device.getHandle(),format:t.presentationFormat,alphaMode:"premultiplied",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_DST,width:t.size[0],height:t.size[1]}),t._configured=!0)},e.getCurrentTexture=()=>t.context.getCurrentTexture(),e.buildPass=n=>{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.removeUnusedNodes(),e.initialize()}else t.initialized&&(t._configured||e.recreateSwapChain(),t.commandEncoder=t.device.createCommandEncoder())},e.initialize=()=>{if(!t.initializing){if(t.initializing=!0,!navigator.gpu)return void Oy("WebGPU is not enabled.");e.create3DContextAsync().then((()=>{t.initialized=!0,t.deleted||e.invokeInitialized()}))}},e.setContainer=n=>{t.el&&t.el!==n&&(t.canvas.parentNode!==t.el&&Oy("Error: canvas parent node does not match container"),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)),t.el!==n&&(t.el=n,t.el&&(t.el.appendChild(t.canvas),t.useBackgroundImage&&t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=>t.el,e.getContainerSize=()=>{if(!t.containerSize&&t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=>t.size,e.create3DContextAsync=async()=>{t.adapter=await navigator.gpu.requestAdapter({powerPreference:"high-performance"}),t.deleted||(t.device=py.newInstance(),t.device.initialize(await t.adapter.requestDevice()),t.deleted?t.device=null:t.context=t.canvas.getContext("webgpu"))},e.releaseGraphicsResources=()=>{const n=cv.newInstance();n.setCurrentOperation("Release"),n.traverse(e,null),t.adapter=null,t.device=null,t.context=null,t.initialized=!1,t.initializing=!1},e.setBackgroundImage=e=>{t.bgImage.src=e.src},e.setUseBackgroundImage=e=>{t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",{resetCamera:r=!1,size:o=null,scale:a=1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=>e*a)):null},new Promise(((n,o)=>{const a=e.onImageReady((o=>{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach((e=>{let{restoreParamsFn:t,arg:n}=e;return t(n)})),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement("img");if(n.style=Ey,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=>{const n=t.getActiveCamera(),o=n.get("focalPoint","position","parallelScale");return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((e=>{let{resetCameraFn:t,resetCameraArgs:n}=e;return t(n)}))}e.traverseAllPasses()}}))}))},e.traverseAllPasses=()=>{if(!t.deleted)if(t.initialized){if(t.renderPasses)for(let n=0;n{!async function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.imageFormat;const r=document.createElement("canvas"),o=r.getContext("2d");r.width=t.canvas.width,r.height=t.canvas.height;const a=await e.getPixelsAsync(),i=new ImageData(a.colorValues,a.width,a.height);o.putImageData(i,0,0);const s=t.canvas.getBoundingClientRect(),l=t.renderable;l.getRenderers().forEach((e=>{e.getViewProps().forEach((e=>{if(e.getContainer){const t=e.getContainer().getElementsByTagName("canvas");for(let e=0;e{t.unsubscribe(),e.traverseAllPasses()}))}},e.setViewStream=n=>t.viewStream!==n&&(t.subscription&&(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream&&(t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=>e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()),!0),e.getUniquePropID=()=>t.nextPropID++,e.getPropFromID=e=>{for(let n=0;n{const e=t.device,n=t.renderPasses[0].getOpaquePass().getColorTexture(),r={width:n.getWidth(),height:n.getHeight()};r.colorBufferWidth=32*Math.floor((r.width+31)/32),r.colorBufferSizeInBytes=r.colorBufferWidth*r.height*8;const o=Nf.newInstance();o.setDevice(e),o.create(r.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const a=t.device.createCommandEncoder();a.copyTextureToBuffer({texture:n.getHandle()},{buffer:o.getHandle(),bytesPerRow:8*r.colorBufferWidth,rowsPerImage:r.height},{width:r.width,height:r.height,depthOrArrayLayers:1}),e.submitCommandEncoder(a);const i=o.mapAsync(GPUMapMode.READ);await i,r.colorValues=new Uint16Array(o.getMappedRange().slice()),o.unmap();const s=new Uint8ClampedArray(r.height*r.width*4);for(let e=0;e{const t=Iy.newInstance();return t.setWebGPURenderWindow(e),t};const r=e.setSize;e.setSize=(t,n)=>{const o=r(t,n);return o&&e.invokeWindowResizeEvent({width:t,height:n}),o},e.delete=Wt.chain(e.delete,e.setViewStream)}const Ry={initialized:!1,context:null,adapter:null,device:null,canvas:null,cursorVisibility:!0,cursor:"pointer",containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1,nextPropID:1,xrSupported:!1,presentationFormat:null};const Dy=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ry,n),t.canvas=document.createElement("canvas"),t.canvas.style.width="100%",t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",sb.extend(e,t,n),t.myFactory=Fp.newInstance(),t.renderPasses[0]=ny.newInstance(),t.selector||(t.selector=Iy.newInstance(),t.selector.setWebGPURenderWindow(e)),Wt.event(e,t,"imageReady"),Wt.event(e,t,"initialized"),Wt.get(e,t,["commandEncoder","device","presentationFormat","useBackgroundImage","xrSupported"]),Wt.setGet(e,t,["initialized","context","canvas","device","renderPasses","notifyStartCaptureImage","cursor","useOffScreen"]),Wt.setGetArray(e,t,["size"],2),Wt.event(e,t,"windowResizeEvent"),My(e,t)}),"vtkWebGPURenderWindow");dh("WebGPU",Dy),Lp("vtkRenderWindow",Dy);const By=tv(),Ly={margin:"0",padding:"0",position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"},Vy={position:"absolute",left:"25px",top:"25px",backgroundColor:"white",borderRadius:"5px",listStyle:"none",padding:"5px 10px",margin:"0",display:"block",border:"solid 1px black",maxWidth:"calc(100% - 70px)",maxHeight:"calc(100% - 60px)",overflow:"auto"};function _y(e,t){Object.keys(t).forEach((n=>{e.style[n]=t[n]}))}function Ny(e,t){t.classHierarchy.push("vtkFullScreenRenderWindow");const n=document.querySelector("body");function r(t){"c"===String.fromCharCode(t.charCode)&&e.toggleControllerVisibility()}t.rootContainer||(t.rootContainer=n),t.container||(t.container=document.createElement("div"),_y(t.container,t.containerStyle||Ly),t.rootContainer.appendChild(t.container)),t.rootContainer===n&&(document.documentElement.style.height="100%",n.style.height="100%",n.style.padding="0",n.style.margin="0"),t.renderWindow=hh.newInstance(),t.renderer=ch.newInstance(),t.renderWindow.addRenderer(t.renderer),t.apiSpecificRenderWindow=t.renderWindow.newAPISpecificView(By.viewAPI??t.defaultViewAPI),t.apiSpecificRenderWindow.setContainer(t.container),t.renderWindow.addView(t.apiSpecificRenderWindow),t.interactor=Lh.newInstance(),t.interactor.setInteractorStyle(Zh.newInstance()),t.interactor.setView(t.apiSpecificRenderWindow),t.interactor.initialize(),t.interactor.bindEvents(t.container),e.setBackground=t.renderer.setBackground,e.removeController=()=>{const e=t.controlContainer;e&&e.parentNode.removeChild(e)},e.setControllerVisibility=e=>{t.controllerVisibility=e,t.controlContainer&&(t.controlContainer.style.display=e?"block":"none")},e.toggleControllerVisibility=()=>{e.setControllerVisibility(!t.controllerVisibility)},e.addController=n=>{t.controlContainer=document.createElement("div"),_y(t.controlContainer,t.controlPanelStyle||Vy),t.rootContainer.appendChild(t.controlContainer),t.controlContainer.innerHTML=n,e.setControllerVisibility(t.controllerVisibility),t.rootContainer.addEventListener("keypress",r)},e.setBackground(...t.background),e.addRepresentation=e=>{e.getActors().forEach((e=>{t.renderer.addActor(e)}))},e.removeRepresentation=e=>{e.getActors().forEach((e=>t.renderer.removeActor(e)))},e.delete=Wt.chain(e.setContainer,t.apiSpecificRenderWindow.delete,(()=>{t.rootContainer?.removeEventListener("keypress",r),window.removeEventListener("resize",e.resize)}),e.delete),e.resize=()=>{const e=t.container.getBoundingClientRect(),n=window.devicePixelRatio||1;t.apiSpecificRenderWindow.setSize(Math.floor(e.width*n),Math.floor(e.height*n)),t.resizeCallback&&t.resizeCallback(e),t.renderWindow.render()},e.setResizeCallback=n=>{t.resizeCallback=n,e.resize()},t.listenWindowResize&&window.addEventListener("resize",e.resize),e.resize()}const Fy={background:[.32,.34,.43],containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0};function ky(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fy,n),Wt.obj(e,t),Wt.get(e,t,["renderWindow","renderer","apiSpecificRenderWindow","interactor","rootContainer","container","controlContainer"]),Ny(e,t)}var Uy={newInstance:Wt.newInstance(ky),extend:ky};const Gy=[];var zy=function(e){return new Promise(((t,n)=>{if(-1===Gy.indexOf(e)){Gy.push(e);const r=document.createElement("script");r.type="text/javascript",r.src=e,r.onload=t,r.onerror=n,document.body.appendChild(r)}else t(!1)}))};function Wy(e){return new TextDecoder("latin1").decode(e)}var Hy={arrayBufferToString:Wy,extractBinary:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const r=Wy(e),o=t.exec(r);if(!o)return{text:r};const a=o.index+o[0].length,i=r.substring(0,a);let s=null;const l=n?n.exec(r):null;return s=l?{text:i+r.substr(l.index),binaryBuffer:e.slice(a,l.index)}:{text:i,binaryBuffer:e.slice(a)},s}};const{vtkErrorMacro:jy}=Wt;let $y={};function Ky(e,t){const n=new $y.Decoder,r=n.GetAttribute(e,t),o=r.num_components(),a=e.num_points(),i=new $y.DracoFloat32Array;n.GetAttributeFloatForAllPoints(e,r,i);let s=a*o;const l=new Float32Array(s);for(;s--;)l[s]=i.GetValue(s);return l}function qy(e,t){function n(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{compression:o,progressCallback:a}=t;return r.binary?t.dataAccessHelper.fetchBinary(n,{compression:o,progressCallback:a}):t.dataAccessHelper.fetchText(e,n,{compression:o,progressCallback:a})}t.classHierarchy.push("vtkDracoReader"),t.dataAccessHelper||(t.dataAccessHelper=Vm("http")),e.setUrl=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{binary:!0};t.url=n;const o=n.split("/");return o.pop(),t.baseURL=o.join("/"),t.compression=r.compression,e.loadData({progressCallback:r.progressCallback,binary:!!r.binary})},e.loadData=function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=n(t.url,r);return o.then(e.parse),o},e.parse=t=>{e.parseAsArrayBuffer(t)},e.parseAsArrayBuffer=n=>{if(!n)return;if(n===t.parseData)return;e.modified(),t.parseData=n;const r=function(e){const t=new Int8Array(e),n=new $y.Decoder,r=new $y.DecoderBuffer;let o;if(r.Init(t,t.length),n.GetEncodedGeometryType(r)===$y.TRIANGULAR_MESH){o=new $y.Mesh;const e=n.DecodeBufferToMesh(r,o);e.ok()||jy(`Could not decode Draco file: ${e.error_msg()}`)}else jy("Wrong geometry type, expected mesh, got point cloud.");return $y.destroy(r),$y.destroy(n),o}(n),o=function(e){const t=new $y.Decoder,n=t.GetAttributeId(e,$y.POSITION);if(-1===n)return console.error("No position attribute found in the decoded model."),$y.destroy(t),$y.destroy(e),null;const r=Ky(e,n);let o=e.num_faces();const a=new Uint32Array(4*o),i=new $y.DracoInt32Array;for(;o--;){t.GetFaceFromMesh(e,o,i);const n=4*o;a[n]=3,a[n+1]=i.GetValue(0),a[n+2]=i.GetValue(1),a[n+3]=i.GetValue(2)}const s=ac.newInstance({values:a}),l=uu.newInstance({polys:s});l.getPoints().setData(r);const c=l.getPointData();if(-1!==t.GetAttributeId(e,$y.NORMAL)){const t=Ky(e,$y.NORMAL),n=ws.newInstance({numberOfComponents:3,values:t,name:"Normals"});c.setNormals(n)}const u=t.GetAttributeId(e,$y.TEX_COORD);if(-1!==u){const t=Ky(e,u),n=ws.newInstance({numberOfComponents:2,values:t,name:"TCoords"});c.setTCoords(n)}const d=t.GetAttributeId(e,$y.COLOR);if(-1!==d){const t=Ky(e,d),n=ws.newInstance({numberOfComponents:3,values:t,name:"Scalars"});c.setScalars(n)}return $y.destroy(t),l}(r);$y.destroy(r),t.output[0]=o},e.requestData=()=>{e.parse(t.parseData)}}const Xy={};function Yy(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xy,n),Wt.obj(e,t),Wt.get(e,t,["url","baseURL"]),Wt.setGet(e,t,["dataAccessHelper"]),Wt.algo(e,t,0,1),qy(e,t),t.compression||(t.compression=null),t.progressCallback||(t.progressCallback=null)}var Qy={extend:Yy,newInstance:Wt.newInstance(Yy,"vtkDracoReader"),setDracoDecoder:function(e){$y=e({})},setWasmBinary:function(e,t){const n={};return new Promise(((r,o)=>{n.wasmBinaryFile=t;const a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=()=>{200===a.status?(n.wasmBinary=a.response,Promise.resolve(window.DracoDecoderModule(n)).then((e=>{$y=e,r(!0)}),o)):o(Error(`WASM binary could not be loaded: ${a.statusText}`))},a.send(null)}))},getDracoDecoder:function(){return $y}};let Zy;function Jy(e,t){t.classHierarchy.push("vtkAbstractTransform","vtkHomogeneousTransform","vtkTransform"),e.transformPoint=(e,n)=>(In(n,e,t.matrix),n),e.transformPoints=(e,n)=>{const r=new Float64Array(3),o=new Float64Array(3);for(let a=0;a{e.setPreMultiplyFlag(!0)},e.postMultiply=()=>{e.setPreMultiplyFlag(!1)},e.transformMatrix=(e,n)=>(t.preMultiplyFlag?v(n,t.matrix,e):v(n,e,t.matrix),n),e.transformMatrices=(e,n)=>{const r=new Float64Array(16),o=new Float64Array(16),a=t.preMultiplyFlag?()=>v(o,t.matrix,r):()=>v(o,r,t.matrix);for(let t=0;tZy({matrix:Ea.invertMatrix(Array.from(t.matrix),[],4),preMultiplyFlag:t.preMultiplyFlag})}const eT={preMultiplyFlag:!1,matrix:[...co]};function tT(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,eT,n),Wt.obj(e,t),Wt.setGet(e,t,["preMultiplyFlag"]),Wt.setGetArray(e,t,["matrix"],16),Jy(e,t)}Zy=Wt.newInstance(tT,"vtkTransform");var nT={newInstance:Zy,extend:tT};const rT="glTF",oT={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},aT={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},iT={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},sT=9987,lT=10497,cT={magFilter:9728,minFilter:sT,wrapS:lT,wrapT:lT},uT={NORMAL:"normal",POSITION:"position",TEXCOORD_0:"texcoord0",TEXCOORD_1:"texcoord1",WEIGHTS_0:"weight",JOINTS_0:"joint",COLOR_0:"color",TANGENT:"tangent"},dT="OPAQUE";var pT,fT,gT=n(57),mT=n.n(gT),hT=(pT=function(){!function(){var e={exports:{}},t=function(){function e(e,t){for(var n=0;n1?t-1:0),r=1;r1?t-1:0),o=1;o1?n-1:0),i=1;i3&&void 0!==arguments[3]?arguments[3]:[];n([0,e,t,r],o)},h=function(e,t,r){if(!t)throw new Error("eventName is required");if("string"!=typeof t)throw new Error("eventName should be string");n([1,e,t,r])};return self.addEventListener("message",(function(e){var t=e.data;Array.isArray(t)?f.apply(void 0,s(t)):t&&t.eventName&&r.emitLocally.apply(r,[t.eventName].concat(s(t.args)))})),r},e.exports.TransferableResponse=p,(0,e.exports)((async e=>{let{imageBuffer:t,mimeType:n,channel:r}=e;const o={r:0,g:1,b:2},a=new Blob([t],{type:n}),i=await createImageBitmap(a),s=new OffscreenCanvas(i.width,i.height).getContext("2d");s.drawImage(i,0,0,i.width,i.height);const l=s.getImageData(0,0,i.width,i.height);if(r){const e=o[r];for(let t=0;t2&&void 0!==arguments[2]&&arguments[2];if(e.cache||(e.cache={}),!n&&e.cache[t])return e.cache[t];const r=new(mT())(new hT);return e.bufferView?r.postMessage({imageBuffer:e.bufferView.data,mimeType:e.mimeType,channel:t}).then((n=>(e.cache[t]=n.bitmap,n.bitmap))).finally((()=>{r.terminate()})):e.uri?(vT("Falling back to image uri",e.uri),new Promise(((n,r)=>{const o=new Image;o.crossOrigin="Anonymous",o.onload=()=>{e.cache[t]=o,n(o)},o.onerror=r,o.src=e.uri}))):null}function xT(e,t,n){const r=mu.newInstance();if(t)if("wrapS"in t&&"wrapT"in t||"minFilter"in t&&"magFilter"in t){33071===t.wrapS||33071===t.wrapT?(r.setRepeat(!1),r.setEdgeClamp(!0)):t.wrapS===lT||t.wrapT===lT?(r.setRepeat(!0),r.setEdgeClamp(!1)):vT("Mirrored texture wrapping is not supported!");const e=[9729,9985,9986,sT];(e.includes(t.minFilter)||e.includes(t.magFilter))&&r.setInterpolate(!0)}else r.MipmapOn(),r.setInterpolate(!0),r.setEdgeClamp(!0);return r.setJsImageData(e),r}const{vtkDebugMacro:ST,vtkWarningMacro:CT}=Wt;class AT{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{json:n,baseUri:r=""}=e;this.glTF=e,this.options=t,this.baseUri=r,this.json=n,this.extensions=n.extensions||{},this.extensionsUsed=n.extensionsUsed||[]}async parse(){const e=this.json.buffers||[];this.buffers=new Array(e.length).fill(null);const t=this.json.images||[];return this.images=new Array(t.length).fill({}),await this.loadBuffers(),await this.loadImages(),this.resolveTree(),this.glTF.json}resolveTree(){this.json.scenes=this.json.scenes?.map(((e,t)=>this.resolveScene(e,t))),this.json.cameras=this.json.cameras?.map(((e,t)=>this.resolveCamera(e,t))),this.json.bufferViews=this.json.bufferViews?.map(((e,t)=>this.resolveBufferView(e,t))),this.json.images=this.json.images?.map(((e,t)=>this.resolveImage(e,t))),this.json.samplers=this.json.samplers?.map(((e,t)=>this.resolveSampler(e,t))),this.json.textures=this.json.textures?.map(((e,t)=>this.resolveTexture(e,t))),this.json.accessors=this.json.accessors?.map(((e,t)=>this.resolveAccessor(e,t))),this.json.materials=this.json.materials?.map(((e,t)=>this.resolveMaterial(e,t))),this.json.meshes=this.json.meshes?.map(((e,t)=>this.resolveMesh(e,t))),this.json.nodes=this.json.nodes?.map(((e,t)=>this.resolveNode(e,t))),this.json.skins=this.json.skins?.map(((e,t)=>this.resolveSkin(e,t))),this.json.animations=this.json.animations?.map(((e,t)=>this.resolveAnimation(e,t)))}get(e,t){if("object"==typeof t)return t;const n=this.json[e]&&this.json[e][t];return n||CT(`glTF file error: Could not find ${e}[${t}]`),n}resolveScene(e,t){return e.id=e.id||`scene-${t}`,e.nodes=(e.nodes||[]).map((e=>this.get("nodes",e))),e}resolveNode(e,t){return e.id=e.id||`node-${t}`,e.children&&(e.children=e.children.map((e=>this.get("nodes",e)))),void 0!==e.mesh?e.mesh=this.get("meshes",e.mesh):void 0!==e.meshes&&e.meshes.length&&(e.mesh=e.meshes.reduce(((e,t)=>{const n=this.get("meshes",t);return e.id=n.id,e.primitives=e.primitives.concat(n.primitives),e}),{primitives:[]})),void 0!==e.camera&&(e.camera=this.get("cameras",e.camera)),void 0!==e.skin&&(e.skin=this.get("skins",e.skin)),e.extensions?.KHR_lights_punctual&&(e.extensions.KHR_lights_punctual.light=this.extensions?.KHR_lights_punctual.lights[e.extensions.KHR_lights_punctual.light]),e}resolveSkin(e,t){return e.id=e.id||`skin-${t}`,e.inverseBindMatrices=this.get("accessors",e.inverseBindMatrices),e}resolveMesh(e,t){return e.id=e.id||`mesh-${t}`,e.primitives&&(e.primitives=e.primitives.map(((e,t)=>{const n=e.attributes;e.name=`submesh-${t}`,e.attributes={};for(const t in n){const r=uT[t];e.attributes[r]=this.get("accessors",n[t])}if(void 0!==e.indices&&(e.indices=this.get("accessors",e.indices)),void 0!==e.material&&(e.material=this.get("materials",e.material)),void 0===e.mode&&(e.mode=4),e.extensions?.KHR_draco_mesh_compression){ST("Using Draco mesh compression");const t=this.get("bufferViews",e.extensions.KHR_draco_mesh_compression.bufferView);e.extensions.KHR_draco_mesh_compression.bufferView=t.data}return e}))),e}resolveMaterial(e,t){if(e.id=e.id||`material-${t}`,void 0===e.alphaMode&&(e.alphaMode=dT),void 0===e.doubleSided&&(e.doubleSided=!1),void 0===e.alphaCutoff&&(e.alphaCutoff=.5),e.normalTexture&&(e.normalTexture={...e.normalTexture},e.normalTexture.texture=this.get("textures",e.normalTexture.index)),e.occlusionTexture&&(e.occlusionTexture={...e.occlusionTexture},e.occlusionTexture.texture=this.get("textures",e.occlusionTexture.index)),e.emissiveTexture&&(e.emissiveTexture={...e.emissiveTexture},e.emissiveTexture.texture=this.get("textures",e.emissiveTexture.index)),e.emissiveFactor?e.emissiveFactor=e.emissiveFactor[0]:e.emissiveFactor=e.emissiveTexture?1:0,e.pbrMetallicRoughness){e.pbrMetallicRoughness={...e.pbrMetallicRoughness};const t=e.pbrMetallicRoughness;t.baseColorTexture&&(t.baseColorTexture={...t.baseColorTexture},t.baseColorTexture.texture=this.get("textures",t.baseColorTexture.index)),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture={...t.metallicRoughnessTexture},t.metallicRoughnessTexture.texture=this.get("textures",t.metallicRoughnessTexture.index))}else e.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};return e}getValueFromInterleavedBuffer(e,t,n,r,o){const a=new Uint8Array(o*r);for(let i=0;i{const n=e.extensions[t];switch(t){case"KHR_texture_basisu":case"EXT_texture_webp":case"EXT_texture_avif":e.source=this.get("images",n.source);break;default:CT(`Unhandled extension: ${t}`)}})),e}resolveSampler(e,t){e.id=e.id||`sampler-${t}`,Object.hasOwn(e,"wrapS")||(e.wrapS=lT),Object.hasOwn(e,"wrapT")||(e.wrapT=lT),Object.hasOwn(e,"minFilter")||(e.minFilter=sT),Object.hasOwn(e,"magFilter")||(e.magFilter=9728),e.parameters={};for(const t in e){const n={magFilter:10240,minFilter:10241,wrapS:10242,wrapT:10243}[t];void 0!==n&&(e.parameters[n]=e[t])}return e}resolveImage(e,t){return e.id=e.id||`image-${t}`,void 0!==e.bufferView&&(e.bufferView=this.get("bufferViews",e.bufferView)),e}resolveBufferView(e,t){e.id=e.id||`bufferView-${t}`;const n=e.buffer;e.buffer=this.buffers[n];const r=this.buffers[n].arrayBuffer;let o=this.buffers[n].byteOffset||0;return"byteOffset"in e&&(o+=e.byteOffset),e.data=new Uint8Array(r,o,e.byteLength),e}resolveCamera(e,t){return e.id=e.id||`camera-${t}`,e}resolveAnimation(e,t){return e.id=e.id||`animation-${t}`,e.samplers.map((e=>(e.input=this.get("accessors",e.input).value,e.output=this.get("accessors",e.output).value,e))),e}loadBuffers(){const e=this.json.buffers.map(((e,t)=>this.loadBuffer(e,t).then((()=>{delete e.uri}))));return Promise.all(e)}async loadBuffer(e,t){let n=e;if(e.uri){ST("Loading uri",e.uri);const t=yT(e.uri,this.options.baseUri),r=await fetch(t);n=await r.arrayBuffer()}else this.glTF.glbBuffers&&(n=this.glTF.glbBuffers[t]);this.buffers[t]={arrayBuffer:n,byteOffset:0,byteLength:n.byteLength}}loadImages(){const e=this.json.images||[],t=[];return new Promise(((n,r)=>{for(let n=0;n{ST("Texture loaded ",e[n])}))));Promise.all(t).then((()=>n(this.images)))}))}async loadImage(e,t){let n,r;if(e.uri){ST("Loading texture",e.uri);const t=yT(e.uri,this.options.baseUri),r=await fetch(t);n=await r.arrayBuffer(),e.uri=t,e.bufferView={data:n}}else if(e.bufferView){const t=this.get("bufferViews",e.bufferView);r=this.get("buffers",t.buffer),this.glTF.glbBuffers&&(r=this.glTF.glbBuffers[t.buffer],n=r.slice(t.byteOffset,t.byteOffset+t.byteLength)),e.bufferView={data:n}}}}const{vtkWarningMacro:wT}=Wt;function PT(e,t,n){const{light:r}=e,{color:o,intensity:a,range:i,spot:s,type:l}=r,c=Ym.newInstance({color:o||[1,1,1],intensity:a||1});switch(c.setTransformMatrix(t),i>0&&c.setAttenuationValues(1,0,1/(i*i*.01)),l){case"directional":c.setPositional(!1);break;case"point":c.setPositional(!0),c.setConeAngle(90);break;case"spot":c.setPositional(!0),c.setConeAngle(xo(s.outerConeAngle));break;default:wT(`Unsupported light type: ${l}`)}n.lights.set(r.name,c)}const{vtkWarningMacro:IT,vtkDebugMacro:OT}=Wt;async function ET(e,t,n){let r=1,o=1;const a=t.emissiveFactor,i=n.getProperty(),s=t.pbrMetallicRoughness;if(void 0!==s){!s?.metallicFactor||s?.metallicFactor<=0||s?.metallicFactor>=1?IT("Invalid material.pbrMetallicRoughness.metallicFactor value. Using default value instead."):r=s.metallicFactor,!s?.roughnessFactor||s?.roughnessFactor<=0||s?.roughnessFactor>=1?IT("Invalid material.pbrMetallicRoughness.roughnessFactor value. Using default value instead."):o=s.roughnessFactor;const l=s.baseColorFactor;if(void 0!==l&&(i.setDiffuseColor(l[0],l[1],l[2]),i.setOpacity(l[3])),i.setMetallic(r),i.setRoughness(o),i.setEmission(a),s.baseColorTexture){s.baseColorTexture.extensions;const t=s.baseColorTexture.texture;void 0!==t.extensions&&Object.keys(t.extensions).forEach((e=>{IT(`Unhandled extension: ${e}`)}));const r=t.sampler,o=xT(await TT(t.source),r);e.renderer.getRenderWindow().getViews()[0].isA("vtkOpenGLRenderWindow")?n.addTexture(o):i.setDiffuseTexture(o)}if(s.metallicRoughnessTexture){s.metallicRoughnessTexture.extensions;const e=s.metallicRoughnessTexture.texture,t=e.sampler,n=xT(await TT(e.source,"b"),t);i.setMetallicTexture(n);const r=xT(await TT(e.source,"g"),t);i.setRoughnessTexture(r)}if(t.occlusionTexture){t.occlusionTexture.extensions;const e=t.occlusionTexture.texture,n=e.sampler,r=xT(await TT(e.source,"r"),n);i.setAmbientOcclusionTexture(r)}if(t.emissiveTexture){t.emissiveTexture.extensions;const e=t.emissiveTexture.texture,r=e.sampler,o=xT(await TT(e.source),r);i.setEmissionTexture(o),void 0!==t.emissiveTexture.texCoord&&n.getMapper().getInputData().getPointData().setActiveTCoords(`TEXCOORD_${t.emissiveTexture.texCoord}`)}if(t.normalTexture){t.normalTexture.extensions;const e=t.normalTexture.texture,n=e.sampler,r=xT(await TT(e.source),n);i.setNormalTexture(r),void 0!==t.normalTexture.scale&&i.setNormalStrength(t.normalTexture.scale)}}void 0!==t.extensions&&Object.keys(t.extensions).forEach((e=>{const n=t.extensions[e];switch(e){case"KHR_materials_unlit":!function(e,t){t.setLighting(!0)}(0,i);break;case"KHR_materials_ior":!function(e,t){t.setBaseIOR(e.ior)}(n,i);break;case"KHR_materials_specular":!function(e,t){t.setSpecular(e.specularFactor),t.setSpecularColor(e.specularColorFactor)}(n,i);break;default:IT(`Unhandled extension: ${e}`)}})),t.alphaMode!==dT&&n.setForceTranslucent(!0),i.setBackfaceCulling(!t.doubleSided)}async function MT(e,t,n){const r=cs.newInstance(),o=Zl.newInstance();if(o.setColorModeToDirectScalars(),r.setMapper(o),r.setUserMatrix(n),void 0!==t.mesh){const n=await async function(e){const t=e.primitives[0];if(!t||!t.attributes)return IT("Mesh has no position data, skipping"),null;const n=t.mode;if(t.extensions?.KHR_draco_mesh_compression)return async function(e){const t=Qy.newInstance();return t.parse(e.bufferView),t.getOutputData()}(t.extensions.KHR_draco_mesh_compression);const r=uu.newInstance(),o=ac.newInstance(),a=r.getPointData();if(Object.entries(t.attributes).forEach((async e=>{let[n,o]=e;switch(n){case uT.POSITION:{const e=t.attributes.position.value;r.getPoints().setData(e,t.attributes.position.component);break}case uT.NORMAL:{const e=t.attributes.normal.value;a.setNormals(ws.newInstance({name:"Normals",values:e,numberOfComponents:t.attributes.normal.components}));break}case uT.COLOR_0:{const e=t.attributes.color.value;a.setScalars(ws.newInstance({name:"Scalars",values:e,numberOfComponents:t.attributes.color.components}));break}case uT.TEXCOORD_0:{const e=t.attributes.texcoord0.value,n=ws.newInstance({name:"TEXCOORD_0",values:e,numberOfComponents:t.attributes.texcoord0.components});a.addArray(n),a.setActiveTCoords(n.getName());break}case uT.TEXCOORD_1:{const e=t.attributes.texcoord1.value,n=ws.newInstance({name:"TEXCOORD_1",values:e,numberOfComponents:t.attributes.texcoord1.components});a.addArray(n);break}case uT.TANGENT:{const e=t.attributes.tangent.value,n=ws.newInstance({name:"Tangents",values:e,numberOfComponents:t.attributes.tangent.components});a.addArray(n);break}default:IT(`Unhandled attribute: ${n}`)}})),void 0!==t.indices){const e=t.indices.value,r=e.length-2;switch(n){case 3:case 5:case 2:IT("GL_LINE_LOOP not implemented");break;default:o.resize(4*e.length/3);for(let t=0;t{const o=e[r];"KHR_materials_variants"===r?t.variantMappings.set(n.id,o.mappings):IT(`Unhandled extension: ${r}`)}))}(a.extensions,e,t)}else{const e=uu.newInstance();o.setInputData(e)}return r}function RT(e){return OT("Creating animation:",e),{name:e.name,channels:e.channels,samplers:e.samplers,getChannelByTargetNode(e){return this.channels.filter((t=>t.target.node===e))}}}function DT(e){const t=e.translation??Tn(),n=e.rotation??Di(),r=e.scale??xn(1,1,1);return void 0!==e.matrix?l(e.matrix):V(s(),n,t,r)}async function BT(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s();e.transform=DT(e);const o=v(s(),r,e.transform),a=await MT(t,e,o);a&&(a.setUserMatrix(o),n&&a.setParentProp(n),t.actors.set(e.id,a)),e.extensions?.KHR_lights_punctual&&PT(e.extensions.KHR_lights_punctual,e.transform,t),e.children&&Array.isArray(e.children)&&e.children.length>0&&await Promise.all(e.children.map((async n=>{const r=t.actors.get(e.id);await BT(n,t,r,o)})))}async function LT(e){e.animations=e.glTFTree.animations?.map(RT),Object.keys(e.glTFTree?.extensions||[]).forEach((t=>{const n=e.glTFTree.extensions[t];switch(t){case"KHR_materials_variants":!function(e,t){t.variants=e.variants.map((e=>e.name))}(n,e);break;case"KHR_draco_mesh_compression":break;default:IT(`Unhandled extension: ${t}`)}}));const t=e.sceneId??e.glTFTree.scene;e.glTFTree.scenes?.length&&e.glTFTree.scenes[t]?.nodes?await Promise.all(e.glTFTree.scenes[t].nodes.map((async t=>{t?await BT(t,e):IT("Node not found in glTF.nodes")}))):IT("No valid scenes found in the glTF data")}function VT(e,t){const n=new Uint32Array(t,e,2);return{start:e+8,length:n[0],type:n[1]}}const{vtkDebugMacro:_T,vtkWarningMacro:NT}=Wt;function FT(e,t){const n=e.target.path,r=e.target.node;return{...e,animate:function(o){!function(e){let t,o,a;switch(n){case"translation":r.setPosition(e[0],e[1],e[2]);break;case"rotation":a=function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n*n+r*r+o*o+a*a;return i>0&&(i=1/Math.sqrt(i)),e[0]=n*i,e[1]=r*i,e[2]=o*i,e[3]=a*i,e}(Di(),e),t=new Float64Array(3),o=Li(t,a),r.rotateWXYZ(So(o),t[0],t[1],t[2]);break;case"scale":r.setScale(e[0],e[1],e[2]);break;default:NT(`Unsupported animation path: ${n}`)}}(t[e.sampler].evaluate(o,n))}}}function kT(e,t){const n=new Map,r=new Map;return{addAnimation:function(t){const r=function(e,t){return e.samplers=e.samplers.map((e=>function(e){let t=0;return{...e,evaluate:function(n,r){const[o,a,i,s]=function(n){let r=t;for(;r{const n=u-c;return(2*u-3*c+1)*e+(u-2*c+l)*p[t]+(-2*u+3*c)*f[t]+n*g[t]})):(2*u-3*c+1)*d+(u-2*c+l)*p+(-2*u+3*c)*f+(u-c)*g}(0,o,a,i,s,n);break;default:throw new Error(`Unknown interpolation method: ${e.interpolation}`)}return l}}}(e))),e.channels=e.channels.map((n=>(n.target.node=t.get(`node-${n.target.node}`),FT(n,e.samplers)))),{...e,update:function(t){e.channels.forEach((e=>e.animate(t)))}}}(t,e);n.set(t.id,r),_T(`Animation "${t.id}" added to mixer`)},play:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;n.has(e)?(r.set(e,{animation:n.get(e),weight:t,time:0}),_T(`Playing animation "${e}" with weight ${t}`)):NT(`Animation "${e}" not found in mixer`)},stop:function(e){r.delete(e)?NT(`Stopped animation "${e}"`):NT(`Animation "${e}" was not playing`)},stopAll:function(){r.clear(),NT("Stopped all animations")},update:function(e){const t=Array.from(r.values()).reduce(((e,t)=>{let{weight:n}=t;return e+n}),0);r.forEach(((n,o)=>{let{animation:a,weight:i,time:s}=n;const l=t>0?i/t:0,c=s+e;r.set(o,{animation:a,weight:i,time:c}),_T(`Updating animation "${o}" at time ${c.toFixed(3)} with normalized weight ${l.toFixed(3)}`),a.update(c,l)}))}}}const{vtkDebugMacro:UT,vtkErrorMacro:GT}=Wt;function zT(e,t){function n(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{compression:o,progressCallback:a}=t;return r.binary?t.dataAccessHelper.fetchBinary(n,{compression:o,progressCallback:a}):t.dataAccessHelper.fetchText(e,n,{compression:o,progressCallback:a})}t.classHierarchy.push("vtkGLTFImporter"),t.dataAccessHelper||(t.dataAccessHelper=Vm("http")),e.setUrl=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{binary:!0};t.url=n;const o=n.split("/");return o.pop(),t.baseURL=o.join("/"),t.compression=r.compression,t.sceneId=r.sceneId?r.sceneId:0,e.loadData({progressCallback:r.progressCallback,binary:!!r.binary})},e.loadData=function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=n(t.url,r);return o.then(e.parse),o},e.parse=t=>{"string"==typeof t?e.parseAsText(t):e.parseAsBinary(t)},e.parseAsBinary=async n=>{if(!n)return;if(n===t.parseData)return;e.modified();const r={},o={baseUri:t.baseURL};if(Hy.arrayBufferToString(new Uint8Array(n,0,4))===rT){const{json:e,buffers:t}=function(e){let t;const n=[],r=new DataView(e,0,12),o=Hy.arrayBufferToString(new Uint8Array(e,0,4)),a=r.getUint32(4,!0);if(r.getUint32(8,!0),o!==rT)throw new Error("Unsupported glTF-Binary header.");if(a<2)throw new Error("Unsupported legacy binary file detected.");const i=function(e){const t=[];let n=12;for(;n{1313821514!==r.type||t?5130562===r.type&&n.push(function(e,t){return t.slice(e.start,e.start+e.length)}(r,e)):t=function(e,t){const n=e.length,r=new Uint8Array(t,20,n),o=Hy.arrayBufferToString(r);return JSON.parse(o)}(r,e)})),!t)throw new Error("glTF-Binary: JSON content not found.");if(!n)throw new Error("glTF-Binary: Binary chunk not found.");return{json:t,buffers:n}}(n);UT("Loaded GLB",e,t),r.glbBuffers=t,r.json=e}else r.json=JSON.parse(Hy.arrayBufferToString(n));void 0===r.json.asset||r.json.asset.version[0]<2?GT("Unsupported asset. glTF versions >=2.0 are supported."):(t.glTFTree=await async function(e,t){const n=new AT(e,t);return await n.parse()}(r,o),t.actors=new Map,t.cameras=new Map,t.lights=new Map,t.animations=[],t.variants=[],t.variantMappings=new Map,await LT(t),t.scenes=t.glTFTree.scenes,e.invokeReady())},e.parseAsText=n=>{n&&n!==t.parseData&&(e.modified(),t.parseData=n)},e.requestData=(n,r)=>{e.parse(t.parseData)},e.setDracoDecoder=e=>{Qy.setDracoDecoder(e)},e.importActors=()=>{t.actors.forEach((e=>t.renderer.addActor(e)))},e.importCameras=()=>{t.glTFTree.cameras?.forEach((e=>{const n=function(e){const t=$m.newInstance();if("perspective"===e.type){const{yfov:n,znear:r,zfar:o}=e.perspective;t.setClippingRange(r,o),t.setParallelProjection(!1),t.setViewAngle(So(n))}else{if("orthographic"!==e.type)throw new Error("Unsupported camera type");{const{ymag:n,znear:r,zfar:o}=e.orthographic;t.setClippingRange(r,o),t.setParallelProjection(!0),t.setParallelScale(n)}}return t}(e);t.cameras.set(e.id,n)})),t.scenes.forEach((e=>{e.nodes.forEach((e=>{const n=t.cameras.get(e.camera?.id);n&&function(e,t){if(!e||!t)return;const n=[0,0,0],r=[0,1,0],o=[0,0,-1],a=nT.newInstance();a.setMatrix(t),a.transformPoint(n,n),a.transformPoints(r,r),a.transformPoints(o,o),o[0]+=n[0],o[1]+=n[1],o[2]+=n[2],e.setPosition(n),e.setFocalPoint(o),e.setViewUp(r)}(n,e.transform)}))}))},e.importAnimations=()=>{t.glTFTree.animations?.length>0&&(t.animationMixer=kT(t.actors,t.glTFTree.accessors),t.glTFTree.animations.forEach((e=>{t.animationMixer.addAnimation(e)}))),t.animations=t.glTFTree.animations||[]},e.importLights=()=>{t.lights?.forEach((e=>{UT("Adding light",e),t.renderer.addLight(e)}))},e.setCamera=e=>{const n=t.cameras.get(e);n?(UT("Setting camera",n),t.renderer.setActiveCamera(n)):GT(`Camera ${e} not found`)},e.switchToVariant=async e=>{const n=Array.from(t.actors).map((async n=>{let[r,o]=n;UT("Switching to variant",e,"for node",r);const a=t.variantMappings.get(r);if(a){const n=a.find((t=>t.variants.includes(e)));if(n){const e=t.glTFTree.materials[n.material];await ET(t,e,o)}}}));await Promise.all(n)}}const WT={};function HT(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,WT,n),Wt.obj(e,t),Wt.get(e,t,["url","baseURL","actors","scenes","cameras","animations","animationMixer","variants","variantMappings"]),Wt.set(e,t,["renderer","dracoDecoder"]),Wt.event(e,t,"ready"),zT(e,t),t.compression||(t.compression=null),t.progressCallback||(t.progressCallback=null)}var jT={extend:HT,newInstance:Wt.newInstance(HT,"vtkGLTFImporter")};let $T,KT,qT;const XT=tv(),YT=XT.scene||0,QT=XT.viewAPI||"WebGL",ZT="https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main",JT={},ex=Uy.newInstance();ex.addController('

Options

Renderer
Models
Flavor
Scenes
Cameras

Environment Properties

1.00
1.00
30
');const tx=ex.getRenderer(),nx=ex.getRenderWindow(),rx=function(e,t){const n=new Image;n.crossOrigin="Anonymous",n.src="/Data/pbr/kiara_dawn_4k.jpg";const r=mu.newInstance();return r.setMipLevel(8),n.onload=()=>{r.setInterpolate(!0),r.setEdgeClamp(!0),r.setImage(n)},r}();tx.setUseEnvironmentTextureAsBackground(!1),["MaterialsVariantsShoe","GlamVelvetSofa","SheenChair"].includes(XT.model)?(tx.setEnvironmentTextureDiffuseStrength(0),tx.setEnvironmentTextureSpecularStrength(0)):(tx.setEnvironmentTexture(rx),tx.setEnvironmentTextureDiffuseStrength(1),tx.setEnvironmentTextureSpecularStrength(1));const ox=jT.newInstance({renderer:tx}),ax=document.querySelector("body"),ix=document.querySelector(".models"),sx=document.querySelector(".flavor"),lx=document.querySelector(".scenes"),cx=document.querySelector(".cameras"),ux=document.querySelector(".animations"),dx=document.querySelector(".variants"),px=document.querySelector(".e-specular"),fx=document.querySelector(".e-diffuse"),gx=document.querySelector(".angle"),mx=document.querySelector(".use-background"),hx=document.createElement("div");function vx(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const t=performance.now(),n=(t-e)/1e3;$T.update(n),nx.render(),requestAnimationFrame((()=>vx(t)))}function bx(){console.log("Ready"),hx.remove(),ox.importActors(),ox.importCameras(),ox.importLights(),ox.importAnimations(),tx.resetCamera(),nx.render();const e=ox.getAnimations();if(e.length>0){e.forEach(((e,t)=>{const n=document.createElement("option");n.value=e.id,n.textContent=e.id,ux.appendChild(n)}));const t=e[0];$T=ox.getAnimationMixer(),$T.play(t.id),vx(),document.querySelector(".animations-container").style.display="table-row"}ox.getCameras().forEach(((e,t)=>{const n=document.createElement("option");n.value=t,n.textContent=t,cx.appendChild(n)}));const t=ox.getScenes();t.length>1&&(lx.innerHTML="",t.forEach(((e,t)=>{const n=document.createElement("option");n.value=t,n.textContent=`Scene ${t}`,t===YT&&(n.selected=!0),lx.appendChild(n)})));const n=ox.getVariants();n.length>1&&(dx.innerHTML="",n.forEach(((e,t)=>{console.log("Adding variant",e);const n=document.createElement("option");n.value=t,n.textContent=e,dx.appendChild(n)})),document.querySelector(".variants-container").style.display="table-row")}hx.innerHTML='\n \n \n \n \n \n',hx.style.position="absolute",hx.style.left="50%",hx.style.top="50%",hx.style.transform="translate(-50%, -50%)",fetch(`${ZT}/Models/model-index.json`).then((e=>e.json())).then((e=>{e.forEach((e=>{if(void 0!==e.variants&&void 0!==e.name){const t=[];Object.keys(e.variants).forEach((n=>{const r=e.variants[n];t[n]=`Models/${e.name}/${n}/${r}`})),JT[e.name]=t}}));const t=Object.keys(JT);t.forEach((e=>{const t=document.createElement("option");t.value=e,t.textContent=e,XT.model===e&&(t.selected=!0),ix.appendChild(t)})),KT=XT.model||t[0];const n=Object.keys(JT[KT]);qT=XT.flavor||n[0],n.forEach((e=>{const t=document.createElement("option");t.value=e,t.textContent=e,e===qT&&(t.selected=!0),sx.appendChild(t)}));const r=JT[KT][qT],o=`${ZT}/${r}`;"glTF-Draco"===qT?zy("https://unpkg.com/draco3d@1.3.4/draco_decoder_nodejs.js").then((()=>{ox.setDracoDecoder(window.CreateDracoModule),ox.setUrl(o,{binary:!0,sceneId:YT}).then(ox.onReady(bx))})):ox.setUrl(o,{binary:!0,sceneId:YT}).then(ox.onReady(bx))})).catch((e=>{console.error("Error fetching the model index:",e)})),document.querySelectorAll("input[name='viewAPI']").forEach((e=>{e.value===QT&&(e.checked=!0),e.addEventListener("change",(e=>{window.location=`?model=${KT}&viewAPI=${e.target.value}`}))})),ix.onchange=e=>{window.location=`?model=${e.target.value}&viewAPI=${QT}`},sx.onchange=e=>{window.location=`?model=${KT}&flavor=${e.target.value}&scene=${YT}&viewAPI=${QT}`},lx.onchange=e=>{window.location=`?model=${KT}&flavor=${qT}&scene=${e.target.value}&viewAPI=${QT}`},cx.onchange=e=>{ox.setCamera(e.target.value),nx.render()},dx.onchange=async e=>{console.log("Switching to variant",e.target.value),await ox.switchToVariant(Number(e.target.value)),nx.render()},mx.addEventListener("input",(e=>{const t=Boolean(e.target.checked);tx.setUseEnvironmentTextureAsBackground(t),nx.render()})),gx.addEventListener("input",(e=>{const t=Number(e.target.value);tx.getActiveCamera().setViewAngle(t),nx.render()})),px.addEventListener("input",(e=>{const t=Number(e.target.value);tx.setEnvironmentTextureSpecularStrength(t),nx.render()})),fx.addEventListener("input",(e=>{const t=Number(e.target.value);tx.setEnvironmentTextureDiffuseStrength(t),nx.render()})),ax.appendChild(hx)},145:function(e,t,n){"use strict";var r=n(426),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),a=Object.prototype.toString,i=Array.prototype.concat,s=Object.defineProperty,l=s&&function(){var e={};try{for(var t in s(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),c=function(e,t,n,r){var o;(!(t in e)||"function"==typeof(o=r)&&"[object Function]"===a.call(o)&&r())&&(l?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},u=function(e,t){var n=arguments.length>2?arguments[2]:{},a=r(t);o&&(a=i.call(a,Object.getOwnPropertySymbols(t)));for(var s=0;s0&&!o.call(e,0))for(var m=0;m0)for(var h=0;h=0&&"[object Function]"===t.call(e.callee)),r}},640:function(e,t,n){var r=n(64),o=n(115),a=n(965),i=n(332),s=n(65),l=n(182),c=n(293);c.alea=r,c.xor128=o,c.xorwow=a,c.xorshift7=i,c.xor4096=s,c.tychei=l,e.exports=c},64:function(e,t,n){var r;!function(e,o,a){function i(e){var t,n=this,r=(t=4022871197,function(e){e=String(e);for(var n=0;n>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,o=n.next;return o.int32=function(){return 4294967296*n.next()|0},o.double=function(){return o()+11102230246251565e-32*(2097152*o()|0)},o.quick=o,r&&("object"==typeof r&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.alea=l}(0,e=n.nmd(e),n.amdD)},182:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&("object"==typeof r&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.tychei=l}(0,e=n.nmd(e),n.amdD)},115:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&("object"==typeof r&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.xor128=l}(0,e=n.nmd(e),n.amdD)},65:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&127],e=o[a=a+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=o[a]=n^e,t.i=a,n+(r^r>>>16)|0},function(e,t){var n,r,o,a,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),o=0,a=-32;a>>15,r^=r<<4,r^=r>>>13,a>=0&&(i=i+1640531527|0,o=0==(n=s[127&a]^=r+i)?o+1:0);for(o>=128&&(s[127&(t&&t.length||0)]=-1),o=127,a=512;a>0;--a)r=s[o+34&127],n=s[o=o+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[o]=r^n;e.w=i,e.X=s,e.i=o}(t,e)}function s(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&(r.X&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.xor4096=l}(0,e=n.nmd(e),n.amdD)},332:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e>>>7)^e<<24,n^=(e=r[o+1&7])^e>>>10,n^=(e=r[o+3&7])^e>>>3,n^=(e=r[o+4&7])^e<<7,e=r[o+7&7],n^=(e^=e<<13)^e<<9,r[o]=n,t.i=o+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}function s(e,t){return t.x=e.x.slice(),t.i=e.i,t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&(r.x&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.xorshift7=l}(0,e=n.nmd(e),n.amdD)},965:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function l(e,t){var n=new i(e),r=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&("object"==typeof r&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.xorwow=l}(0,e=n.nmd(e),n.amdD)},293:function(e,t,n){var r;!function(o,a,i){var s,l=256,c=i.pow(l,6),u=i.pow(2,52),d=2*u,p=255;function f(e,t,n){var r=[],p=v(h((t=1==t?{entropy:!0}:t||{}).entropy?[e,b(a)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(l):(e=new Uint8Array(l),(o.crypto||o.msCrypto).getRandomValues(e)),b(e)}catch(e){var t=o.navigator,n=t&&t.plugins;return[+new Date,o,n,o.screen,b(a)]}}():e,3),r),f=new g(r),y=function(){for(var e=f.g(6),t=c,n=0;e=d;)e/=2,t/=2,n>>>=1;return(e+n)/t};return y.int32=function(){return 0|f.g(4)},y.quick=function(){return f.g(4)/4294967296},y.double=y,v(b(f.S),a),(t.pass||n||function(e,t,n,r){return r&&(r.S&&m(r,f),e.state=function(){return m(f,{})}),n?(i.random=e,t):e})(y,p,"global"in t?t.global:this==i,t.state)}function g(e){var t,n=e.length,r=this,o=0,a=r.i=r.j=0,i=r.S=[];for(n||(e=[n++]);o>>25)+r|0)&r|~n&o)+t[1]-389564586|0)<<12|a>>>20)+n|0)&n|~a&r)+t[2]+606105819|0)<<17|o>>>15)+a|0)&a|~o&n)+t[3]-1044525330|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+t[4]-176418897|0)<<7|n>>>25)+r|0)&r|~n&o)+t[5]+1200080426|0)<<12|a>>>20)+n|0)&n|~a&r)+t[6]-1473231341|0)<<17|o>>>15)+a|0)&a|~o&n)+t[7]-45705983|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+t[8]+1770035416|0)<<7|n>>>25)+r|0)&r|~n&o)+t[9]-1958414417|0)<<12|a>>>20)+n|0)&n|~a&r)+t[10]-42063|0)<<17|o>>>15)+a|0)&a|~o&n)+t[11]-1990404162|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+t[12]+1804603682|0)<<7|n>>>25)+r|0)&r|~n&o)+t[13]-40341101|0)<<12|a>>>20)+n|0)&n|~a&r)+t[14]-1502002290|0)<<17|o>>>15)+a|0)&a|~o&n)+t[15]+1236535329|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+t[1]-165796510|0)<<5|n>>>27)+r|0)&o|r&~o)+t[6]-1069501632|0)<<9|a>>>23)+n|0)&r|n&~r)+t[11]+643717713|0)<<14|o>>>18)+a|0)&n|a&~n)+t[0]-373897302|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+t[5]-701558691|0)<<5|n>>>27)+r|0)&o|r&~o)+t[10]+38016083|0)<<9|a>>>23)+n|0)&r|n&~r)+t[15]-660478335|0)<<14|o>>>18)+a|0)&n|a&~n)+t[4]-405537848|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+t[9]+568446438|0)<<5|n>>>27)+r|0)&o|r&~o)+t[14]-1019803690|0)<<9|a>>>23)+n|0)&r|n&~r)+t[3]-187363961|0)<<14|o>>>18)+a|0)&n|a&~n)+t[8]+1163531501|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+t[13]-1444681467|0)<<5|n>>>27)+r|0)&o|r&~o)+t[2]-51403784|0)<<9|a>>>23)+n|0)&r|n&~r)+t[7]+1735328473|0)<<14|o>>>18)+a|0)&n|a&~n)+t[12]-1926607734|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[5]-378558|0)<<4|n>>>28)+r|0)^r^o)+t[8]-2022574463|0)<<11|a>>>21)+n|0)^n^r)+t[11]+1839030562|0)<<16|o>>>16)+a|0)^a^n)+t[14]-35309556|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[1]-1530992060|0)<<4|n>>>28)+r|0)^r^o)+t[4]+1272893353|0)<<11|a>>>21)+n|0)^n^r)+t[7]-155497632|0)<<16|o>>>16)+a|0)^a^n)+t[10]-1094730640|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[13]+681279174|0)<<4|n>>>28)+r|0)^r^o)+t[0]-358537222|0)<<11|a>>>21)+n|0)^n^r)+t[3]-722521979|0)<<16|o>>>16)+a|0)^a^n)+t[6]+76029189|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[9]-640364487|0)<<4|n>>>28)+r|0)^r^o)+t[12]-421815835|0)<<11|a>>>21)+n|0)^n^r)+t[15]+530742520|0)<<16|o>>>16)+a|0)^a^n)+t[2]-995338651|0)<<23|r>>>9)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[0]-198630844|0)<<6|n>>>26)+r|0)|~o))+t[7]+1126891415|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+t[14]-1416354905|0)<<15|o>>>17)+a|0)|~n))+t[5]-57434055|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[12]+1700485571|0)<<6|n>>>26)+r|0)|~o))+t[3]-1894986606|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+t[10]-1051523|0)<<15|o>>>17)+a|0)|~n))+t[1]-2054922799|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[8]+1873313359|0)<<6|n>>>26)+r|0)|~o))+t[15]-30611744|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+t[6]-1560198380|0)<<15|o>>>17)+a|0)|~n))+t[13]+1309151649|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[4]-145523070|0)<<6|n>>>26)+r|0)|~o))+t[11]-1120210379|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+t[2]+718787259|0)<<15|o>>>17)+a|0)|~n))+t[9]-343485551|0)<<21|r>>>11)+o|0,e[0]=n+e[0]|0,e[1]=r+e[1]|0,e[2]=o+e[2]|0,e[3]=a+e[3]|0}function r(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}function o(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return n}function a(e){var t,o,a,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=c;t+=64)n(u,r(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t>2]|=e.charCodeAt(t)<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(u,a),t=0;t<16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}function i(e){var n,r="";for(n=0;n<4;n+=1)r+=t[e>>8*n+4&15]+t[e>>8*n&15];return r}function s(e){var t;for(t=0;tc?new ArrayBuffer(0):(r=c-l,o=new ArrayBuffer(r),a=new Uint8Array(o),i=new Uint8Array(this,l,r),a.set(i),o)}}(),u.prototype.append=function(e){return this.appendBinary(l(e)),this},u.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t<=o;t+=64)n(this._hash,r(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},u.prototype.end=function(e){var t,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t>2]|=r.charCodeAt(t)<<(t%4<<3);return this._finish(a,o),n=s(this._hash),e&&(n=c(n)),this.reset(),n},u.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},u.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},u.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},u.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},u.prototype._finish=function(e,t){var r,o,a,i=t;if(e[i>>2]|=128<<(i%4<<3),i>55)for(n(this._hash,e),i=0;i<16;i+=1)e[i]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(r[2],16),a=parseInt(r[1],16)||0,e[14]=o,e[15]=a,n(this._hash,e)},u.hash=function(e,t){return u.hashBinary(l(e),t)},u.hashBinary=function(e,t){var n=s(a(e));return t?c(n):n},u.ArrayBuffer=function(){this.reset()},u.ArrayBuffer.prototype.append=function(e){var t,r,a,i,s,l=(r=this._buff.buffer,a=e,i=!0,(s=new Uint8Array(r.byteLength+a.byteLength)).set(new Uint8Array(r)),s.set(new Uint8Array(a),r.byteLength),i?s:s.buffer),c=l.length;for(this._length+=e.byteLength,t=64;t<=c;t+=64)n(this._hash,o(l.subarray(t-64,t)));return this._buff=t-64>2]|=r[t]<<(t%4<<3);return this._finish(a,o),n=s(this._hash),e&&(n=c(n)),this.reset(),n},u.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},u.ArrayBuffer.prototype.getState=function(){var e,t=u.prototype.getState.call(this);return t.buff=(e=t.buff,String.fromCharCode.apply(null,new Uint8Array(e))),t},u.ArrayBuffer.prototype.setState=function(e){return e.buff=function(e,t){var n,r=e.length,o=new ArrayBuffer(r),a=new Uint8Array(o);for(n=0;n>2]|=e[t]<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(u,a),t=0;t<16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}(new Uint8Array(e)));return t?c(r):r},u}()},57:function(e,t,n){const r=n(514);e.exports=class extends r{constructor(e){super(),this._messageId=1,this._messages=new Map,this._worker=e,this._worker.onmessage=this._onMessage.bind(this),this._id=Math.ceil(1e7*Math.random())}terminate(){this._worker.terminate()}isFree(){return 0===this._messages.size}jobsLength(){return this._messages.size}exec(e,t=null,n=[],r){return new Promise(((o,a)=>{const i=this._messageId++;this._messages.set(i,[o,a,r]),this._worker.postMessage([i,t,e],n||[])}))}postMessage(e=null,t=[],n){return new Promise(((r,o)=>{const a=this._messageId++;this._messages.set(a,[r,o,n]),this._worker.postMessage([a,e],t||[])}))}emit(e,...t){this._worker.postMessage({eventName:e,args:t})}_onMessage(e){if(!Array.isArray(e.data)&&e.data.eventName)return super.emit(e.data.eventName,...e.data.args);const[t,...n]=e.data;if(1===t)this._onEvent(...n);else{if(0!==t)throw new Error(`Wrong message type '${t}'`);this._onResult(...n)}}_onResult(e,t,n){const[r,o]=this._messages.get(e);return this._messages.delete(e),1===t?r(n):o(n)}_onEvent(e,t,n){const[,,r]=this._messages.get(e);r&&r(t,n)}}},514:function(e){e.exports=class{constructor(){Object.defineProperty(this,"__listeners",{value:{},enumerable:!1,writable:!1})}emit(e,...t){if(!this.__listeners[e])return this;for(const n of this.__listeners[e])n(...t);return this}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};return this.on(e,n)}on(e,t){return this.__listeners[e]||(this.__listeners[e]=[]),this.__listeners[e].push(t),this}off(e,t){return this.__listeners[e]=t?this.__listeners[e].filter((e=>e!==t)):[],this}}},223:function(e,t,n){var r=n(974),o=n(903);void 0===o.GLTFImporter&&(o.GLTFImporter=r),e.exports=r},706:function(){}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.amdO={},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},n(223)}(); \ No newline at end of file +!function(){var e={974:function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,{add:function(){return Y},adjoint:function(){return m},clone:function(){return l},copy:function(){return c},create:function(){return s},determinant:function(){return h},equals:function(){return te},exactEquals:function(){return ee},frob:function(){return X},fromQuat:function(){return N},fromQuat2:function(){return R},fromRotation:function(){return P},fromRotationTranslation:function(){return M},fromRotationTranslationScale:function(){return V},fromRotationTranslationScaleOrigin:function(){return _},fromScaling:function(){return w},fromTranslation:function(){return A},fromValues:function(){return u},fromXRotation:function(){return I},fromYRotation:function(){return O},fromZRotation:function(){return E},frustum:function(){return F},getRotation:function(){return L},getScaling:function(){return B},getTranslation:function(){return D},identity:function(){return p},invert:function(){return g},lookAt:function(){return $},mul:function(){return ne},multiply:function(){return v},multiplyScalar:function(){return Z},multiplyScalarAndAdd:function(){return J},ortho:function(){return H},orthoNO:function(){return W},orthoZO:function(){return j},perspective:function(){return U},perspectiveFromFieldOfView:function(){return z},perspectiveNO:function(){return k},perspectiveZO:function(){return G},rotate:function(){return T},rotateX:function(){return x},rotateY:function(){return S},rotateZ:function(){return C},scale:function(){return y},set:function(){return d},str:function(){return q},sub:function(){return re},subtract:function(){return Q},targetTo:function(){return K},translate:function(){return b},transpose:function(){return f}});var o={};n.r(o),n.d(o,{add:function(){return Oe},adjoint:function(){return fe},clone:function(){return ie},copy:function(){return se},create:function(){return oe},determinant:function(){return ge},equals:function(){return Be},exactEquals:function(){return De},frob:function(){return Ie},fromMat2d:function(){return Se},fromMat4:function(){return ae},fromQuat:function(){return Ce},fromRotation:function(){return Te},fromScaling:function(){return xe},fromTranslation:function(){return ye},fromValues:function(){return le},identity:function(){return ue},invert:function(){return pe},mul:function(){return Le},multiply:function(){return me},multiplyScalar:function(){return Me},multiplyScalarAndAdd:function(){return Re},normalFromMat4:function(){return Ae},projection:function(){return we},rotate:function(){return ve},scale:function(){return be},set:function(){return ce},str:function(){return Pe},sub:function(){return Ve},subtract:function(){return Ee},translate:function(){return he},transpose:function(){return de}});var a=1e-6,i="undefined"!=typeof Float32Array?Float32Array:Array;function s(){var e=new i(16);return i!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function l(e){var t=new i(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function c(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function u(e,t,n,r,o,a,s,l,c,u,d,p,f,g,m,h){var v=new i(16);return v[0]=e,v[1]=t,v[2]=n,v[3]=r,v[4]=o,v[5]=a,v[6]=s,v[7]=l,v[8]=c,v[9]=u,v[10]=d,v[11]=p,v[12]=f,v[13]=g,v[14]=m,v[15]=h,v}function d(e,t,n,r,o,a,i,s,l,c,u,d,p,f,g,m,h){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e[9]=u,e[10]=d,e[11]=p,e[12]=f,e[13]=g,e[14]=m,e[15]=h,e}function p(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function f(e,t){if(e===t){var n=t[1],r=t[2],o=t[3],a=t[6],i=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=r,e[9]=a,e[11]=t[14],e[12]=o,e[13]=i,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function g(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],b=n*s-r*i,y=n*l-o*i,T=n*c-a*i,x=r*l-o*s,S=r*c-a*s,C=o*c-a*l,A=u*m-d*g,w=u*h-p*g,P=u*v-f*g,I=d*h-p*m,O=d*v-f*m,E=p*v-f*h,M=b*E-y*O+T*I+x*P-S*w+C*A;return M?(M=1/M,e[0]=(s*E-l*O+c*I)*M,e[1]=(o*O-r*E-a*I)*M,e[2]=(m*C-h*S+v*x)*M,e[3]=(p*S-d*C-f*x)*M,e[4]=(l*P-i*E-c*w)*M,e[5]=(n*E-o*P+a*w)*M,e[6]=(h*T-g*C-v*y)*M,e[7]=(u*C-p*T+f*y)*M,e[8]=(i*O-s*P+c*A)*M,e[9]=(r*P-n*O-a*A)*M,e[10]=(g*S-m*T+v*b)*M,e[11]=(d*T-u*S-f*b)*M,e[12]=(s*w-i*I-l*A)*M,e[13]=(n*I-r*w+o*A)*M,e[14]=(m*y-g*x-h*b)*M,e[15]=(u*x-d*y+p*b)*M,e):null}function m(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15];return e[0]=s*(p*v-f*h)-d*(l*v-c*h)+m*(l*f-c*p),e[1]=-(r*(p*v-f*h)-d*(o*v-a*h)+m*(o*f-a*p)),e[2]=r*(l*v-c*h)-s*(o*v-a*h)+m*(o*c-a*l),e[3]=-(r*(l*f-c*p)-s*(o*f-a*p)+d*(o*c-a*l)),e[4]=-(i*(p*v-f*h)-u*(l*v-c*h)+g*(l*f-c*p)),e[5]=n*(p*v-f*h)-u*(o*v-a*h)+g*(o*f-a*p),e[6]=-(n*(l*v-c*h)-i*(o*v-a*h)+g*(o*c-a*l)),e[7]=n*(l*f-c*p)-i*(o*f-a*p)+u*(o*c-a*l),e[8]=i*(d*v-f*m)-u*(s*v-c*m)+g*(s*f-c*d),e[9]=-(n*(d*v-f*m)-u*(r*v-a*m)+g*(r*f-a*d)),e[10]=n*(s*v-c*m)-i*(r*v-a*m)+g*(r*c-a*s),e[11]=-(n*(s*f-c*d)-i*(r*f-a*d)+u*(r*c-a*s)),e[12]=-(i*(d*h-p*m)-u*(s*h-l*m)+g*(s*p-l*d)),e[13]=n*(d*h-p*m)-u*(r*h-o*m)+g*(r*p-o*d),e[14]=-(n*(s*h-l*m)-i*(r*h-o*m)+g*(r*l-o*s)),e[15]=n*(s*p-l*d)-i*(r*p-o*d)+u*(r*l-o*s),e}function h(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8],u=e[9],d=e[10],p=e[11],f=e[12],g=e[13],m=e[14],h=e[15];return(t*i-n*a)*(d*h-p*m)-(t*s-r*a)*(u*h-p*g)+(t*l-o*a)*(u*m-d*g)+(n*s-r*i)*(c*h-p*f)-(n*l-o*i)*(c*m-d*f)+(r*l-o*s)*(c*g-u*f)}function v(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],m=t[12],h=t[13],v=t[14],b=t[15],y=n[0],T=n[1],x=n[2],S=n[3];return e[0]=y*r+T*s+x*d+S*m,e[1]=y*o+T*l+x*p+S*h,e[2]=y*a+T*c+x*f+S*v,e[3]=y*i+T*u+x*g+S*b,y=n[4],T=n[5],x=n[6],S=n[7],e[4]=y*r+T*s+x*d+S*m,e[5]=y*o+T*l+x*p+S*h,e[6]=y*a+T*c+x*f+S*v,e[7]=y*i+T*u+x*g+S*b,y=n[8],T=n[9],x=n[10],S=n[11],e[8]=y*r+T*s+x*d+S*m,e[9]=y*o+T*l+x*p+S*h,e[10]=y*a+T*c+x*f+S*v,e[11]=y*i+T*u+x*g+S*b,y=n[12],T=n[13],x=n[14],S=n[15],e[12]=y*r+T*s+x*d+S*m,e[13]=y*o+T*l+x*p+S*h,e[14]=y*a+T*c+x*f+S*v,e[15]=y*i+T*u+x*g+S*b,e}function b(e,t,n){var r,o,a,i,s,l,c,u,d,p,f,g,m=n[0],h=n[1],v=n[2];return t===e?(e[12]=t[0]*m+t[4]*h+t[8]*v+t[12],e[13]=t[1]*m+t[5]*h+t[9]*v+t[13],e[14]=t[2]*m+t[6]*h+t[10]*v+t[14],e[15]=t[3]*m+t[7]*h+t[11]*v+t[15]):(r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=t[9],f=t[10],g=t[11],e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=c,e[7]=u,e[8]=d,e[9]=p,e[10]=f,e[11]=g,e[12]=r*m+s*h+d*v+t[12],e[13]=o*m+l*h+p*v+t[13],e[14]=a*m+c*h+f*v+t[14],e[15]=i*m+u*h+g*v+t[15]),e}function y(e,t,n){var r=n[0],o=n[1],a=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*o,e[5]=t[5]*o,e[6]=t[6]*o,e[7]=t[7]*o,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function T(e,t,n,r){var o,i,s,l,c,u,d,p,f,g,m,h,v,b,y,T,x,S,C,A,w,P,I,O,E=r[0],M=r[1],R=r[2],D=Math.hypot(E,M,R);return D0?(n[0]=2*(l*s+d*r+c*a-u*o)/p,n[1]=2*(c*s+d*o+u*r-l*a)/p,n[2]=2*(u*s+d*a+l*o-c*r)/p):(n[0]=2*(l*s+d*r+c*a-u*o),n[1]=2*(c*s+d*o+u*r-l*a),n[2]=2*(u*s+d*a+l*o-c*r)),M(e,t,n),e}function D(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function B(e,t){var n=t[0],r=t[1],o=t[2],a=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,o),e[1]=Math.hypot(a,i,s),e[2]=Math.hypot(l,c,u),e}function L(e,t){var n=new i(3);B(n,t);var r=1/n[0],o=1/n[1],a=1/n[2],s=t[0]*r,l=t[1]*o,c=t[2]*a,u=t[4]*r,d=t[5]*o,p=t[6]*a,f=t[8]*r,g=t[9]*o,m=t[10]*a,h=s+d+m,v=0;return h>0?(v=2*Math.sqrt(h+1),e[3]=.25*v,e[0]=(p-g)/v,e[1]=(f-c)/v,e[2]=(l-u)/v):s>d&&s>m?(v=2*Math.sqrt(1+s-d-m),e[3]=(p-g)/v,e[0]=.25*v,e[1]=(l+u)/v,e[2]=(f+c)/v):d>m?(v=2*Math.sqrt(1+d-s-m),e[3]=(f-c)/v,e[0]=(l+u)/v,e[1]=.25*v,e[2]=(p+g)/v):(v=2*Math.sqrt(1+m-s-d),e[3]=(l-u)/v,e[0]=(f+c)/v,e[1]=(p+g)/v,e[2]=.25*v),e}function V(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=t[3],l=o+o,c=a+a,u=i+i,d=o*l,p=o*c,f=o*u,g=a*c,m=a*u,h=i*u,v=s*l,b=s*c,y=s*u,T=r[0],x=r[1],S=r[2];return e[0]=(1-(g+h))*T,e[1]=(p+y)*T,e[2]=(f-b)*T,e[3]=0,e[4]=(p-y)*x,e[5]=(1-(d+h))*x,e[6]=(m+v)*x,e[7]=0,e[8]=(f+b)*S,e[9]=(m-v)*S,e[10]=(1-(d+g))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function _(e,t,n,r,o){var a=t[0],i=t[1],s=t[2],l=t[3],c=a+a,u=i+i,d=s+s,p=a*c,f=a*u,g=a*d,m=i*u,h=i*d,v=s*d,b=l*c,y=l*u,T=l*d,x=r[0],S=r[1],C=r[2],A=o[0],w=o[1],P=o[2],I=(1-(m+v))*x,O=(f+T)*x,E=(g-y)*x,M=(f-T)*S,R=(1-(p+v))*S,D=(h+b)*S,B=(g+y)*C,L=(h-b)*C,V=(1-(p+m))*C;return e[0]=I,e[1]=O,e[2]=E,e[3]=0,e[4]=M,e[5]=R,e[6]=D,e[7]=0,e[8]=B,e[9]=L,e[10]=V,e[11]=0,e[12]=n[0]+A-(I*A+M*w+B*P),e[13]=n[1]+w-(O*A+R*w+L*P),e[14]=n[2]+P-(E*A+D*w+V*P),e[15]=1,e}function N(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[1]=u+v,e[2]=p-h,e[3]=0,e[4]=u-v,e[5]=1-c-g,e[6]=f+m,e[7]=0,e[8]=p+h,e[9]=f-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function F(e,t,n,r,o,a,i){var s=1/(n-t),l=1/(o-r),c=1/(a-i);return e[0]=2*a*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*a*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(o+r)*l,e[10]=(i+a)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*a*2*c,e[15]=0,e}function k(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&&o!==1/0?(a=1/(r-o),e[10]=(o+r)*a,e[14]=2*o*r*a):(e[10]=-1,e[14]=-2*r),e}Math.random,Math.PI,Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var U=k;function G(e,t,n,r,o){var a,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=o&&o!==1/0?(a=1/(r-o),e[10]=o*a,e[14]=o*r*a):(e[10]=-1,e[14]=-r),e}function z(e,t,n,r){var o=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(o+a);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(o-a)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e}function W(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=(i+a)*c,e[15]=1,e}var H=W;function j(e,t,n,r,o,a,i){var s=1/(t-n),l=1/(r-o),c=1/(a-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=c,e[11]=0,e[12]=(t+n)*s,e[13]=(o+r)*l,e[14]=a*c,e[15]=1,e}function $(e,t,n,r){var o,i,s,l,c,u,d,f,g,m,h=t[0],v=t[1],b=t[2],y=r[0],T=r[1],x=r[2],S=n[0],C=n[1],A=n[2];return Math.abs(h-S)0&&(u*=f=1/Math.sqrt(f),d*=f,p*=f);var g=l*p-c*d,m=c*u-s*p,h=s*d-l*u;return(f=g*g+m*m+h*h)>0&&(g*=f=1/Math.sqrt(f),m*=f,h*=f),e[0]=g,e[1]=m,e[2]=h,e[3]=0,e[4]=d*h-p*m,e[5]=p*g-u*h,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=p,e[11]=0,e[12]=o,e[13]=a,e[14]=i,e[15]=1,e}function q(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function X(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function Y(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function Q(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function Z(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}function J(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e}function ee(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function te(e,t){var n=e[0],r=e[1],o=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=e[9],f=e[10],g=e[11],m=e[12],h=e[13],v=e[14],b=e[15],y=t[0],T=t[1],x=t[2],S=t[3],C=t[4],A=t[5],w=t[6],P=t[7],I=t[8],O=t[9],E=t[10],M=t[11],R=t[12],D=t[13],B=t[14],L=t[15];return Math.abs(n-y)<=a*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(r-T)<=a*Math.max(1,Math.abs(r),Math.abs(T))&&Math.abs(o-x)<=a*Math.max(1,Math.abs(o),Math.abs(x))&&Math.abs(i-S)<=a*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(s-C)<=a*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(l-A)<=a*Math.max(1,Math.abs(l),Math.abs(A))&&Math.abs(c-w)<=a*Math.max(1,Math.abs(c),Math.abs(w))&&Math.abs(u-P)<=a*Math.max(1,Math.abs(u),Math.abs(P))&&Math.abs(d-I)<=a*Math.max(1,Math.abs(d),Math.abs(I))&&Math.abs(p-O)<=a*Math.max(1,Math.abs(p),Math.abs(O))&&Math.abs(f-E)<=a*Math.max(1,Math.abs(f),Math.abs(E))&&Math.abs(g-M)<=a*Math.max(1,Math.abs(g),Math.abs(M))&&Math.abs(m-R)<=a*Math.max(1,Math.abs(m),Math.abs(R))&&Math.abs(h-D)<=a*Math.max(1,Math.abs(h),Math.abs(D))&&Math.abs(v-B)<=a*Math.max(1,Math.abs(v),Math.abs(B))&&Math.abs(b-L)<=a*Math.max(1,Math.abs(b),Math.abs(L))}var ne=v,re=Q;function oe(){var e=new i(9);return i!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function ae(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function ie(e){var t=new i(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function se(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function le(e,t,n,r,o,a,s,l,c){var u=new i(9);return u[0]=e,u[1]=t,u[2]=n,u[3]=r,u[4]=o,u[5]=a,u[6]=s,u[7]=l,u[8]=c,u}function ce(e,t,n,r,o,a,i,s,l,c){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=l,e[8]=c,e}function ue(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function de(e,t){if(e===t){var n=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function pe(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=u*i-s*c,p=-u*a+s*l,f=c*a-i*l,g=n*d+r*p+o*f;return g?(g=1/g,e[0]=d*g,e[1]=(-u*r+o*c)*g,e[2]=(s*r-o*i)*g,e[3]=p*g,e[4]=(u*n-o*l)*g,e[5]=(-s*n+o*a)*g,e[6]=f*g,e[7]=(-c*n+r*l)*g,e[8]=(i*n-r*a)*g,e):null}function fe(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8];return e[0]=i*u-s*c,e[1]=o*c-r*u,e[2]=r*s-o*i,e[3]=s*l-a*u,e[4]=n*u-o*l,e[5]=o*a-n*s,e[6]=a*c-i*l,e[7]=r*l-n*c,e[8]=n*i-r*a,e}function ge(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],l=e[7],c=e[8];return t*(c*a-i*l)+n*(-c*o+i*s)+r*(l*o-a*s)}function me(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1],g=n[2],m=n[3],h=n[4],v=n[5],b=n[6],y=n[7],T=n[8];return e[0]=p*r+f*i+g*c,e[1]=p*o+f*s+g*u,e[2]=p*a+f*l+g*d,e[3]=m*r+h*i+v*c,e[4]=m*o+h*s+v*u,e[5]=m*a+h*l+v*d,e[6]=b*r+y*i+T*c,e[7]=b*o+y*s+T*u,e[8]=b*a+y*l+T*d,e}function he(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=n[0],f=n[1];return e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=p*r+f*i+c,e[7]=p*o+f*s+u,e[8]=p*a+f*l+d,e}function ve(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],l=t[5],c=t[6],u=t[7],d=t[8],p=Math.sin(n),f=Math.cos(n);return e[0]=f*r+p*i,e[1]=f*o+p*s,e[2]=f*a+p*l,e[3]=f*i-p*r,e[4]=f*s-p*o,e[5]=f*l-p*a,e[6]=c,e[7]=u,e[8]=d,e}function be(e,t,n){var r=n[0],o=n[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function ye(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e}function Te(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function xe(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Se(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e}function Ce(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,l=o+o,c=n*i,u=r*i,d=r*s,p=o*i,f=o*s,g=o*l,m=a*i,h=a*s,v=a*l;return e[0]=1-d-g,e[3]=u-v,e[6]=p+h,e[1]=u+v,e[4]=1-c-g,e[7]=f-m,e[2]=p-h,e[5]=f+m,e[8]=1-c-d,e}function Ae(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],l=t[6],c=t[7],u=t[8],d=t[9],p=t[10],f=t[11],g=t[12],m=t[13],h=t[14],v=t[15],b=n*s-r*i,y=n*l-o*i,T=n*c-a*i,x=r*l-o*s,S=r*c-a*s,C=o*c-a*l,A=u*m-d*g,w=u*h-p*g,P=u*v-f*g,I=d*h-p*m,O=d*v-f*m,E=p*v-f*h,M=b*E-y*O+T*I+x*P-S*w+C*A;return M?(M=1/M,e[0]=(s*E-l*O+c*I)*M,e[1]=(l*P-i*E-c*w)*M,e[2]=(i*O-s*P+c*A)*M,e[3]=(o*O-r*E-a*I)*M,e[4]=(n*E-o*P+a*w)*M,e[5]=(r*P-n*O-a*A)*M,e[6]=(m*C-h*S+v*x)*M,e[7]=(h*T-g*C-v*y)*M,e[8]=(g*S-m*T+v*b)*M,e):null}function we(e,t,n){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function Pe(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function Ie(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function Oe(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e}function Ee(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e}function Me(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e}function Re(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e}function De(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]}function Be(e,t){var n=e[0],r=e[1],o=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=t[0],f=t[1],g=t[2],m=t[3],h=t[4],v=t[5],b=t[6],y=t[7],T=t[8];return Math.abs(n-p)<=a*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(r-f)<=a*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(o-g)<=a*Math.max(1,Math.abs(o),Math.abs(g))&&Math.abs(i-m)<=a*Math.max(1,Math.abs(i),Math.abs(m))&&Math.abs(s-h)<=a*Math.max(1,Math.abs(s),Math.abs(h))&&Math.abs(l-v)<=a*Math.max(1,Math.abs(l),Math.abs(v))&&Math.abs(c-b)<=a*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(u-y)<=a*Math.max(1,Math.abs(u),Math.abs(y))&&Math.abs(d-T)<=a*Math.max(1,Math.abs(d),Math.abs(T))}var Le=me,Ve=Ee,_e=n(152),Ne=n.n(_e),Fe=n(177);const ke=n.n(Fe)()(),Ue={vtkObject:()=>null};function Ge(e){if(null==e)return e;if(e.isA)return e;if(!e.vtkClass)return ke.console&&ke.console.error&&ke.console.error("Invalid VTK object"),null;const t=Ue[e.vtkClass];if(!t)return ke.console&&ke.console.error&&ke.console.error(`No vtk class found for Object of type ${e.vtkClass}`),null;const n={...e};Object.keys(n).forEach((e=>{n[e]&&"object"==typeof n[e]&&n[e].vtkClass&&(n[e]=Ge(n[e]))}));const r=t(n);return r&&r.modified&&r.modified(),r}Ge.register=function(e,t){Ue[e]=t};class ze extends Array{push(){for(let e=0;e{je[e]=$e})),ke.console=console.hasOwnProperty("log")?console:je;const Ke={debug:$e,error:ke.console.error||$e,info:ke.console.info||$e,log:ke.console.log||$e,warn:ke.console.warn||$e};function qe(e,t){Ke[e]&&(Ke[e]=t||$e)}function Xe(){Ke.log(...arguments)}function Ye(){Ke.info(...arguments)}function Qe(){Ke.debug(...arguments)}function Ze(){Ke.error(...arguments)}function Je(){Ke.warn(...arguments)}const et={};function tt(e){et[e]||(Ke.error(e),et[e]=!0)}const nt=Object.create(null);nt.Float32Array=Float32Array,nt.Float64Array=Float64Array,nt.Uint8Array=Uint8Array,nt.Int8Array=Int8Array,nt.Uint16Array=Uint16Array,nt.Int16Array=Int16Array,nt.Uint32Array=Uint32Array,nt.Int32Array=Int32Array,nt.Uint8ClampedArray=Uint8ClampedArray;try{nt.BigInt64Array=BigInt64Array,nt.BigUint64Array=BigUint64Array}catch{}function rt(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3;const r=["TB","GB","MB","KB"];let o=Number(e),a="B";for(;o>n;)o/=n,a=r.pop();return`${o.toFixed(t)} ${a}`}function ct(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";const n=[];let r=e;for(;r>1e3;)n.push(("000"+r%1e3).slice(-3)),r=Math.floor(r/1e3);return r>0&&n.push(r),n.reverse(),n.join(t)}function ut(e){Object.keys(e).forEach((t=>{Array.isArray(e[t])&&(e[t]=[].concat(e[t]))}))}function dt(e){return Object.values(nt).some((t=>e instanceof t))}function pt(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n{const e=performance.now()-n;t(e)}))}function ht(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ut(t);const n=[];if(Number.isInteger(t.mtime)||(t.mtime=++We),"classHierarchy"in t){if(!(t.classHierarchy instanceof ze)){const e=new ze;for(let n=0;n!!t.deleted,e.modified=r=>{t.deleted?Ze("instance deleted - cannot call any method"):r&&rt&&t(e))))},e.onModified=e=>{if(t.deleted)return Ze("instance deleted - cannot call any method"),null;const r=n.length;return n.push(e),o(r)},e.getMTime=()=>t.mtime,e.isA=e=>{let n=t.classHierarchy.length;for(;n--;)if(t.classHierarchy[n]===e)return!0;return!1},e.getClassName=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.classHierarchy[t.classHierarchy.length-1-e]},e.set=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=!1;return Object.keys(n).forEach((i=>{const s=o?null:e[`set${at(i)}`];s&&Array.isArray(n[i])&&s.length>1?a=s(...n[i])||a:s?a=s(n[i])||a:(-1!==["mtime"].indexOf(i)||r||Je(`Warning: Set value to model directly ${i}, ${n[i]}`),a=t[i]!==n[i]||a,t[i]=n[i])})),a},e.get=function(){for(var e=arguments.length,n=new Array(e),r=0;r{o[e]=t[e]})),o},e.getReferenceByName=e=>t[e],e.delete=()=>{Object.keys(t).forEach((e=>delete t[e])),n.forEach(((e,t)=>r(t))),t.deleted=!0},e.getState=()=>{if(t.deleted)return null;const n={...t,vtkClass:e.getClassName()};Object.keys(n).forEach((e=>{null===n[e]||void 0===n[e]||"_"===e[0]?delete n[e]:n[e].isA?n[e]=n[e].getState():Array.isArray(n[e])?n[e]=n[e].map(ft):dt(n[e])&&(n[e]=Array.from(n[e]))}));const r={};return Object.keys(n).sort().forEach((e=>{r[e]=n[e]})),r.mtime&&delete r.mtime,r},e.shallowCopy=function(n){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(n.getClassName()!==e.getClassName())throw new Error(`Cannot ShallowCopy ${n.getClassName()} into ${e.getClassName()}`);const o=n.get(),a=Object.keys(t).sort(),i=Object.keys(o).sort();i.forEach((e=>{const n=a.indexOf(e);-1===n?r&&Qe(`add ${e} in shallowCopy`):a.splice(n,1),t[e]=o[e]})),a.length&&r&&Qe(`Untouched keys: ${a.join(", ")}`),e.modified()},e.toJSON=function(){return e.getState()},e}const vt={object:(e,t,n)=>function(){return{...t[n.name]}}};function bt(e,t,n){n.forEach((n=>{if("object"==typeof n){const r=vt[n.type];e[`get${it(n.name)}`]=r?r(e,t,n):()=>t[n.name]}else e[`get${it(n)}`]=()=>t[n]}))}const yt={enum(e,t,n){const r=`_on${it(n.name)}Changed`;return o=>{if("string"==typeof o){if(void 0!==n.enum[o])return t[n.name]!==n.enum[o]&&(t[n.name]=n.enum[o],e.modified(),!0);throw Ze(`Set Enum with invalid argument ${n}, ${o}`),new RangeError("Set Enum with invalid string argument")}if("number"==typeof o){if(t[n.name]!==o){if(-1!==Object.keys(n.enum).map((e=>n.enum[e])).indexOf(o)){const a=t[n.name];return t[n.name]=o,t[r]?.(e,t,o,a),e.modified(),!0}throw Ze(`Set Enum outside numeric range ${n}, ${o}`),new RangeError("Set Enum outside numeric range")}return!1}throw Ze(`Set Enum with invalid argument (String/Number) ${n}, ${o}`),new TypeError("Set Enum with invalid argument (String/Number)")}},object(e,t,n){1===n.params?.length&&Je('Setter of type "object" with a single "param" field is not supported');const r=`_on${it(n.name)}Changed`;return function(){for(var o=arguments.length,a=new Array(o),i=0;i1&&n.params?.length?n.params.reduce(((e,t,n)=>Object.assign(e,{[t]:a[n]})),{}):a[0],!Ne()(t[n.name],s)){const o=t[n.name];return t[n.name]=s,t[r]?.(e,t,s,o),e.modified(),!0}return!1}}};function Tt(e){if("object"==typeof e){const t=yt[e.type];if(t)return(n,r)=>t(n,r,e);throw Ze(`No setter for field ${e}`),new TypeError("No setter for field")}return function(t,n){const r=`_on${it(e)}Changed`;return function(o){if(n.deleted)return Ze("instance deleted - cannot call any method"),!1;if(n[e]!==o){const a=n[e.name];return n[e]=o,n[r]?.(t,n,o,a),t.modified(),!0}return!1}}}function xt(e,t,n){n.forEach((n=>{"object"==typeof n?e[`set${it(n.name)}`]=Tt(n)(e,t):e[`set${it(n)}`]=Tt(n)(e,t)}))}function St(e,t,n){bt(e,t,n),xt(e,t,n)}function Ct(e,t,n){n.forEach((n=>{e[`get${it(n)}`]=()=>t[n]?Array.from(t[n]):t[n],e[`get${it(n)}ByReference`]=()=>t[n]}))}function At(e,t,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;n.forEach((n=>{if(t[n]&&r&&t[n].length!==r)throw new RangeError(`Invalid initial number of values for array (${n})`);const a=`_on${it(n)}Changed`;e[`set${it(n)}`]=function(){if(t.deleted)return Ze("instance deleted - cannot call any method"),!1;for(var i=arguments.length,s=new Array(i),l=0;l=0)&&(u=u[0],d=!0),null==u)c=t[n]!==u;else{if(r&&u.length!==r){if(!(u.length{const r=t[n];e.forEach(((e,t)=>{r[t]=e}))}}))}function wt(e,t,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;Ct(e,t,n),At(e,t,n,r,o)}function Pt(e,t,n){for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:0;t.deleted?Ze("instance deleted - cannot call any method"):r>=t.numberOfInputs?Ze(`algorithm ${e.getClassName()} only has ${t.numberOfInputs} input ports. To add more input ports, use addInputData()`):(t.inputData[r]!==n||t.inputConnection[r])&&(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&&e.modified())}function a(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.deleted)Ze("instance deleted - cannot call any method");else{if(r>=t.numberOfInputs){let n=`algorithm ${e.getClassName()} only has `;return n+=`${t.numberOfInputs}`,n+=" input ports. To add more input ports, use addInputConnection()",void Ze(n)}t.inputData[r]=null,t.inputConnection[r]=n}}function i(){let e=t.numberOfInputs;for(;e&&!t.inputData[e-1]&&!t.inputConnection[e-1];)e--;return e===t.numberOfInputs&&t.numberOfInputs++,e}function s(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.deleted?(Ze("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(Ge):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(Ge):t.inputConnection=[],t.output?t.output=t.output.map(Ge):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(Ge):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=()=>{const n=e.getMTime();let o=1/0,a=r;for(;a--;){if(!t.output[a]||t.output[a].isDeleted())return!0;const e=t.output[a].getMTime();if(eo)return!0;return!1},t.numberOfInputs){let n=t.numberOfInputs;for(;n--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=a,e.addInputData=function(e){t.deleted?Ze("instance deleted - cannot call any method"):o(e,i())},e.addInputConnection=function(e){t.deleted?Ze("instance deleted - cannot call any method"):a(e,i())},e.getInputData=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]&&(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]}}r&&(e.getOutputData=s,e.getOutputPort=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const n=()=>s(t);return n.filter=e,n}),e.update=()=>{const n=[];if(t.numberOfInputs){let r=0;for(;rt.numberOfInputs,e.getNumberOfOutputPorts=()=>r||t.output.length,e.getInputArrayToProcess=e=>{const n=t.inputArrayToProcess[e],r=t.inputData[e];return n&&r?r[`get${n.fieldAssociation}`]().getArray(n.arrayName):null},e.setInputArrayToProcess=function(e,n,r){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"Scalars";for(;t.inputArrayToProcess.lengthr.apply(e,arguments)),1-o);else if(r.apply(e,arguments)===Ot)break}},e[`on${it(n)}`]=function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!e.apply)return console.error(`Invalid callback for event ${n}`),null;if(t.deleted)return Ze("instance deleted - cannot call any method"),null;const i=a++;return r.push([i,e,o]),r.sort(((e,t)=>t[2]-e[2])),s(i)},e.delete=()=>{o(),r.forEach((e=>{let[t]=e;return i(t)}))}}function Mt(e,t){const n=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n={},r={};return e(r,n,t),Object.freeze(r)};return t&&Ge.register(t,n),n}function Rt(){for(var e=arguments.length,t=new Array(e),n=0;n!!e)).map((e=>e(...n)))}}function Dt(e){return e&&e.isA&&e.isA("vtkObject")}function Bt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(Dt(e)){if(r.indexOf(e)>=0)return n;r.push(e);const o=t(e);void 0!==o&&n.push(o);const a=e.get();Object.keys(a).forEach((e=>{const o=a[e];Array.isArray(o)?o.forEach((e=>{Bt(e,t,n,r)})):Bt(o,t,n,r)}))}return n}function Lt(e,t,n){var r=this;let o;const a=function(){for(var a=arguments.length,i=new Array(a),s=0;s{o=null,n||e.apply(l,i)},u=n&&!o;clearTimeout(o),o=setTimeout(c,t),u&&e.apply(l,i)};return a.cancel=()=>clearTimeout(o),a}function Vt(e,t){let n=!1,r=null;function o(){n=!1,null!==r&&(a(...r),r=null)}function a(){for(var a=arguments.length,i=new Array(a),s=0;s2&&void 0!==arguments[2]?arguments[2]:{};t.keystore=Object.assign(t.keystore||{},n),e.setKey=(e,n)=>{t.keystore[e]=n},e.getKey=e=>t.keystore[e],e.getAllKeys=()=>Object.keys(t.keystore),e.deleteKey=e=>delete t.keystore[e],e.clearKeystore=()=>e.getAllKeys().forEach((e=>delete t.keystore[e]))}let Nt=1;const Ft="__root__";function kt(e,t){_t(e,t);const n=e.delete;t.proxyId=""+Nt++,t.ui=JSON.parse(JSON.stringify(t.ui||[])),bt(e,t,["proxyId","proxyGroup","proxyName"]),St(e,t,["proxyManager"]);const r={},o={};function a(e,t){o[t]||(o[t]=[]);const n=o[t];for(let t=0;t0&&void 0!==arguments[0]?arguments[0]:Ft;return o[e]}function s(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ft;const r=[],o=t.proxyId,a=i(n)||[];for(let t=0;t{t.ui=JSON.parse(JSON.stringify(n||[])),Object.keys(r).forEach((e=>delete r[e])),Object.keys(o).forEach((e=>delete o[e])),a(t.ui,Ft),e.modified()},e.updateProxyProperty=(e,t)=>{const n=r[e];n?Object.assign(n,t):r[e]={...t}},e.activate=()=>{if(t.proxyManager){const n=`setActive${it(e.getProxyGroup().slice(0,-1))}`;t.proxyManager[n]&&t.proxyManager[n](e)}},t.propertyLinkSubscribers={},e.registerPropertyLinkForGC=(e,n)=>{n in t.propertyLinkSubscribers||(t.propertyLinkSubscribers[n]=[]),t.propertyLinkSubscribers[n].push(e)},e.gcPropertyLinks=n=>{const r=t.propertyLinkSubscribers[n]||[];for(;r.length;)r.pop().unbind(e)},t.propertyLinkMap={},e.getPropertyLink=function(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t.propertyLinkMap[e])return t.propertyLinkMap[e];let r=null;const o=[];let a=0,i=!1;function s(n){let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(i)return null;const l=[];let c=null;for(a=o.length;a--;){const e=o[a];e.instance===n?c=e:l.push(e)}if(!c)return null;const u=c.instance[`get${it(c.propertyName)}`]();if(!pt(u,r)||s){for(r=u,i=!0;l.length;){const e=l.pop();e.instance.set({[e.propertyName]:r})}i=!1}return t.propertyLinkMap[e].persistent&&(t.propertyLinkMap[e].value=u),u}function l(e,t){const n=[];for(a=o.length;a--;){const r=o[a];r.instance!==e||r.propertyName!==t&&void 0!==t||(r.subscription.unsubscribe(),n.push(a))}for(;n.length;)o.splice(n.pop(),1)}function c(n,r){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=n.onModified(s),c=o[0];return o.push({instance:n,propertyName:r,subscription:i}),a&&(t.propertyLinkMap[e].persistent&&void 0!==t.propertyLinkMap[e].value?n.set({[r]:t.propertyLinkMap[e].value}):c&&s(c.instance,!0)),{unsubscribe:()=>l(n,r)}}function u(){for(;o.length;)o.pop().subscription.unsubscribe()}const d={bind:c,unbind:l,unsubscribe:u,persistent:n};return t.propertyLinkMap[e]=d,d},e.listPropertyNames=()=>s().map((e=>e.name)),e.getPropertyByName=e=>s().find((t=>t.name===e)),e.getPropertyDomainByName=e=>(r[e]||{}).domain,e.getProxySection=()=>({id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:s()}),e.delete=()=>{const r=Object.keys(t.propertyLinkMap);let o=r.length;for(;o--;)t.propertyLinkMap[r[o]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},e.getState=()=>null,gt((function(){if(t.links)for(let n=0;n{for(;o.length;)o.pop().unsubscribe();r()}}function Gt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};function o(e){const n=Object.keys(e);let r=n.length;for(;r--;){const o=n[r];t[o].set(e[o])}}t.this=e;const a=Object.keys(r);let i=a.length;for(;i--;){const s=a[i];t[s]=r[s];const l=n[s];e[`set${it(s)}`]=n=>{n!==t[s]&&(t[s]=n,o(l[n]),e.modified())}}a.length&&bt(e,t,a)}function zt(e){let t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n||t,pixelX:r,pixelY:o||r}}var Wt={algo:It,capitalize:at,chain:Rt,debounce:Lt,enumToString:function(e,t){return Object.keys(e).find((n=>e[n]===t))},event:Et,EVENT_ABORT:Ot,formatBytesToProperUnit:lt,formatNumbersWithThousandSeparator:ct,get:bt,getArray:Ct,getCurrentGlobalMTime:function(){return We},getStateArrayMapFunc:ft,isVtkObject:Dt,keystore:_t,measurePromiseExecution:mt,moveToProtected:Pt,newInstance:Mt,newTypedArray:rt,newTypedArrayFrom:ot,normalizeWheel:zt,obj:ht,proxy:kt,proxyPropertyMapping:Ut,proxyPropertyState:Gt,safeArrays:ut,set:xt,setArray:At,setGet:St,setGetArray:wt,setImmediate:gt,setLoggerFunction:qe,throttle:Vt,traverseInstanceTree:Bt,TYPED_ARRAYS:nt,uncapitalize:st,VOID:He,vtkDebugMacro:Qe,vtkErrorMacro:Ze,vtkInfoMacro:Ye,vtkLogMacro:Xe,vtkOnceErrorMacro:tt,vtkWarningMacro:Je,objectSetterMap:yt},Ht=Object.freeze({__proto__:null,VOID:He,setLoggerFunction:qe,vtkLogMacro:Xe,vtkInfoMacro:Ye,vtkDebugMacro:Qe,vtkErrorMacro:Ze,vtkWarningMacro:Je,vtkOnceErrorMacro:tt,TYPED_ARRAYS:nt,newTypedArray:rt,newTypedArrayFrom:ot,capitalize:at,_capitalize:it,uncapitalize:st,formatBytesToProperUnit:lt,formatNumbersWithThousandSeparator:ct,setImmediateVTK:gt,measurePromiseExecution:mt,obj:ht,get:bt,set:xt,setGet:St,getArray:Ct,setArray:At,setGetArray:wt,moveToProtected:Pt,algo:It,EVENT_ABORT:Ot,event:Et,newInstance:Mt,chain:Rt,isVtkObject:Dt,traverseInstanceTree:Bt,debounce:Lt,throttle:Vt,keystore:_t,proxy:kt,proxyPropertyMapping:Ut,proxyPropertyState:Gt,normalizeWheel:zt,default:Wt});const{vtkErrorMacro:jt}=Wt;function $t(e,t){t.classHierarchy.push("vtkViewNode"),e.build=e=>{},e.render=e=>{},e.traverse=n=>{const r=n.getTraverseOperation(),o=e[r];if(o)o(n);else{e.apply(n,!0);for(let e=0;e{const r=e[t.getOperation()];r&&r(n,t)},e.getViewNodeFor=n=>{if(t.renderable===n)return e;for(let e=0;et._parent?t._parent.isA(e)?t._parent:t._parent.getFirstAncestorOfType(e):null,e.getLastAncestorOfType=e=>{if(!t._parent)return null;return t._parent.getLastAncestorOfType(e)||(t._parent.isA(e)?t._parent:null)},e.addMissingNode=n=>{if(!n)return;const r=t._renderableChildMap.get(n);if(void 0!==r)return r.setVisited(!0),r;const o=e.createViewNode(n);return o?(o.setParent(e),o.setVisited(!0),t._renderableChildMap.set(n,o),t.children.push(o),o):void 0},e.addMissingNodes=t=>{if(t&&t.length)for(let n=0;n{if(n&&n.length)for(let r=0;r{const n=t.children.findIndex((t=>t===e));if(n<0)return!1;const r=e.getRenderable();return r&&t._renderableChildMap.delete(r),e.delete(),t.children.splice(n,1),!0},e.prepareNodes=()=>{for(let e=0;e{t.visited=e},e.removeUnusedNodes=()=>{let e=0;for(let n=0;n{if(!t.myFactory)return jt("Cannot create view nodes without my own factory"),null;const n=t.myFactory.createNode(e);return n&&n.setRenderable(e),n};const n=e.delete;e.delete=()=>{for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kt,n),Wt.obj(e,t),Wt.event(e,t,"event"),t._renderableChildMap=new Map,Wt.get(e,t,["visited"]),Wt.setGet(e,t,["_parent","renderable","myFactory"]),Wt.getArray(e,t,["children"]),Wt.moveToProtected(e,t,["parent"]),$t(e,t)}var Xt={newInstance:Wt.newInstance(qt,"vtkViewNode"),extend:qt,PASS_TYPES:["Build","Render"]};function Yt(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push("vtkViewNodeFactory"),e.createNode=n=>{if(n.isDeleted())return null;let r=0,o=n.getClassName(r++),a=!1;const i=Object.keys(t.overrides);for(;o&&!a;)-1!==i.indexOf(o)?a=!0:o=n.getClassName(r++);if(!a)return null;const s=t.overrides[o]();return s.setMyFactory(e),s}}const Qt={};function Zt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qt,n),Wt.obj(e,t),Yt(e,t)}var Jt={newInstance:Wt.newInstance(Zt,"vtkViewNodeFactory"),extend:Zt};const en=Object.create(null);function tn(e,t){en[e]=t}function nn(e,t){t.classHierarchy.push("vtkOpenGLViewNodeFactory")}const rn={};function on(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rn,n),t.overrides=en,Jt.extend(e,t,n),nn(0,t)}var an={newInstance:Wt.newInstance(on,"vtkOpenGLViewNodeFactory"),extend:on};function sn(e,t){t.classHierarchy.push("vtkOpenGLCamera"),e.buildPass=n=>{n&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext())},e.opaquePass=e=>{if(e){const e=t._openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize),t.context.scissor(e.lowerLeftU,e.lowerLeftV,e.usize,e.vsize)}},e.translucentPass=e.opaquePass,e.zBufferPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=n=>{if(n!==t.lastRenderer||t._openGLRenderWindow.getMTime()>t.keyMatrixTime.getMTime()||e.getMTime()>t.keyMatrixTime.getMTime()||n.getMTime()>t.keyMatrixTime.getMTime()||t.renderable.getMTime()>t.keyMatrixTime.getMTime()){c(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),ae(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),pe(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),f(t.keyMatrices.wcvc,t.keyMatrices.wcvc);const e=t._openGLRenderer.getAspectRatio();c(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(e,-1,1)),f(t.keyMatrices.vcpc,t.keyMatrices.vcpc),v(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}const ln={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};const cn=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ln,n),Xt.extend(e,t,n),t.keyMatrixTime={},ht(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},St(e,t,["context","keyMatrixTime"]),sn(e,t)}));tn("vtkCamera",cn);const{vtkDebugMacro:un}=Ht;function dn(e,t){t.classHierarchy.push("vtkOpenGLRenderer"),e.buildPass=n=>{if(n){if(!t.renderable)return;e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes()}},e.updateLights=()=>{let e=0;const n=t.renderable.getLightsByReference();for(let t=0;t0&&e++;return e||(un("No lights are on, creating one."),t.renderable.createLight()),e},e.zBufferPass=n=>{if(n){let n=0;const r=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),n|=r.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,t.context.depthMask(!0));const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.colorMask(!0,!0,!0,!0),n&&r.clear(n),r.enable(r.DEPTH_TEST)}},e.opaqueZBufferPass=t=>e.zBufferPass(t),e.cameraPass=t=>{t&&e.clear()},e.getAspectRatio=()=>{const e=t._parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=()=>{const e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=e[0]-n[0],o=e[1]-n[1],a=t._parent.normalizedDisplayToDisplay(r,o),i=Math.round(a[0]),s=Math.round(a[1]),l=e[2]-n[0],c=e[3]-n[1],u=t._parent.normalizedDisplayToDisplay(l,c);let d=Math.round(u[0])-i,p=Math.round(u[1])-s;return d<0&&(d=0),p<0&&(p=0),{usize:d,vsize:p,lowerLeftU:i,lowerLeftV:s}},e.clear=()=>{let n=0;const r=t.context;if(!t.renderable.getTransparent()){const e=t.renderable.getBackgroundByReference();r.clearColor(e[0],e[1],e[2],e[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);const o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),n&&r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=()=>{null!==t.selector&&t.selector.releaseGraphicsResources(),t.renderable&&t.renderable.getViewProps().forEach((e=>{e.modified()}))},e.setOpenGLRenderWindow=n=>{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))}}const pn={context:null,_openGLRenderWindow:null,selector:null};const fn=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pn,n),Xt.extend(e,t,n),bt(e,t,["shaderCache"]),St(e,t,["selector"]),Pt(0,t,["openGLRenderWindow"]),dn(e,t)}),"vtkOpenGLRenderer");function gn(e,t){t.classHierarchy.push("vtkOpenGLActor"),e.buildPass=n=>{if(n){t._openGLRenderWindow=e.getLastAncestorOfType("vtkOpenGLRenderWindow"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e{t.renderable&&t.renderable.getNestedVisibility()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOpaqueZBufferPass=t=>e.traverseOpaquePass(t),e.traverseOpaquePass=n=>{t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=>{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t._openGLRenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=>{if(t.ogltextures){t.activeTextures=[];for(let e=0;e{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.zBufferPass=(t,n)=>e.opaquePass(t,n),e.opaqueZBufferPass=(t,n)=>e.opaquePass(t,n),e.opaquePass=(n,r)=>{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e{if(n)t.context.depthMask(t._openGLRenderer.getSelector()&&t.renderable.getNestedPickable()),e.activateTextures();else if(t.activeTextures)for(let e=0;e(t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),c(t.keyMatrices.mcwc,t.renderable.getMatrix()),f(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?ue(t.keyMatrices.normalMatrix):(ae(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),pe(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),de(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices)}tn("vtkRenderer",fn);const mn={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};const hn=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,mn,n),Xt.extend(e,t,n),t.keyMatrixTime={},ht(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:ue(new Float64Array(9)),mcwc:p(new Float64Array(16))},St(e,t,["context"]),bt(e,t,["activeTextures"]),gn(e,t)}));function vn(e,t){t.classHierarchy.push("vtkOpenGLActor2D"),e.buildPass=n=>{if(n){if(!t.renderable)return;t._openGLRenderWindow=e.getLastAncestorOfType("vtkOpenGLRenderWindow"),t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t._openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(let e=0;e{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOverlayActorCount()}},e.traverseOpaquePass=n=>{t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=>{t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&!t.renderable.getIsOpaque()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.traverseOverlayPass=n=>{t.oglmapper&&t.renderable&&t.renderable.getNestedVisibility()&&(!t._openGLRenderer.getSelector()||t.renderable.getNestedPickable)&&(e.apply(n,!0),t.oglmapper.traverse(n),e.apply(n,!1))},e.activateTextures=()=>{if(t.ogltextures){t.activeTextures=[];for(let e=0;e{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e{if(n)t.context.depthMask(!1),e.activateTextures();else if(t.activeTextures)for(let e=0;e{if(n)t.context.depthMask(!0),e.activateTextures();else if(t.activeTextures)for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bn,n),Xt.extend(e,t,n),St(e,t,["context"]),bt(e,t,["activeTextures"]),vn(e,t)}));function Tn(){var e=new i(3);return i!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function xn(e,t,n){var r=new i(3);return r[0]=e,r[1]=t,r[2]=n,r}function Sn(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function Cn(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function An(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function wn(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Pn(e,t){var n=t[0],r=t[1],o=t[2],a=n*n+r*r+o*o;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function In(e,t,n){var r=t[0],o=t[1],a=t[2],i=n[3]*r+n[7]*o+n[11]*a+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*o+n[8]*a+n[12])/i,e[1]=(n[1]*r+n[5]*o+n[9]*a+n[13])/i,e[2]=(n[2]*r+n[6]*o+n[10]*a+n[14])/i,e}function On(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function En(e,t){var n=e[0],r=e[1],o=e[2],i=t[0],s=t[1],l=t[2];return Math.abs(n-i)<=a*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(r-s)<=a*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(o-l)<=a*Math.max(1,Math.abs(o),Math.abs(l))}tn("vtkActor2D",yn);var Mn=An,Rn=(Tn(),Math.sqrt(50)),Dn=Math.sqrt(10),Bn=Math.sqrt(2);function Ln(e,t,n){var r=(t-e)/Math.max(0,n),o=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,o);return o>=0?(a>=Rn?10:a>=Dn?5:a>=Bn?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(a>=Rn?10:a>=Dn?5:a>=Bn?2:1)}function Vn(e,t){return null==e||null==t?NaN:et?1:e>=t?0:NaN}function _n(e){let t=e,n=e,r=e;function o(e,t,o=0,a=e.length){if(o>>1;r(e[n],t)<0?o=n+1:a=n}while(oe(t)-n,n=Vn,r=(t,n)=>Vn(e(t),n)),{left:o,center:function(e,n,r=0,a=e.length){const i=o(e,n,r,a-1);return i>r&&t(e[i-1],n)>-t(e[i],n)?i-1:i},right:function(e,t,o=0,a=e.length){if(o>>1;r(e[n],t)<=0?o=n+1:a=n}while(o>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?ir(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?ir(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Xn.exec(e))?new cr(t[1],t[2],t[3],1):(t=Yn.exec(e))?new cr(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Qn.exec(e))?ir(t[1],t[2],t[3],t[4]):(t=Zn.exec(e))?ir(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Jn.exec(e))?mr(t[1],t[2]/100,t[3]/100,1):(t=er.exec(e))?mr(t[1],t[2]/100,t[3]/100,t[4]):tr.hasOwnProperty(e)?ar(tr[e]):"transparent"===e?new cr(NaN,NaN,NaN,0):null}function ar(e){return new cr(e>>16&255,e>>8&255,255&e,1)}function ir(e,t,n,r){return r<=0&&(e=t=n=NaN),new cr(e,t,n,r)}function sr(e){return e instanceof zn||(e=or(e)),e?new cr((e=e.rgb()).r,e.g,e.b,e.opacity):new cr}function lr(e,t,n,r){return 1===arguments.length?sr(e):new cr(e,t,n,null==r?1:r)}function cr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function ur(){return`#${gr(this.r)}${gr(this.g)}${gr(this.b)}`}function dr(){const e=pr(this.opacity);return`${1===e?"rgb(":"rgba("}${fr(this.r)}, ${fr(this.g)}, ${fr(this.b)}${1===e?")":`, ${e})`}`}function pr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function fr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gr(e){return((e=fr(e))<16?"0":"")+e.toString(16)}function mr(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new vr(e,t,n,r)}function hr(e){if(e instanceof vr)return new vr(e.h,e.s,e.l,e.opacity);if(e instanceof zn||(e=or(e)),!e)return new vr;if(e instanceof vr)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),a=Math.max(t,n,r),i=NaN,s=a-o,l=(a+o)/2;return s?(i=t===a?(n-r)/s+6*(n0&&l<1?0:i,new vr(i,s,l,e.opacity)}function vr(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function br(e){return(e=(e||0)%360)<0?e+360:e}function yr(e){return Math.max(0,Math.min(1,e||0))}function Tr(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function xr(e,t,n,r,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*n+(1+3*e+3*a-3*i)*r+i*o)/6}Un(zn,or,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:nr,formatHex:nr,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return hr(this).formatHsl()},formatRgb:rr,toString:rr}),Un(cr,lr,Gn(zn,{brighter(e){return e=null==e?Hn:Math.pow(Hn,e),new cr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?Wn:Math.pow(Wn,e),new cr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new cr(fr(this.r),fr(this.g),fr(this.b),pr(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ur,formatHex:ur,formatHex8:function(){return`#${gr(this.r)}${gr(this.g)}${gr(this.b)}${gr(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:dr,toString:dr})),Un(vr,(function(e,t,n,r){return 1===arguments.length?hr(e):new vr(e,t,n,null==r?1:r)}),Gn(zn,{brighter(e){return e=null==e?Hn:Math.pow(Hn,e),new vr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Wn:Math.pow(Wn,e),new vr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new cr(Tr(e>=240?e-240:e+120,o,r),Tr(e,o,r),Tr(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new vr(br(this.h),yr(this.s),yr(this.l),pr(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=pr(this.opacity);return`${1===e?"hsl(":"hsla("}${br(this.h)}, ${100*yr(this.s)}%, ${100*yr(this.l)}%${1===e?")":`, ${e})`}`}}));var Sr=e=>()=>e;function Cr(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Sr(isNaN(e)?t:e)}var Ar=function e(t){var n=function(e){return 1==(e=+e)?Cr:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Sr(isNaN(t)?n:t)}}(t);function r(e,t){var r=n((e=lr(e)).r,(t=lr(t)).r),o=n(e.g,t.g),a=n(e.b,t.b),i=Cr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=a(t),e.opacity=i(t),e+""}}return r.gamma=e,r}(1);function wr(e){return function(t){var n,r,o=t.length,a=new Array(o),i=new Array(o),s=new Array(o);for(n=0;n=1?(n=1,t-1):Math.floor(n*t),o=e[r],a=e[r+1],i=r>0?e[r-1]:2*o-a,s=ra&&(o=t.slice(a,o),s[i]?s[i]+=o:s[++i]=o),(n=n[0])===(r=r[0])?s[i]?s[i]+=r:s[++i]=r:(s[++i]=null,l.push({i:i,x:Or(n,r)})),a=Rr.lastIndex;return at&&(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),r=l>2?Gr:Ur,o=a=null,d}function d(t){return null==t||isNaN(t=+t)?n:(o||(o=r(i.map(e),s,l)))(e(c(t)))}return d.invert=function(n){return c(t((a||(a=r(s,i.map(e),Or)))(n)))},d.domain=function(e){return arguments.length?(i=Array.from(e,_r),u()):i.slice()},d.range=function(e){return arguments.length?(s=Array.from(e),u()):s.slice()},d.rangeRound=function(e){return s=Array.from(e),l=Vr,u()},d.clamp=function(e){return arguments.length?(c=!!e||Fr,u()):c!==Fr},d.interpolate=function(e){return arguments.length?(l=e,u()):l},d.unknown=function(e){return arguments.length?(n=e,d):n},function(n,r){return e=n,t=r,u()}}()(Fr,Fr)}function Hr(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}var jr,$r=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Kr(e){if(!(t=$r.exec(e)))throw new Error("invalid format: "+e);var t;return new qr({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function qr(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function Xr(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Yr(e){return(e=Xr(Math.abs(e)))?e[1]:NaN}function Qr(e,t){var n=Xr(e,t);if(!n)return e+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}Kr.prototype=qr.prototype,qr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Zr={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Qr(100*e,t),r:Qr,s:function(e,t){var n=Xr(e,t);if(!n)return e+"";var r=n[0],o=n[1],a=o-(jr=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,i=r.length;return a===i?r:a>i?r+new Array(a-i+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Xr(e,Math.max(0,t+a-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Jr(e){return e}var eo,to,no,ro=Array.prototype.map,oo=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ao(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){var r,o,a,i,s=-1;if(n=+n,(e=+e)==(t=+t)&&n>0)return[e];if((r=t0){let n=Math.round(e/i),r=Math.round(t/i);for(n*it&&--r,a=new Array(o=r-n+1);++st&&--r,a=new Array(o=r-n+1);++s=Rn?o*=10:a>=Dn?o*=5:a>=Bn&&(o*=2),t0;){if((o=Ln(l,c,n))===r)return a[i]=l,a[s]=c,t(a);if(o>0)l=Math.floor(l/o)*o,c=Math.ceil(c/o)*o;else{if(!(o<0))break;l=Math.ceil(l*o)/o,c=Math.floor(c*o)/o}r=o}return e},e}function io(){var e=Wr();return e.copy=function(){return zr(e,io())},Hr.apply(e,arguments),ao(e)}eo=function(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?Jr:(t=ro.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var o=e.length,a=[],i=0,s=t[0],l=0;o>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(e.substring(o-=s,o+s)),!((l+=s+1)>r));)s=t[i=(i+1)%t.length];return a.reverse().join(n)}),o=void 0===e.currency?"":e.currency[0]+"",a=void 0===e.currency?"":e.currency[1]+"",i=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?Jr:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(ro.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",c=void 0===e.minus?"−":e.minus+"",u=void 0===e.nan?"NaN":e.nan+"";function d(e){var t=(e=Kr(e)).fill,n=e.align,d=e.sign,p=e.symbol,f=e.zero,g=e.width,m=e.comma,h=e.precision,v=e.trim,b=e.type;"n"===b?(m=!0,b="g"):Zr[b]||(void 0===h&&(h=12),v=!0,b="g"),(f||"0"===t&&"="===n)&&(f=!0,t="0",n="=");var y="$"===p?o:"#"===p&&/[boxX]/.test(b)?"0"+b.toLowerCase():"",T="$"===p?a:/[%p]/.test(b)?l:"",x=Zr[b],S=/[defgprs%]/.test(b);function C(e){var o,a,l,p=y,C=T;if("c"===b)C=x(e)+C,e="";else{var A=(e=+e)<0||1/e<0;if(e=isNaN(e)?u:x(Math.abs(e),h),v&&(e=function(e){e:for(var t,n=e.length,r=1,o=-1;r0&&(o=0)}return o>0?e.slice(0,o)+e.slice(t+1):e}(e)),A&&0==+e&&"+"!==d&&(A=!1),p=(A?"("===d?d:c:"-"===d||"("===d?"":d)+p,C=("s"===b?oo[8+jr/3]:"")+C+(A&&"("===d?")":""),S)for(o=-1,a=e.length;++o(l=e.charCodeAt(o))||l>57){C=(46===l?i+e.slice(o+1):e.slice(o))+C,e=e.slice(0,o);break}}m&&!f&&(e=r(e,1/0));var w=p.length+e.length+C.length,P=w>1)+p+e+C+P.slice(w);break;default:e=P+p+e+C}return s(e)}return h=void 0===h?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),C.toString=function(){return e+""},C}return{format:d,formatPrefix:function(e,t){var n=d(((e=Kr(e)).type="f",e)),r=3*Math.max(-8,Math.min(8,Math.floor(Yr(t)/3))),o=Math.pow(10,-r),a=oo[8+r/3];return function(e){return n(o*e)+a}}}}({thousands:",",grouping:[3],currency:["$",""]}),to=eo.format,no=eo.formatPrefix;var so=n(640),lo=n.n(so);const co=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],uo=[1,0,0,0,1,0,0,0,1],po=1e-6,fo=1e-12,{vtkErrorMacro:go,vtkWarningMacro:mo}=Wt;let ho=0;function vo(e){return()=>go(`vtkMath::${e} - NOT IMPLEMENTED`)}function bo(e,t,n,r){let o;for(let a=0;a0&&void 0!==arguments[0]?arguments[0]:3;const t=Array(e);for(let n=0;n1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:{let n=0;for(let r=0;r2&&void 0!==arguments[2]?arguments[2]:po;if(e.length!==t.length)return!1;function r(e,r){return Math.abs(e-t[r])<=n}return e.every(r)}const Qo=Yo;function Zo(e){for(let t=0;t<3;t++)e[3*t]=e[3*t+1]=e[3*t+2]=0,e[3*t+t]=1}function Jo(e,t){for(let n=0;n1&&void 0!==arguments[1]?arguments[1]:0;if(!`${e}`.includes("e"))return+`${Math.round(`${e}e+${t}`)}e-${t}`;const n=`${e}`.split("e");let r="";return+n[1]+t>0&&(r="+"),+`${Math.round(`${+n[0]}e${r}${+n[1]+t}`)}e-${t}`}function na(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t[0]=ta(e[0],n),t[1]=ta(e[1],n),t[2]=ta(e[2],n),t}function ra(e,t,n,r){let o,a,i,s,l,c,u,d,p,f,g,m,h,v,b,y;const T=To(t),x=To(t),S=(e,t,n)=>{v=e[t],h=e[n],e[t]=v-m*(h+v*f),e[n]=h+m*(v-h*f)};for(Jo(t,r),l=0;l3&&Math.abs(n[l])+v===Math.abs(n[l])&&Math.abs(n[s])+v===Math.abs(n[s]))e[l*t+s]=0;else if(Math.abs(e[l*t+s])>u){for(h=n[s]-n[l],Math.abs(h)+v===Math.abs(h)?p=e[l*t+s]/h:(d=.5*h/e[l*t+s],p=1/(Math.abs(d)+Math.sqrt(1+d*d)),d<0&&(p=-p)),b=1/Math.sqrt(1+p*p),m=p*b,f=m/(1+b),h=p*e[l*t+s],x[l]-=h,x[s]+=h,n[l]-=h,n[s]+=h,e[l*t+s]=0,a=0;a<=l-1;a++)S(e,a*t+l,a*t+s);for(a=l+1;a<=s-1;a++)S(e,l*t+a,a*t+s);for(a=s+1;a=20)return mo("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(a=0;a=y||Math.abs(n[o]-y)>1)+(1&t);for(c=0,o=0;o=0&&c++;if(cr?a:r,o=i>o?i:o,n[e]=1,0!==o&&(n[e]/=o)}const a=Math.abs(t[0])*n[0],i=Math.abs(t[3])*n[1],s=Math.abs(t[6])*n[2];r[0]=0,o=a,i>=o&&(o=i,r[0]=1),s>=o&&(r[0]=2),0!==r[0]&&(yo(t,3,r[0],0),n[r[0]]=n[0]);const l=Math.abs(t[4])*n[1],c=Math.abs(t[7])*n[2];r[1]=1,o=l,c>=o&&(r[1]=2,yo(t,3,1,2)),r[2]=2;let u=0;if(Xo(t)<0){u=1;for(let e=0;e<9;e++)t[e]=-t[e]}const d=To(4);if(oa(t,d),ea(d,t),u)for(let e=0;e<9;e++)t[e]=-t[e];1!==r[1]&&yo(t,3,r[1],1),0!==r[0]&&yo(t,3,r[0],0)}function ia(e,t,n){let r,o,a,i,s,l;if(ra([...e],3,t,n),t[0]!==t[1]||t[0]!==t[2]){for(qo(n,n),r=0;r<3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[3*r]),i=0,o=1;o<3;o++)l<(s=Math.abs(n[3*r+o]))&&(l=s,i=o);i!==r&&(s=t[i],t[i]=t[r],t[r]=s,bo(n,3,r,i)),n[3*i+i]<0&&(n[3*i]=-n[3*i],n[3*i+1]=-n[3*i+1],n[3*i+2]=-n[3*i+2]),o=(i+1)%3,a=(i+2)%3,n[3*o]=0,n[3*o+1]=0,n[3*o+2]=0,n[3*o+o]=1;const e=ko([n[3*i],n[3*i+1],n[3*i+2]],[n[3*o],n[3*o+1],n[3*o+2]],[]);Go(e);const c=ko(e,[n[3*i],n[3*i+1],n[3*i+2]],[]);for(let t=0;t<3;t++)n[3*a+t]=e[t],n[3*o+t]=c[t];return void qo(n,n)}for(l=Math.abs(n[0]),i=0,r=1;r<3;r++)l<(s=Math.abs(n[3*r]))&&(l=s,i=r);if(0!==i){const e=t[i];t[i]=t[0],t[0]=e,bo(n,3,i,0)}if(Math.abs(n[4])i&&(i=c);if(0===i)return mo("Unable to factor linear system"),0;d[r]=1/i}for(o=0;o=i&&(i=l,u=r)}if(o!==u){for(a=0;a=0)for(a=i;a<=o-1;a++)l-=e[o*r+a]*n[a];else 0!==l&&(i=o);n[o]=l}for(o=r-1;o>=0;o--){for(l=n[o],a=o+1;a3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;const a=r||To(n),i=o||To(n);if(0===sa(e,a,n))return null;for(let r=0;ri&&n<=a?(u=1,c=(a-n)/i,d=0):n>a&&n<=.5?(u=1,d=(n-a)/i,c=0):n>.5&&n<=s?(d=1,u=(s-n)/i,c=0):n>s&&n<=l?(d=1,c=(n-s)/i,u=0):n>l&&n<=1?(c=1,d=(1-n)/i,u=0):(c=1,u=n/i,d=0),c=r*c+(1-r),u=r*u+(1-r),d=r*d+(1-r),c*=o,u*=o,d*=o,t[0]=c,t[1]=u,t[2]=d}function fa(e,t){const[n,r,o]=e;let a=(n+16)/116,i=r/500+a,s=a-o/200;a**3>.008856?a**=3:a=(a-16/116)/7.787,i**3>.008856?i**=3:i=(i-16/116)/7.787,s**3>.008856?s**=3:s=(s-16/116)/7.787,t[0]=.9505*i,t[1]=1*a,t[2]=1.089*s}function ga(e,t){const[n,r,o]=e;let a=n/.9505,i=r/1,s=o/1.089;a>.008856?a**=1/3:a=7.787*a+16/116,i>.008856?i**=1/3:i=7.787*i+16/116,s>.008856?s**=1/3:s=7.787*s+16/116,t[0]=116*i-16,t[1]=500*(a-i),t[2]=200*(i-s)}function ma(e,t){const[n,r,o]=e;let a=3.2406*n+-1.5372*r+-.4986*o,i=-.9689*n+1.8758*r+.0415*o,s=.0557*n+-.204*r+1.057*o;a>.0031308?a=1.055*a**(1/2.4)-.055:a*=12.92,i>.0031308?i=1.055*i**(1/2.4)-.055:i*=12.92,s>.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92;let l=a;l1&&(a/=l,i/=l,s/=l),a<0&&(a=0),i<0&&(i=0),s<0&&(s=0),t[0]=a,t[1]=i,t[2]=s}function ha(e,t){let[n,r,o]=e;n>.04045?n=((n+.055)/1.055)**2.4:n/=12.92,r>.04045?r=((r+.055)/1.055)**2.4:r/=12.92,o>.04045?o=((o+.055)/1.055)**2.4:o/=12.92,t[0]=.4124*n+.3576*r+.1805*o,t[1]=.2126*n+.7152*r+.0722*o,t[2]=.0193*n+.1192*r+.9505*o}function va(e){return e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1,e}function ba(e){return!(e[1]-e[0]<0)}function ya(e,t,n){return en?n:e}function Ta(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[0,0,0];return r[0]=ya(e[0],t[0],n[0]),r[1]=ya(e[1],t[1],n[1]),r[2]=ya(e[2],t[2],n[2]),r}const xa=vo("GetScalarTypeFittingRange"),Sa=vo("GetAdjustedScalarRange");const{isFinite:Ca,isNaN:Aa}=Number,wa=Aa;function Pa(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Ia(e){const t=Math.floor(255*e);return t>15?t.toString(16):`0${t.toString(16)}`}function Oa(e){return Math.round(255*e)}var Ea={Pi:()=>Math.PI,ldexp:function(e,t){return t>1023?e*2**1023*2**(t-1023):t<-1074?5e-324*e*2**(t+1074):e*2**t},radiansFromDegrees:xo,degreesFromRadians:So,round:Co,floor:Ao,ceil:wo,ceilLog2:Oo,min:Po,max:Io,arrayMin:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0;for(let o=t,a=e.length;o1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=-1/0;for(let o=t,a=e.length;o1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,o=-1/0;for(let a=t,i=e.length;a=0;--o)if(n[o]0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=t-e;return e+n*Math.random()},gaussian:Do,add:Bo,subtract:Lo,multiplyScalar:Vo,multiplyScalar2D:_o,multiplyAccumulate:No,multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:Fo,outer:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[0]*t[2],n[3]=e[1]*t[0],n[4]=e[1]*t[1],n[5]=e[1]*t[2],n[6]=e[2]*t[0],n[7]=e[2]*t[1],n[8]=e[2]*t[2]},cross:ko,norm:Uo,normalize:Go,perpendiculars:function(e,t,n,r){const o=e[0]*e[0],a=e[1]*e[1],i=e[2]*e[2],s=Math.sqrt(o+a+i);let l,c,u;o>a&&o>i?(l=0,c=1,u=2):a>i?(l=1,c=2,u=0):(l=2,c=0,u=1);const d=e[l]/s,p=e[c]/s,f=e[u]/s,g=Math.sqrt(d*d+f*f);if(0!==r){const e=Math.sin(r),o=Math.cos(r);t&&(t[l]=(f*o-d*p*e)/g,t[c]=e*g,t[u]=(-d*o-p*f*e)/g),n&&(n[l]=(-f*e-d*p*o)/g,n[c]=o*g,n[u]=(d*e-p*f*o)/g)}else t&&(t[l]=f/g,t[c]=0,t[u]=-d/g),n&&(n[l]=-d*p/g,n[c]=g,n[u]=-p*f/g)},projectVector:function(e,t,n){const r=Fo(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;const o=Fo(e,t)/r;for(let e=0;e<3;e++)n[e]=t[e];return Vo(n,o),!0},projectVector2D:function(e,t,n){const r=zo(t,t);if(0===r)return n[0]=0,n[1]=0,!1;const o=zo(e,t)/r;for(let e=0;e<2;e++)n[e]=t[e];return _o(n,o),!0},distance2BetweenPoints:Wo,angleBetweenVectors:function(e,t){const n=[0,0,0];return ko(e,t,n),Math.atan2(Uo(n),Fo(e,t))},gaussianAmplitude:function(e,t,n){const r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-(r**2)/(2*t))},gaussianWeight:function(e,t,n){const r=Math.abs(e-n);return Math.exp(-(r**2)/(2*t))},dot2D:zo,outer2D:function(e,t,n){n[0]=e[0]*t[0],n[1]=e[0]*t[1],n[2]=e[1]*t[0],n[3]=e[1]*t[1]},norm2D:Ho,normalize2D:jo,determinant2x2:$o,LUFactor3x3:function(e,t){let n,r,o;const a=[0,0,0];for(let t=0;t<3;t++)o=Math.abs(e[3*t]),(r=Math.abs(e[3*t+1]))>o&&(o=r),(r=Math.abs(e[3*t+2]))>o&&(o=r),a[t]=1/o;o=a[0]*Math.abs(e[0]),n=0,(r=a[1]*Math.abs(e[3]))>=o&&(o=r,n=1),(r=a[2]*Math.abs(e[6]))>=o&&(n=2),0!==n&&(bo(e,3,n,0),a[n]=a[0]),t[0]=n,e[3]/=e[0],e[6]/=e[0],e[4]-=e[3]*e[1],e[7]-=e[6]*e[1],o=a[1]*Math.abs(e[4]),n=1,(r=a[2]*Math.abs(e[7]))>=o&&(n=2,bo(e,3,1,2),a[2]=a[1]),t[1]=n,e[7]/=e[4],e[5]-=e[3]*e[2],e[8]-=e[6]*e[2]+e[7]*e[5],t[2]=2},LUSolve3x3:function(e,t,n){let r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[3]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[6]*n[0]-e[7]*n[1],n[2]/=e[8],n[1]=(n[1]-e[5]*n[2])/e[4],n[0]=(n[0]-e[1]*n[1]-e[2]*n[2])/e[0]},linearSolve3x3:function(e,t,n){const r=e[0],o=e[1],a=e[2],i=e[3],s=e[4],l=e[5],c=e[6],u=e[7],d=e[8],p=+$o(s,u,l,d),f=-$o(i,c,l,d),g=+$o(i,c,s,u),m=-$o(o,u,a,d),h=+$o(r,c,a,d),v=-$o(r,c,o,u),b=+$o(o,s,a,l),y=-$o(r,i,a,l),T=+$o(r,i,o,s),x=r*p+o*f+a*g,S=p*t[0]+m*t[1]+b*t[2],C=f*t[0]+h*t[1]+y*t[2],A=g*t[0]+v*t[1]+T*t[2];n[0]=S/x,n[1]=C/x,n[2]=A/x},multiply3x3_vect3:function(e,t,n){const r=e[0]*t[0]+e[1]*t[1]+e[2]*t[2],o=e[3]*t[0]+e[4]*t[1]+e[5]*t[2],a=e[6]*t[0]+e[7]*t[1]+e[8]*t[2];n[0]=r,n[1]=o,n[2]=a},multiply3x3_mat3:Ko,multiplyMatrix:function(e,t,n,r,o,a,i){r!==o&&go("Number of columns of A must match number of rows of B.");const s=[...e],l=[...t];for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:po;return Qo(e,co,t)},isIdentity3x3:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:po;return Qo(e,uo,t)},determinant3x3:Xo,quaternionToMatrix3x3:ea,areEquals:Yo,areMatricesEqual:Qo,roundNumber:ta,roundVector:na,matrix3x3ToQuaternion:oa,multiplyQuaternion:function(e,t,n){const r=e[0]*t[0],o=e[0]*t[1],a=e[0]*t[2],i=e[0]*t[3],s=e[1]*t[0],l=e[1]*t[1],c=e[1]*t[2],u=e[1]*t[3],d=e[2]*t[0],p=e[2]*t[1],f=e[2]*t[2],g=e[2]*t[3],m=e[3]*t[0],h=e[3]*t[1],v=e[3]*t[2],b=e[3]*t[3];n[0]=r-l-f-b,n[1]=o+s+g-v,n[2]=a-u+d+h,n[3]=i+c-p+m},orthogonalize3x3:aa,diagonalize3x3:ia,singularValueDecomposition3x3:function(e,t,n,r){let o;const a=[...e],i=Xo(a);if(i<0)for(o=0;o<9;o++)a[o]=-a[o];aa(a,t),qo(a,a),Ko(a,t,r),ia(r,n,r),Ko(t,r,t),qo(r,r),i<0&&(n[0]=-n[0],n[1]=-n[1],n[2]=-n[2])},solveLinearSystem:ca,invertMatrix:ua,luFactorLinearSystem:sa,luSolveLinearSystem:la,estimateMatrixCondition:function(e,t){let n=+Number.MAX_VALUE,r=-Number.MAX_VALUE;for(let n=0;nr&&(r=Math.abs(e[n*t+o]));for(let r=0;r6&&void 0!==arguments[6])||arguments[6];if(efo&&(p=0,s[u]=0);if(p&&1===o)return mo("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),da(e,t,n,a);if(p)g=1;else for(u=0;u1&&void 0!==arguments[1]?arguments[1]:[0,.5,1];switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:function(e,t){let n,r;const[o,a,i]=e,s=1/6;let l=o,c=o;a>l?l=a:al?l=i:i0?(l-c)/l:0,r>0?(n=o===l?s*(a-i)/(l-c):a===l?.3333333333333333+s*(i-o)/(l-c):.6666666666666666+s*(o-a)/(l-c),n<0&&(n+=1)):n=0,t[0]=n,t[1]=r,t[2]=u},hsv2rgb:pa,lab2xyz:fa,xyz2lab:ga,xyz2rgb:ma,rgb2xyz:ha,rgb2lab:function(e,t){const n=[0,0,0];ha(e,n),ga(n,t)},lab2rgb:function(e,t){const n=[0,0,0];fa(e,n),ma(n,t)},uninitializeBounds:va,areBoundsInitialized:ba,computeBoundsFromPoints:function(e,t,n){return n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2]),n},clampValue:ya,clampVector:Ta,clampAndNormalizeValue:function(e,t){let n=0;return t[0]!==t[1]&&(n=et[1]?t[1]:e,n=(n-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:xa,getAdjustedScalarRange:Sa,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(let n=0;n<6;n+=2)if(e[n]t[n+1]||e[n+1]t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(let r=0;r<6;r+=2)if(e[r]+n[r/2]t[r+1]||e[r+1]+n[r/2]t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(let r=0;r<3;r++)if(e[r]+n[r]t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){const o=To(3),a=To(3),i=To(3),s=To(3),l=To(3),c=To(3);for(let r=0;r<3;++r)o[r]=e[r]-t[r],a[r]=t[r]-n[r],i[r]=n[r]-e[r],s[r]=-o[r],l[r]=-a[r],c[r]=-i[r];const u=Uo(s),d=Uo(l),p=Uo(i),f=To(3);ko(o,a,f);const g=Uo(f),m=u*d*p/(2*g),h=2*g*g,v=d*d*Fo(o,c)/h,b=p*p*Fo(s,a)/h,y=u*u*Fo(i,l)/h;for(let o=0;o<3;++o)r[o]=v*e[o]+b*t[o]+y*n[o];return m},inf:1/0,negInf:-1/0,isInf:e=>!Number.isFinite(e),isNan:Aa,isNaN:Aa,isFinite:Ca,createUninitializedBounds:Pa,getMajorAxisIndex:function(e){let t=-1,n=-1;for(let r=0;rt&&(n=r,t=o)}return n},getSparseOrthogonalMatrix:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;const n=new Array(t),r=new Array(t);for(let e=0;e0;o--){let a=-1/0,i=0,s=0;for(let l=0;l<=o;++l){const c=n[l];for(let n=0;n<=o;++n){const o=r[n],u=Math.abs(e[c+t*o]);u>a&&(a=u,i=l,s=n)}}[n[o],n[i]]=[n[i],n[o]],[r[o],r[s]]=[r[s],r[o]]}const o=new Array(t*t).fill(0);for(let a=0;a1&&void 0!==arguments[1]?arguments[1]:"#";return`${t}${e.map(Ia).join("")}`},float2CssRGBA:function(e){return 3===e.length?`rgb(${e.map(Oa).join(", ")})`:`rgba(${Oa(e[0]||0)}, ${Oa(e[1]||0)}, ${Oa(e[2]||0)}, ${e[3]||0})`}};function Ma(e,t){t.classHierarchy.push("vtkImplicitFunction"),e.functionValue=n=>{if(!t.transform)return e.evaluateFunction(n);const r=[];return t.transform.transformPoint(n,r),e.evaluateFunction(r)},e.evaluateFunction=e=>{Wt.vtkErrorMacro("not implemented")}}const Ra={};function Da(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ra,n),Wt.obj(e,t),Wt.setGet(e,t,["transform"]),Ma(e,t)}var Ba={newInstance:Wt.newInstance(Da,"vtkImplicitFunction"),extend:Da};const La=1e-6,Va="coincide",_a="disjoint";function Na(e,t,n){const r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function Fa(e,t,n,r){const o=[];Lo(e,t,o);const a=Fo(n,o);r[0]=e[0]-a*n[0],r[1]=e[1]-a*n[1],r[2]=e[2]-a*n[2]}function ka(e,t,n){const r=Fo(e,t);let o=Fo(t,t);return 0===o&&(o=1),n[0]=e[0]-r*t[0]/o,n[1]=e[1]-r*t[1]/o,n[2]=e[2]-r*t[2]/o,n}function Ua(e,t,n,r){const o=[];Lo(e,t,o);const a=Fo(n,o),i=Fo(n,n);0!==i?(r[0]=e[0]-a*n[0]/i,r[1]=e[1]-a*n[1]/i,r[2]=e[2]-a*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function Ga(e,t,n,r){const o={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},a=[],i=[];Lo(t,e,a),Lo(n,e,i);const s=Fo(r,i),l=Fo(r,a);let c,u;return c=l<0?-l:l,u=s<0?-s*La:s*La,c<=u||(o.t=s/l,o.x[0]=e[0]+o.t*a[0],o.x[1]=e[1]+o.t*a[1],o.x[2]=e[2]+o.t*a[2],o.intersection=!0,o.betweenPoints=o.t>=0&&o.t<=1),o}function za(e,t,n,r){const o={intersection:!1,l0:[],l1:[],error:null},a=[];ko(t,r,a);const i=a.map((e=>Math.abs(e)));if(i[0]+i[1]+i[2]i[1]&&i[0]>i[2]?"x":i[1]>i[2]?"y":"z";const l=[],c=-Fo(t,e),u=-Fo(r,n);switch(s){case"x":l[0]=0,l[1]=(u*t[2]-c*r[2])/a[0],l[2]=(c*r[1]-u*t[1])/a[0];break;case"y":l[0]=(c*r[2]-u*t[2])/a[1],l[1]=0,l[2]=(u*t[0]-c*r[0])/a[1];break;case"z":l[0]=(u*t[1]-c*r[1])/a[2],l[1]=(c*r[0]-u*t[0])/a[2],l[2]=0}return o.l0=l,Bo(l,a,o.l1),o.intersection=!0,o}const Wa={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:Na,projectPoint:Fa,projectVector:ka,generalizedProjectPoint:Ua,intersectWithLine:Ga,intersectWithPlane:za,DISJOINT:_a,COINCIDE:Va};function Ha(e,t){t.classHierarchy.push("vtkPlane"),e.distanceToPlane=e=>Na(e,t.origin,t.normal),e.projectPoint=(e,n)=>{Fa(e,t.origin,t.normal,n)},e.projectVector=(e,n)=>ka(e,t.normal,n),e.push=e=>{if(0!==e)for(let n=0;n<3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=(e,n)=>{Ua(e,t.origin,t.normal,n)},e.evaluateFunction=(e,n,r)=>Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2]),e.evaluateGradient=e=>[t.normal[0],t.normal[1],t.normal[2]],e.intersectWithLine=(e,n)=>Ga(e,n,t.origin,t.normal),e.intersectWithPlane=(e,n)=>za(e,n,t.origin,t.normal)}const ja={normal:[0,0,1],origin:[0,0,0]};function $a(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ja,n),Ba.extend(e,t,n),Wt.setGetArray(e,t,["normal","origin"],3),Ha(e,t)}var Ka={newInstance:Wt.newInstance($a,"vtkPlane"),extend:$a,...Wa};const qa=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function Xa(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function Ya(e){return e?.length>=6&&e[0]<=e[1]&&e[2]<=e[3]&&e[4]<=e[5]}function Qa(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Za(e){return Qa(e,qa)}function Ja(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=ot?a:t,e[2]=in?s:n,e[4]=lr?c:r,e}function ei(e,t){if(0===t.length)return e;if(Array.isArray(t[0]))for(let n=0;na?t:a,e[2]=n,e[3]=n>s?n:s,e[4]=r,e[5]=r>c?r:c,o!==t||i!==n||l!==r}function ri(e,t,n,r){const[o,a,i,s,l,c]=e;return e[0]=t=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n>=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r>=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function ii(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function si(e,t){return e[2*t+1]-e[2*t]}function li(e){return[si(e,0),si(e,1),si(e,2)]}function ci(e){return e.slice(0,2)}function ui(e){return e.slice(2,4)}function di(e){return e.slice(4,6)}function pi(e){const t=li(e);return t[0]>t[1]?t[0]>t[2]?t[0]:t[2]:t[1]>t[2]?t[1]:t[2]}function fi(e){if(Ya(e)){const t=li(e);return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}return null}function gi(e){return[e[0],e[2],e[4]]}function mi(e){return[e[1],e[3],e[5]]}function hi(e,t){return e<=0&&t>=0||e>=0&&t<=0}function vi(e,t){let n=0;for(let r=0;r<2;r++)for(let o=2;o<4;o++)for(let a=4;a<6;a++)t[n++]=[e[r],e[o],e[a]];return t}function bi(e,t,n){return t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5],t}function yi(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const r=vi(e,[]);for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:[];return t[0]=.5*(e[1]-e[0]),t[1]=.5*(e[3]-e[2]),t[2]=.5*(e[5]-e[4]),t}function xi(e,t,n,r){const o=[].concat(qa),a=e.getData();for(let e=0;ee[2*n+1]?(i[n]=0,c[n]=e[2*n+1],a=!1):i[n]=2;if(a)return r[0]=t[0],r[1]=t[1],r[2]=t[2],o[0]=0,1;for(let e=0;e<3;e++)2!==i[e]&&0!==n[e]?l[e]=(c[e]-t[e])/n[e]:l[e]=-1;for(let e=0;e<3;e++)l[s]1||l[s]<0)return 0;o[0]=l[s];for(let o=0;o<3;o++)if(s!==o){if(r[o]=t[o]+l[s]*n[o],r[o]e[2*o+1])return 0}else r[o]=c[o];return 1}function Ci(e,t,n){const r=[];let o=0,a=1,i=1;for(let s=4;s<=5;++s){r[2]=e[s];for(let s=2;s<=3;++s){r[1]=e[s];for(let s=0;s<=1;++s)if(r[0]=e[s],o=Ka.evaluate(n,t,r),i&&(a=o>=0?1:-1,i=0),0===o||a>0&&o<0||a<0&&o>0)return 1}}return 0}function Ai(e,t){if(!Ya(e)||!Ya(t))return!1;const n=[0,0,0,0,0,0];let r;for(let o=0;o<3;o++)if(r=!1,t[2*o]>=e[2*o]&&t[2*o]<=e[2*o+1]?(r=!0,n[2*o]=t[2*o]):e[2*o]>=t[2*o]&&e[2*o]<=t[2*o+1]&&(r=!0,n[2*o]=e[2*o]),t[2*o+1]>=e[2*o]&&t[2*o+1]<=e[2*o+1]?(r=!0,n[2*o+1]=t[2*o+1]):e[2*o+1]>=t[2*o]&&e[2*o+1]<=t[2*o+1]&&(r=!0,n[2*o+1]=e[2*o+1]),!r)return!1;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],!0}function wi(e,t){if(!Ya(e)||!Ya(t))return!1;for(let n=0;n<3;n++)if(!(t[2*n]>=e[2*n]&&t[2*n]<=e[2*n+1]||e[2*n]>=t[2*n]&&e[2*n]<=t[2*n+1]||t[2*n+1]>=e[2*n]&&t[2*n+1]<=e[2*n+1]||e[2*n+1]>=t[2*n]&&e[2*n+1]<=t[2*n+1]))return!1;return!0}function Pi(e,t,n,r){return!(te[1]||ne[3]||re[5])}function Ii(e,t,n){const r=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],o=[0,0,0,0,0,0,0,0];let a=0;for(let r=0;r<2;r++)for(let i=2;i<4;i++)for(let s=4;s<6;s++){const l=[e[r],e[i],e[s]];o[a++]=Ka.evaluate(n,t,l)}let i=2;for(;i--&&!(hi(o[r[i][0]],o[r[i][4]])&&hi(o[r[i][1]],o[r[i][5]])&&hi(o[r[i][2]],o[r[i][6]])&&hi(o[r[i][3]],o[r[i][7]])););if(i<0)return!1;const s=Math.sign(n[i]),l=Math.abs((e[2*i+1]-e[2*i])*n[i]);let c=s>0?1:0;for(let e=0;e<4;e++){if(0===l)continue;const t=Math.abs(o[r[i][e]])/l;s>0&&tc&&(c=t)}const u=(1-c)*e[2*i]+c*e[2*i+1];return s>0?e[2*i]=u:e[2*i+1]=u,!0}class Oi{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(qa))}getBounds(){return this.bounds}equals(e){return Xa(this.bounds,e)}isValid(){return Ya(this.bounds)}setBounds(e){return Qa(this.bounds,e)}reset(){return Za(this.bounds)}addPoint(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:[];return yi(this.bounds,e,t)}computeScale3(e){return Ti(this.bounds,e)}cutWithPlane(e,t){return Ii(this.bounds,e,t)}intersectBox(e,t,n,r){return Si(this.bounds,e,t,n,r)}intersectPlane(e,t){return Ci(this.bounds,e,t)}intersect(e){return Ai(this.bounds,e)}intersects(e){return wi(this.bounds,e)}containsPoint(e,t,n){return Pi(this.bounds,e,t,n)}contains(e){return wi(this.bounds,e)}}var Ei,Mi={newInstance:function(e){const t=e&&e.bounds;return new Oi(t)},equals:Xa,isValid:Ya,setBounds:Qa,reset:Za,addPoint:Ja,addPoints:ei,addBounds:ti,setMinPoint:ni,setMaxPoint:ri,inflate:oi,scale:ai,scaleAboutCenter:function(e,t,n,r){if(!Ya(e))return!1;const o=ii(e);return e[0]-=o[0],e[1]-=o[0],e[2]-=o[1],e[3]-=o[1],e[4]-=o[2],e[5]-=o[2],ai(e,t,n,r),e[0]+=o[0],e[1]+=o[0],e[2]+=o[1],e[3]+=o[1],e[4]+=o[2],e[5]+=o[2],!0},getCenter:ii,getLength:si,getLengths:li,getMaxLength:pi,getDiagonalLength:fi,getMinPoint:gi,getMaxPoint:mi,getXRange:ci,getYRange:ui,getZRange:di,getCorners:vi,computeCornerPoints:bi,computeLocalBounds:xi,transformBounds:yi,computeScale3:Ti,cutWithPlane:Ii,intersectBox:Si,intersectPlane:Ci,intersect:Ai,intersects:wi,containsPoint:Pi,contains:function(e,t){return!!wi(e,t)&&!!Pi(e,...gi(t))&&!!Pi(e,...mi(t))},INIT_BOUNDS:qa};function Ri(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3];return e[0]=n[0]*r+n[4]*o+n[8]*a+n[12]*i,e[1]=n[1]*r+n[5]*o+n[9]*a+n[13]*i,e[2]=n[2]*r+n[6]*o+n[10]*a+n[14]*i,e[3]=n[3]*r+n[7]*o+n[11]*a+n[15]*i,e}function Di(){var e=new i(4);return i!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Bi(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function Li(e,t){var n=2*Math.acos(t[3]),r=Math.sin(n/2);return r>a?(e[0]=t[0]/r,e[1]=t[1]/r,e[2]=t[2]/r):(e[0]=1,e[1]=0,e[2]=0),n}function Vi(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+o*c-a*l,e[1]=o*u+i*l+a*s-r*c,e[2]=a*u+i*c+r*l-o*s,e[3]=i*u-r*s-o*l-a*c,e}function _i(e,t,n,r){var o,i,s,l,c,u=t[0],d=t[1],p=t[2],f=t[3],g=n[0],m=n[1],h=n[2],v=n[3];return(i=u*g+d*m+p*h+f*v)<0&&(i=-i,g=-g,m=-m,h=-h,v=-v),1-i>a?(o=Math.acos(i),s=Math.sin(o),l=Math.sin((1-r)*o)/s,c=Math.sin(r*o)/s):(l=1-r,c=r),e[0]=l*u+c*g,e[1]=l*d+c*m,e[2]=l*p+c*h,e[3]=l*f+c*v,e}Ei=new i(4),i!=Float32Array&&(Ei[0]=0,Ei[1]=0,Ei[2]=0,Ei[3]=0);var Ni=function(e,t,n,r){var o=new i(4);return o[0]=e,o[1]=t,o[2]=n,o[3]=r,o};Tn(),xn(1,0,0),xn(0,1,0),Di(),Di(),oe();var Fi={CoordinateSystem:{DISPLAY:0,WORLD:1}};const{CoordinateSystem:ki}=Fi;function Ui(e){return()=>Wt.vtkErrorMacro(`vtkProp::${e} - NOT IMPLEMENTED`)}function Gi(e,t){t.classHierarchy.push("vtkProp"),e.getMTime=()=>{let e=t.mtime;for(let n=0;ne&&(e=r)}return e},e.processSelectorPixelBuffers=(e,t)=>{},e.getNestedProps=()=>null,e.getActors=()=>[],e.getActors2D=()=>[],e.getVolumes=()=>[],e.pick=Ui("pick"),e.hasKey=Ui("hasKey"),e.getNestedVisibility=()=>t.visibility&&(!t._parentProp||t._parentProp.getNestedVisibility()),e.getNestedPickable=()=>t.pickable&&(!t._parentProp||t._parentProp.getNestedPickable()),e.getNestedDragable=()=>t.dragable&&(!t._parentProp||t._parentProp.getNestedDragable()),e.getRedrawMTime=()=>t.mtime,e.setEstimatedRenderTime=e=>{t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=()=>{t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=e=>{t.estimatedRenderTime+=e},e.setAllocatedRenderTime=e=>{t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=()=>!1,e.getTextures=()=>t.textures,e.hasTexture=e=>-1!==t.textures.indexOf(e),e.addTexture=n=>{n&&!e.hasTexture(n)&&(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=n=>{const r=t.textures.filter((e=>e!==n));t.textures.length!==r.length&&(t.textures=r,e.modified())},e.removeAllTextures=()=>{t.textures=[],e.modified()},e.setCoordinateSystemToWorld=()=>e.setCoordinateSystem(ki.WORLD),e.setCoordinateSystemToDisplay=()=>e.setCoordinateSystem(ki.DISPLAY)}const zi={allocatedRenderTime:10,coordinateSystem:ki.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function Wi(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zi,n),Wt.obj(e,t),Wt.get(e,t,["estimatedRenderTime","allocatedRenderTime"]),Wt.setGet(e,t,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),Wt.moveToProtected(e,t,["parentProp"]),Gi(e,t)}var Hi={newInstance:Wt.newInstance(Wi,"vtkProp"),extend:Wi,...Fi};function ji(e,t){t.classHierarchy.push("vtkProp3D"),e.addPosition=n=>{t.position=t.position.map(((e,t)=>e+n[t])),e.modified()},e.getOrientationWXYZ=()=>{const e=Di();L(e,t.rotation);const n=new Float64Array(3);return[So(Li(n,e)),n[0],n[1],n[2]]},e.getOrientationQuaternion=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return L(e,t.rotation)},e.rotateX=n=>{0!==n&&(x(t.rotation,t.rotation,xo(n)),e.modified())},e.rotateY=n=>{0!==n&&(S(t.rotation,t.rotation,xo(n)),e.modified())},e.rotateZ=n=>{0!==n&&(C(t.rotation,t.rotation,xo(n)),e.modified())},e.rotateWXYZ=(n,r,o,a)=>{if(0===n||0===r&&0===o&&0===a)return;const i=xo(n),s=Di();Bi(s,[r,o,a],i);const l=new Float64Array(16);N(l,s),v(t.rotation,t.rotation,l),e.modified()},e.rotateQuaternion=n=>{if(Math.abs(n[3])>=.999999)return;const r=N(new Float64Array(16),n);v(t.rotation,t.rotation,r),e.modified()},e.setOrientation=(n,r,o)=>(n!==t.orientation[0]||r!==t.orientation[1]||o!==t.orientation[2])&&(t.orientation=[n,r,o],p(t.rotation),e.rotateZ(o),e.rotateX(n),e.rotateY(r),e.modified(),!0),e.setUserMatrix=n=>!Qo(t.userMatrix,n)&&(c(t.userMatrix,n),e.modified(),!0),e.getMatrix=()=>(e.computeMatrix(),t.matrix),e.computeMatrix=()=>{if(e.getMTime()>t.matrixMTime.getMTime()){p(t.matrix),t.userMatrix&&v(t.matrix,t.matrix,t.userMatrix),b(t.matrix,t.matrix,t.origin),b(t.matrix,t.matrix,t.position),v(t.matrix,t.matrix,t.rotation),y(t.matrix,t.matrix,t.scale),b(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),f(t.matrix,t.matrix),t.isIdentity=!0;for(let e=0;e<4;++e)for(let n=0;n<4;++n)(e===n?1:0)!==t.matrix[e+4*n]&&(t.isIdentity=!1);t.matrixMTime.modified()}},e.getCenter=()=>Mi.getCenter(t.bounds),e.getLength=()=>Mi.getLength(t.bounds),e.getXRange=()=>Mi.getXRange(t.bounds),e.getYRange=()=>Mi.getYRange(t.bounds),e.getZRange=()=>Mi.getZRange(t.bounds),e.getUserMatrix=()=>t.userMatrix,e.onModified((function(){e.computeMatrix()}))}const $i={origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],bounds:[1,-1,1,-1,1,-1],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function Ki(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$i,n),Hi.extend(e,t,n),t.matrixMTime={},Wt.obj(t.matrixMTime),Wt.get(e,t,["bounds","isIdentity"]),Wt.getArray(e,t,["orientation"]),Wt.setGetArray(e,t,["origin","position","scale"],3),t.matrix=p(new Float64Array(16)),t.rotation=p(new Float64Array(16)),t.userMatrix=p(new Float64Array(16)),t.transform=null,ji(e,t)}var qi={newInstance:Wt.newInstance(Ki,"vtkProp3D"),extend:Ki};const Xi={FLAT:0,GOURAUD:1,PHONG:2},Yi={POINTS:0,WIREFRAME:1,SURFACE:2};var Qi={Shading:Xi,Representation:Yi,Interpolation:Xi};const{Representation:Zi,Interpolation:Ji}=Qi;function es(e){return()=>Wt.vtkErrorMacro(`vtkProperty::${e} - NOT IMPLEMENTED`)}function ts(e,t){t.classHierarchy.push("vtkProperty"),e.setColor=(n,r,o)=>{Array.isArray(n)?t.color[0]===n[0]&&t.color[1]===n[1]&&t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&&t.color[1]===r&&t.color[2]===o||(t.color[0]=n,t.color[1]=r,t.color[2]=o,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=es("ComputeCompositeColor"),e.getColor=()=>{let e=0;t.ambient+t.diffuse+t.specular>0&&(e=1/(t.ambient+t.diffuse+t.specular));for(let n=0;n<3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.setSpecularPower=n=>{const r=1/Math.max(1,n);t.roughness===r&&t.specularPower===n||(t.specularPower=n,t.roughness=r,e.modified())},e.addShaderVariable=es("AddShaderVariable"),e.setInterpolationToFlat=()=>e.setInterpolation(Ji.FLAT),e.setInterpolationToGouraud=()=>e.setInterpolation(Ji.GOURAUD),e.setInterpolationToPhong=()=>e.setInterpolation(Ji.PHONG),e.getInterpolationAsString=()=>Wt.enumToString(Ji,t.interpolation),e.setRepresentationToWireframe=()=>e.setRepresentation(Zi.WIREFRAME),e.setRepresentationToSurface=()=>e.setRepresentation(Zi.SURFACE),e.setRepresentationToPoints=()=>e.setRepresentation(Zi.POINTS),e.getRepresentationAsString=()=>Wt.enumToString(Zi,t.representation)}const ns={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,interpolation:Ji.GOURAUD,representation:Zi.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null};function rs(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ns,n),Wt.obj(e,t),Wt.setGet(e,t,["lighting","interpolation","ambient","diffuse","metallic","roughness","normalStrength","emission","baseIOR","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation","diffuseTexture","metallicTexture","roughnessTexture","normalTexture","ambientOcclusionTexture","emissionTexture"]),Wt.setGetArray(e,t,["ambientColor","specularColor","diffuseColor","edgeColor"],3),ts(e,t)}var os={newInstance:Wt.newInstance(rs,"vtkProperty"),extend:rs,...Qi};const{vtkDebugMacro:as}=Wt;function is(e,t){t.classHierarchy.push("vtkActor");const n={...e};e.getActors=()=>[e],e.getIsOpaque=()=>{if(t.forceOpaque)return!0;if(t.forceTranslucent)return!1;t.property||e.getProperty();let n=t.property.getOpacity()>=1;return n=n&&(!t.texture||!t.texture.isTranslucent()),n=n&&(!t.mapper||t.mapper.getIsOpaque()),n},e.hasTranslucentPolygonalGeometry=()=>null!==t.mapper&&(null===t.property&&e.setProperty(e.makeProperty()),!e.getIsOpaque()),e.makeProperty=os.newInstance,e.getProperty=()=>(null===t.property&&(t.property=e.makeProperty()),t.property),e.getBounds=()=>{if(null===t.mapper)return t.bounds;const n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||n[0]!==t.mapperBounds[0]||n[1]!==t.mapperBounds[1]||n[2]!==t.mapperBounds[2]||n[3]!==t.mapperBounds[3]||n[4]!==t.mapperBounds[4]||n[5]!==t.mapperBounds[5]||e.getMTime()>t.boundsMTime.getMTime()){as("Recomputing bounds..."),t.mapperBounds=n.concat();const r=[];Mi.getCorners(n,r),e.computeMatrix();const o=new Float64Array(16);f(o,t.matrix),r.forEach((e=>In(e,e,o))),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(((e,t)=>t%2==0?r.reduce(((e,n)=>e>n[t/2]?n[t/2]:e),e):r.reduce(((e,n)=>e{let e=n.getMTime();if(null!==t.property){const n=t.property.getMTime();e=n>e?n:e}if(null!==t.backfaceProperty){const n=t.backfaceProperty.getMTime();e=n>e?n:e}return e},e.getRedrawMTime=()=>{let e=t.mtime;if(null!==t.mapper){let n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),n=t.mapper.getInput().getMTime(),e=n>e?n:e)}return e},e.getSupportsSelection=()=>!!t.mapper&&t.mapper.getSupportsSelection(),e.processSelectorPixelBuffers=(e,n)=>{t.mapper&&t.mapper.processSelectorPixelBuffers&&t.mapper.processSelectorPixelBuffers(e,n)}}const ss={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function ls(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ss,n),qi.extend(e,t,n),t.boundsMTime={},Wt.obj(t.boundsMTime),Wt.set(e,t,["property"]),Wt.setGet(e,t,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),is(e,t)}var cs={newInstance:Wt.newInstance(ls,"vtkActor"),extend:ls};const us={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},ds={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",UNSIGNED_CHAR_CLAMPED:"Uint8ClampedArray",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"};var ps={DefaultDataType:ds.FLOAT,DataTypeByteSize:us,VtkDataTypes:ds};const{vtkErrorMacro:fs}=Ht,{DefaultDataType:gs}=ps,ms=1e-6;function hs(e,t,n){const r=e.length;let o,a,i=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(a=t;as&&(s=o);return{min:i,max:s}}function vs(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(t<0&&n>1){const t=e.length/n,r=new Float64Array(t);for(let o=0,a=0;o1&&void 0!==arguments[1]?arguments[1]:0;const n=e||[];for(;n.length<=t;)n.push(null);return n}function ys(e){return Object.prototype.toString.call(e).slice(8,-1)}const Ts={computeRange:vs,createRangeHelper:function(){let e=Number.MAX_VALUE,t=-Number.MAX_VALUE,n=0,r=0;return{add(o){e>o&&(e=o),t({min:e,max:t,count:n,sum:r,mean:r/n}),getRange:()=>({min:e,max:t})}},fastComputeRange:hs,getDataType:ys,getMaxNorm:function(e){const t=e.getNumberOfComponents();let n=0;const r=new Array(t);for(let o=0;on&&(n=a)}return n}};function xs(e,t){function n(n){if(n<0)return!1;const r=e.getNumberOfComponents(),o=t.values.length/(r>0?r:1);if(n===o)return!0;if(n>o){const e=t.values;return t.values=rt(t.dataType,(n+o)*r),t.values.set(e),!0}return t.size>n*r&&(t.size=n*r,e.dataChange()),!0}t.classHierarchy.push("vtkDataArray"),e.dataChange=()=>{t.ranges=null,e.modified()},e.resize=r=>{n(r);const o=r*e.getNumberOfComponents();return t.size!==o&&(t.size=o,e.dataChange(),!0)},e.initialize=()=>{e.resize(0)},e.getElementComponentSize=()=>t.values.BYTES_PER_ELEMENT,e.getComponent=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.values[e*t.numberOfComponents+n]},e.setComponent=(n,r,o)=>{o!==t.values[n*t.numberOfComponents+r]&&(t.values[n*t.numberOfComponents+r]=o,e.dataChange())},e.getValue=n=>{const r=n/t.numberOfComponents,o=n%t.numberOfComponents;return e.getComponent(r,o)},e.setValue=(n,r)=>{const o=n/t.numberOfComponents,a=n%t.numberOfComponents;e.setComponent(o,a,r)},e.getData=()=>t.size===t.values.length?t.values:t.values.subarray(0,t.size),e.getRange=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,r=n;r<0&&(r=1===t.numberOfComponents?0:t.numberOfComponents);let o=null;return t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents)),o=t.ranges[r],o?(t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple):(o=vs(e.getData(),n,t.numberOfComponents),t.ranges[r]=o,t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple)},e.setRange=(e,n)=>{t.ranges||(t.ranges=bs(t.ranges,t.numberOfComponents));const r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.setTuple=(e,n)=>{const r=e*t.numberOfComponents;for(let e=0;e{let r=e*t.numberOfComponents;const o=Math.min(n.length,t.size-r);for(let e=0;e(t.size<=r*t.numberOfComponents&&(t.size=(r+1)*t.numberOfComponents,n(r+1)),e.setTuple(r,o),r),e.insertTuples=(r,o)=>{const a=r+o.length/t.numberOfComponents;return t.size{const r=t.size/t.numberOfComponents;return e.insertTuple(r,n)},e.insertNextTuples=n=>{const r=t.size/t.numberOfComponents;return e.insertTuples(r,n)},e.findTuple=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ms;for(let r=0;rn){o=!1;break}if(o)return r/t.numberOfComponents}return-1},e.getTuple=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const r=t.numberOfComponents||1,o=e*r;switch(r){case 4:n[3]=t.values[o+3];case 3:n[2]=t.values[o+2];case 2:n[1]=t.values[o+1];case 1:n[0]=t.values[o];break;default:for(let e=r-1;e>=0;--e)n[e]=t.values[o+e]}return n},e.getTuples=(n,r)=>{const o=(n??0)*t.numberOfComponents,a=(r??e.getNumberOfTuples())*t.numberOfComponents,i=e.getData().subarray(o,a);return i.length>0?i:null},e.getTupleLocation=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return e*t.numberOfComponents},e.getNumberOfComponents=()=>t.numberOfComponents,e.getNumberOfValues=()=>t.size,e.getNumberOfTuples=()=>t.size/t.numberOfComponents,e.getDataType=()=>t.dataType,e.newClone=()=>As({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents}),e.getName=()=>(t.name||(e.modified(),t.name=`vtkDataArray${e.getMTime()}`),t.name),e.setData=(n,r)=>{t.values=n,t.size=n.length,t.dataType=ys(n),r&&(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&&(t.numberOfComponents=1),e.dataChange()},e.getState=()=>{if(t.deleted)return null;const n={...t,vtkClass:e.getClassName()};n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach((e=>{n[e]||delete n[e]}));const r={};return Object.keys(n).sort().forEach((e=>{r[e]=n[e]})),r.mtime&&delete r.mtime,r},e.deepCopy=n=>{const r=e.getDataType(),o=t.values;e.shallowCopy(n),o?.length>=n.getNumberOfValues()&&r===n.getDataType()?(o.set(n.getData()),t.values=o,e.dataChange()):e.setData(n.getData().slice())},e.interpolateTuple=(n,r,o,a,i,s)=>{const l=t.numberOfComponents||1;l===r.getNumberOfComponents()&&l===a.getNumberOfComponents()||fs("numberOfComponents must match");const c=r.getTuple(o),u=a.getTuple(i),d=[];switch(d.length=l,l){case 4:d[3]=c[3]+(u[3]-c[3])*s;case 3:d[2]=c[2]+(u[2]-c[2])*s;case 2:d[1]=c[1]+(u[1]-c[1])*s;case 1:d[0]=c[0]+(u[0]-c[0])*s;break;default:for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,Ss,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");if(t.values?Array.isArray(t.values)&&(t.values=ot(t.dataType,t.values)):t.values=rt(t.dataType,t.size),t.values&&(t.size=t.size??t.values.length,t.dataType=ys(t.values)),ht(e,t),xt(e,t,["name","numberOfComponents"]),t.size%t.numberOfComponents!=0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");xs(e,t)}const As=Mt(Cs,"vtkDataArray");var ws={newInstance:As,extend:Cs,...Ts,...ps};function Ps(e,t){t.classHierarchy.push("vtkAbstractMapper"),e.update=()=>{e.getInputData()},e.addClippingPlane=n=>!!n.isA("vtkPlane")&&!t.clippingPlanes.includes(n)&&(t.clippingPlanes.push(n),e.modified(),!0),e.getNumberOfClippingPlanes=()=>t.clippingPlanes.length,e.removeAllClippingPlanes=()=>0!==t.clippingPlanes.length&&(t.clippingPlanes.length=0,e.modified(),!0),e.removeClippingPlane=n=>{const r=t.clippingPlanes.indexOf(n);return-1!==r&&(t.clippingPlanes.splice(r,1),e.modified(),!0)},e.getClippingPlanes=()=>t.clippingPlanes,e.setClippingPlanes=t=>{if(t)if(Array.isArray(t)){const n=t.length;for(let r=0;r{const o=t.clippingPlanes,a=e;if(o){const e=o.length;if(n>=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Is,n),Wt.obj(e,t),Wt.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),Ps(e,t)};function Es(e,t){e.getBounds=()=>(Wt.vtkErrorMacro("vtkAbstractMapper3D.getBounds - NOT IMPLEMENTED"),Pa()),e.getCenter=()=>{const n=e.getBounds();return t.center=Mi.isValid(n)?Mi.getCenter(n):null,t.center?.slice()},e.getLength=()=>{const t=e.getBounds();return Mi.getDiagonalLength(t)}}const Ms=e=>({bounds:[...Mi.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...e});var Rs=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ms(n)),Os(e,t,n),Wt.setGet(e,t,["viewSpecificProperties"]),Es(e,t)};const{vtkErrorMacro:Ds,vtkWarningMacro:Bs}=Wt;function Ls(e,t){t.classHierarchy.push("vtkFieldData");const n=e.getState;t.arrays&&(t.arrays=t.arrays.map((e=>({data:Ge(e.data)})))),e.initialize=()=>{e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=()=>{t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=n=>{e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map((e=>e)),t.arrays=n.arrays().map((e=>({array:e})))},e.getNumberOfArrays=()=>t.arrays.length,e.getNumberOfActiveArrays=()=>t.arrays.length,e.addArray=n=>{const r=n.getName(),{array:o,index:a}=e.getArrayWithIndex(r);return null!=o?(t.arrays[a]={data:n},a):(t.arrays=[].concat(t.arrays,{data:n}),t.arrays.length-1)},e.removeAllArrays=()=>{t.arrays=[]},e.removeArray=n=>{const r=t.arrays.findIndex((e=>e.data.getName()===n));return e.removeArrayByIndex(r)},e.removeArrayByIndex=e=>-1!==e&&et.arrays.map((e=>e.data)),e.getArray=t=>"number"==typeof t?e.getArrayByIndex(t):e.getArrayByName(t),e.getArrayByName=e=>t.arrays.reduce(((t,n,r)=>n.data.getName()===e?n.data:t),null),e.getArrayWithIndex=e=>{const n=t.arrays.findIndex((t=>t.data.getName()===e));return{array:-1!==n?t.arrays[n].data:null,index:n}},e.getArrayByIndex=e=>e>=0&&ee.getArrayWithIndex(t).index>=0,e.getArrayName=e=>{const n=t.arrays[e];return n?n.data.getName():""},e.getCopyFieldFlags=()=>t.copyFieldFlags,e.getFlag=e=>t.copyFieldFlags[e],e.passData=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;n.getArrays().forEach((a=>{const i=e.getFlag(a.getName());if(!1!==i&&(!t.doCopyAllOff||!0===i)&&a){let t=e.getArrayByName(a.getName());if(t)if(a.getNumberOfComponents()===t.getNumberOfComponents())if(r>-1&&r-1?o:r;t.insertTuple(e,a.getTuple(r))}else t.insertTuples(0,a.getTuples());else Ds("Unhandled case in passData");else if(r<0||r>a.getNumberOfTuples())e.addArray(a),n.getAttributes(a).forEach((t=>{e.setAttribute(a,t)}));else{const i=a.getNumberOfComponents();let s=a.getNumberOfValues();const l=o>-1?o:r;s<=l*i&&(s=(l+1)*i),t=ws.newInstance({name:a.getName(),dataType:a.getDataType(),numberOfComponents:i,values:Wt.newTypedArray(a.getDataType(),s),size:0}),t.insertTuple(l,a.getTuple(r)),e.addArray(t),n.getAttributes(a).forEach((n=>{e.setAttribute(t,n)}))}}}))},e.interpolateData=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5;n.getArrays().forEach((s=>{const l=e.getFlag(s.getName());if(!1!==l&&(!t.doCopyAllOff||!0===l)&&s){let t=e.getArrayByName(s.getName());if(t)if(s.getNumberOfComponents()===t.getNumberOfComponents())if(r>-1&&r-1?a:r;t.interpolateTuple(e,s,r,s,o,i),Bs("Unexpected case in interpolateData")}else t.insertTuples(s.getTuples());else Ds("Unhandled case in interpolateData");else if(r<0||o<0||r>s.getNumberOfTuples())e.addArray(s),n.getAttributes(s).forEach((t=>{e.setAttribute(s,t)}));else{const l=s.getNumberOfComponents();let c=s.getNumberOfValues();const u=a>-1?a:r;c<=u*l&&(c=(u+1)*l),t=ws.newInstance({name:s.getName(),dataType:s.getDataType(),numberOfComponents:l,values:Wt.newTypedArray(s.getDataType(),c),size:0}),t.interpolateTuple(u,s,r,s,o,i),e.addArray(t),n.getAttributes(s).forEach((n=>{e.setAttribute(t,n)}))}}}))},e.copyFieldOn=e=>{t.copyFieldFlags[e]=!0},e.copyFieldOff=e=>{t.copyFieldFlags[e]=!1},e.copyAllOn=()=>{t.doCopyAllOn&&!t.doCopyAllOff||(t.doCopyAllOn=!0,t.doCopyAllOff=!1,e.modified())},e.copyAllOff=()=>{!t.doCopyAllOn&&t.doCopyAllOff||(t.doCopyAllOn=!1,t.doCopyAllOff=!0,e.modified())},e.clearFieldFlags=()=>{t.copyFieldFlags={}},e.deepCopy=e=>{t.arrays=e.getArrays().map((e=>{const t=e.newClone();return t.deepCopy(e),{data:t}}))},e.copyFlags=e=>e.getCopyFieldFlags().map((e=>e)),e.reset=()=>t.arrays.forEach((e=>e.data.reset())),e.getMTime=()=>t.arrays.reduce(((e,t)=>t.data.getMTime()>e?t.data.getMTime():e),t.mtime),e.getNumberOfComponents=()=>t.arrays.reduce(((e,t)=>e+t.data.getNumberOfComponents()),0),e.getNumberOfTuples=()=>t.arrays.length>0?t.arrays[0].getNumberOfTuples():0,e.getState=()=>{const e=n();return e&&(e.arrays=t.arrays.map((e=>({data:e.data.getState()})))),e}}const Vs={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function _s(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vs,n),Wt.obj(e,t),Ls(e,t)}var Ns={newInstance:Wt.newInstance(_s,"vtkFieldData"),extend:_s},Fs={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:{DEFAULT:0,SINGLE:1,DOUBLE:2},PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:"vtkGhostType"};const{AttributeTypes:ks,AttributeCopyOperations:Us}=Fs,{vtkWarningMacro:Gs}=Wt;function zs(e,t){const n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(e){let t=n.find((t=>ks[t.toUpperCase()]===e||"number"!=typeof e&&t.toLowerCase()===e.toLowerCase()));return void 0===t&&(t=null),t}t.classHierarchy.push("vtkDataSetAttributes");const o={...e};e.checkNumberOfComponents=e=>!0,e.setAttribute=(n,o)=>{const a=r(o);if(n&&"PEDIGREEIDS"===a.toUpperCase()&&!n.isA("vtkDataArray"))return Gs(`Cannot set attribute ${a}. The attribute must be a vtkDataArray.`),-1;if(n&&!e.checkNumberOfComponents(n,a))return Gs(`Cannot set attribute ${a}. Incorrect number of components.`),-1;let i=t[`active${a}`];if(i>=0&&in.filter((n=>e[`get${n}`]()===t)),e.setActiveAttributeByName=(t,n)=>e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e.setActiveAttributeByIndex=(n,o)=>{const a=r(o);if(n>=0&&n{const n=r(t);return e[`get${n}`]()},e.removeAllArrays=()=>{n.forEach((e=>{t[`active${e}`]=-1})),o.removeAllArrays()},e.removeArrayByIndex=e=>(-1!==e&&n.forEach((n=>{e===t[`active${n}`]?t[`active${n}`]=-1:e{const r=`active${n}`;e[`get${n}`]=()=>e.getArrayByIndex(t[r]),e[`set${n}`]=t=>e.setAttribute(t,n),e[`setActive${n}`]=t=>e.setActiveAttributeByIndex(e.getArrayWithIndex(t).index,n),e[`copy${n}Off`]=()=>{const e=n.toUpperCase();t.copyAttributeFlags[Us.PASSDATA][ks[e]]=!1},e[`copy${n}On`]=()=>{const e=n.toUpperCase();t.copyAttributeFlags[Us.PASSDATA][ks[e]]=!0}})),e.initializeAttributeCopyFlags=()=>{t.copyAttributeFlags=[],Object.keys(Us).filter((e=>"ALLCOPY"!==e)).forEach((e=>{t.copyAttributeFlags[Us[e]]=Object.keys(ks).filter((e=>"NUM_ATTRIBUTES"!==e)).reduce(((e,t)=>(e[ks[t]]=!0,e)),[])})),t.copyAttributeFlags[Us.COPYTUPLE][ks.GLOBALIDS]=!1,t.copyAttributeFlags[Us.INTERPOLATE][ks.GLOBALIDS]=!1,t.copyAttributeFlags[Us.COPYTUPLE][ks.PEDIGREEIDS]=!1},e.initialize=Wt.chain(e.initialize,e.initializeAttributeCopyFlags),t.dataArrays&&Object.keys(t.dataArrays).length&&Object.keys(t.dataArrays).forEach((n=>{t.dataArrays[n].ref||"vtkDataArray"!==t.dataArrays[n].type||e.addArray(ws.newInstance(t.dataArrays[n]))}));const a=e.shallowCopy;e.shallowCopy=(e,n)=>{a(e,n),t.arrays=e.getArrays().map((e=>{const t=e.newClone();return t.shallowCopy(e,n),{data:t}}))},e.initializeAttributeCopyFlags()}const Ws={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function Hs(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ws,n),Ns.extend(e,t,n),Wt.setGet(e,t,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),t.arrays||(t.arrays={}),zs(e,t)}var js={newInstance:Wt.newInstance(Hs,"vtkDataSetAttributes"),extend:Hs,...Fs};const $s=["pointData","cellData","fieldData"];function Ks(e,t){t.classHierarchy.push("vtkDataSet"),$s.forEach((e=>{t[e]?t[e]=Ge(t[e]):t[e]=js.newInstance()}));const n=e.shallowCopy;e.shallowCopy=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),$s.forEach((n=>{t[n]=js.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))}}const qs={};function Xs(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qs,n),Wt.obj(e,t),Wt.setGet(e,t,$s),Ks(e,t)}var Ys={newInstance:Wt.newInstance(Xs,"vtkDataSet"),extend:Xs,FieldDataTypes:{UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},FieldAssociations:{FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7}};const Qs={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9};var Zs={StructuredType:Qs};const{StructuredType:Js}=Zs;var el={getDataDescriptionFromExtent:function(e){let t=0;for(let n=0;n<3;++n)e[2*n]e[1]||e[2]>e[3]||e[4]>e[5]?Js.EMPTY:3===t?Js.XYZ_GRID:2===t?e[0]===e[1]?Js.YZ_PLANE:e[2]===e[3]?Js.XZ_PLANE:Js.XY_PLANE:1===t?e[0]e!==a[t]));return i&&(t.extent=a.slice(),t.dataDescription=el.getDataDescriptionFromExtent(t.extent),e.modified()),i},e.setDimensions=function(){let n,r,o;if(t.deleted)tl("instance deleted - cannot call any method");else{if(1===arguments.length){const e=arguments.length<=0?void 0:arguments[0];n=e[0],r=e[1],o=e[2]}else{if(3!==arguments.length)return void tl("Bad dimension specification");n=arguments.length<=0?void 0:arguments[0],r=arguments.length<=1?void 0:arguments[1],o=arguments.length<=2?void 0:arguments[2]}e.setExtent(0,n-1,0,r-1,0,o-1)}},e.getDimensions=()=>[t.extent[1]-t.extent[0]+1,t.extent[3]-t.extent[2]+1,t.extent[5]-t.extent[4]+1],e.getNumberOfCells=()=>{const t=e.getDimensions();let n=1;for(let e=0;e<3;e++){if(0===t[e])return 0;t[e]>1&&(n*=t[e]-1)}return n},e.getNumberOfPoints=()=>{const t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=n=>{const r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return tl("Requesting a point from an empty image."),null;const o=new Float64Array(3);switch(t.dataDescription){case Qs.EMPTY:return null;case Qs.SINGLE_POINT:break;case Qs.X_LINE:o[0]=n;break;case Qs.Y_LINE:o[1]=n;break;case Qs.Z_LINE:o[2]=n;break;case Qs.XY_PLANE:o[0]=n%r[0],o[1]=n/r[0];break;case Qs.YZ_PLANE:o[1]=n%r[1],o[2]=n/r[1];break;case Qs.XZ_PLANE:o[0]=n%r[0],o[2]=n/r[0];break;case Qs.XYZ_GRID:o[0]=n%r[0],o[1]=n/r[0]%r[1],o[2]=n/(r[0]*r[1]);break;default:tl("Invalid dataDescription")}const a=[0,0,0];return e.indexToWorld(o,a),a},e.getBounds=()=>e.extentToBounds(e.getSpatialExtent()),e.extentToBounds=e=>Mi.transformBounds(e,t.indexToWorld),e.getSpatialExtent=()=>Mi.inflate([...t.extent],.5),e.computeTransforms=()=>{A(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],y(t.indexToWorld,t.indexToWorld,t.spacing),g(t.worldToIndex,t.indexToWorld)},e.indexToWorld=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return In(n,e,t.indexToWorld),n},e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return In(n,e,t.worldToIndex),n},e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Mi.transformBounds(e,t.indexToWorld,n)},e.worldToIndexBounds=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Mi.transformBounds(e,t.worldToIndex,n)},e.onModified(e.computeTransforms),e.computeTransforms(),e.getCenter=()=>Mi.getCenter(e.getBounds()),e.computeHistogram=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);const o=[0,0,0],a=[0,0,0];Mi.computeCornerPoints(r,o,a),na(o,o),na(a,a);const i=e.getDimensions();Ta(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o),Ta(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a);const s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData();let u=-1/0,d=1/0,p=0,f=0,g=0;for(let e=o[2];e<=a[2];e++)for(let t=o[1];t<=a[1];t++){let i=o[0]+t*s+e*l;for(let s=o[0];s<=a[0];s++){if(!n||n([s,t,e],r)){const e=c[i];e>u&&(u=e),e0?f/g:0,h=g?Math.abs(p/g-m*m):0,v=Math.sqrt(h);return{minimum:d,maximum:u,average:m,variance:h,sigma:v,count:g}},e.computeIncrements=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=[];let r=t;for(let t=0;t<3;++t)n[t]=r,r*=e[2*t+1]-e[2*t]+1;return n},e.computeOffsetIndex=t=>{let[n,r,o]=t;const a=e.getExtent(),i=e.getPointData().getScalars().getNumberOfComponents(),s=e.computeIncrements(a,i);return Math.floor((Math.round(n)-a[0])*s[0]+(Math.round(r)-a[2])*s[1]+(Math.round(o)-a[4])*s[2])},e.getOffsetIndexFromWorld=t=>{const n=e.getExtent(),r=e.worldToIndex(t);for(let e=0;e<3;++e)if(r[e]n[2*e+1])return tl(`GetScalarPointer: Pixel ${r} is not in memory. Current extent = ${n}`),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const r=e.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=r)return tl(`GetScalarPointer: Scalar Component ${n} is not within bounds. Current Scalar numberOfComponents: ${r}`),NaN;const o=e.getOffsetIndexFromWorld(t);return Number.isNaN(o)?o:e.getPointData().getScalars().getComponent(o,n)}}const rl={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:Qs.EMPTY};function ol(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rl,n),Ys.extend(e,t,n),t.direction?Array.isArray(t.direction)&&(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=ue(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),Wt.get(e,t,["indexToWorld","worldToIndex"]),Wt.setGetArray(e,t,["origin","spacing"],3),Wt.setGetArray(e,t,["direction"],9),Wt.getArray(e,t,["extent"],6),nl(e,t)}var al={newInstance:Wt.newInstance(ol,"vtkImageData"),extend:ol};const il={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var sl={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:il},ll={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:{DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5}};const{ScalarMappingTarget:cl,VectorMode:ul}=sl,{VtkDataTypes:dl}=ws,{ColorMode:pl}=ll,{vtkErrorMacro:fl}=Wt;function gl(e){return e}function ml(e){return Math.floor(255*e+.5)}function hl(e,t){t.classHierarchy.push("vtkScalarsToColors"),e.setVectorModeToMagnitude=()=>e.setVectorMode(ul.MAGNITUDE),e.setVectorModeToComponent=()=>e.setVectorMode(ul.COMPONENT),e.setVectorModeToRGBColors=()=>e.setVectorMode(ul.RGBCOLORS),e.build=()=>{},e.isOpaque=()=>!0,e.setAnnotations=(n,r)=>{if(!(n&&!r||!n&&r))if(n&&r&&n.length!==r.length)fl("Values and annotations do not have the same number of tuples so ignoring");else{if(t.annotationArray=[],r&&n){const e=r.length;for(let o=0;o{let o=e.checkForAnnotatedValue(n),a=!1;return o>=0?t.annotationArray[o].annotation!==r&&(t.annotationArray[o].annotation=r,a=!0):(t.annotationArray.push({value:n,annotation:r}),o=t.annotationArray.length-1,a=!0),a&&(e.updateAnnotatedValueMap(),e.modified()),o},e.getNumberOfAnnotatedValues=()=>t.annotationArray.length,e.getAnnotatedValue=e=>e<0||e>=t.annotationArray.length?null:t.annotationArray[e].value,e.getAnnotation=e=>void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation,e.getAnnotatedValueIndex=n=>t.annotationArray.length?e.checkForAnnotatedValue(n):-1,e.removeAnnotation=n=>{const r=e.checkForAnnotatedValue(n),o=r>=0;return o&&(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),o},e.resetAnnotations=()=>{t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=(n,r)=>{if(t.indexedLookup){const t=e.getAnnotatedValueIndex(n);e.getIndexedColor(t,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=t=>e.getAnnotatedValueIndexInternal(t),e.getAnnotatedValueIndexInternal=e=>{if(void 0!==t.annotatedValueMap[e]){const n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=(e,t)=>{t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=()=>{t.annotatedValueMap=[];const e=t.annotationArray.length;for(let n=0;n{const o=t.getNumberOfComponents();let a=null;if(n===pl.DEFAULT&&(t.getDataType()===dl.UNSIGNED_CHAR||t.getDataType()===dl.UNSIGNED_CHAR_CLAMPED)||n===pl.DIRECT_SCALARS&&t)a=e.convertToRGBA(t,o,t.getNumberOfTuples());else{const n={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:dl.UNSIGNED_CHAR},i=Wt.newTypedArray(n.dataType,4*t.getNumberOfTuples());n.values=i,n.size=i.length,a=ws.newInstance(n);let s=r;s<0&&o>1?e.mapVectorsThroughTable(t,a,cl.RGBA,-1,-1):(s<0&&(s=0),s>=o&&(s=o-1),e.mapScalarsThroughTable(t,a,cl.RGBA,s))}return a},e.mapVectorsToMagnitude=(e,t,n)=>{const r=e.getNumberOfTuples(),o=e.getNumberOfComponents(),a=t.getData(),i=e.getData();for(let e=0;e{let i=e.getVectorMode(),s=a,l=o;const c=t.getNumberOfComponents();i===ul.COMPONENT?(-1===l&&(l=e.getVectorComponent()),l<0&&(l=0),l>=c&&(l=c-1)):(-1===s&&(s=e.getVectorSize()),s<=0?(l=0,s=c):(l<0&&(l=0),l>=c&&(l=c-1),l+s>c&&(s=c-l)),i!==ul.MAGNITUDE||1!==c&&1!==s||(i=ul.COMPONENT));let u=0;switch(l>0&&(u=l),i){case ul.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;case ul.RGBCOLORS:break;case ul.MAGNITUDE:default:{const o=ws.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,o,s),e.mapScalarsThroughTable(o,n,r,0);break}}},e.luminanceToRGBA=(e,t,n,r)=>{const o=r(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e{const o=ml(n),a=t.getData(),i=e.getData(),s=a.length;let l=0;for(let e=0;e{const o=t.getData(),a=e.getData(),i=o.length;let s=0;for(let e=0;e{let{alpha:a}=t;if(4===r&&a>=1&&n.getDataType()===dl.UNSIGNED_CHAR)return n;const i=ws.newInstance({numberOfComponents:4,empty:!0,size:4*o,dataType:dl.UNSIGNED_CHAR});if(o<=0)return i;a=a>0?a:0,a=a<1?a:1;let s=gl;switch(n.getDataType()!==dl.FLOAT&&n.getDataType()!==dl.DOUBLE||(s=ml),r){case 1:e.luminanceToRGBA(i,n,a,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,a,s);break;case 4:e.rGBAToRGBA(i,n,a,s);break;default:return fl("Cannot convert colors"),null}return i},e.usingLogScale=()=>!1,e.getNumberOfAvailableColors=()=>16777216,e.setRange=(t,n)=>e.setMappingRange(t,n),e.getRange=()=>e.getMappingRange(),e.areScalarsOpaque=(n,r,o)=>{if(!n)return e.isOpaque();const a=n.getNumberOfComponents();return(r!==pl.DEFAULT||n.getDataType()!==dl.UNSIGNED_CHAR)&&r!==pl.DIRECT_SCALARS||(3===a||1===a?t.alpha>=1:255===n.getRange(a-1)[0])}}const vl={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:ul.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function bl(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vl,n),Wt.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],Wt.setGet(e,t,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),Wt.setArray(e,t,["mappingRange"],2),Wt.getArray(e,t,["mappingRange"]),hl(e,t)}var yl={newInstance:Wt.newInstance(bl,"vtkScalarsToColors"),extend:bl,...sl};const{vtkErrorMacro:Tl}=Wt;function xl(e,t){t.classHierarchy.push("vtkLookupTable"),e.isOpaque=()=>{if(t.opaqueFlagBuildTime.getMTime()!1,e.getNumberOfAvailableColors=()=>t.table.length/4-3,e.linearIndexLookup=(e,t)=>{let n=0;const r=Number(e);return rt.range[1]?n=t.maxIndex+1+1.5:(n=(r+t.shift)*t.scale,n=n{let o=0;o=wa(t)?Math.floor(r.maxIndex+1.5+2):e.linearIndexLookup(t,r);const a=4*o;return n.slice(a,a+4)},e.indexedLookupFunction=(n,r,o)=>{let a=e.getAnnotatedValueIndexInternal(n);-1===a&&(a=t.numberOfColors+2);const i=4*a;return[r[i],r[i+1],r[i+2],r[i+3]]},e.lookupShiftAndScale=(e,t)=>{t.shift=-e[0],t.scale=Number.MAX_VALUE,e[1]>e[0]&&(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=(n,r,o,a)=>{let i=e.linearLookup;t.indexedLookup&&(i=e.indexedLookupFunction);const s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);const c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),p=r.getData(),f=n.getData();if(c>=1){if(o===il.RGBA)for(let e=0;e{let n=0,r=0,o=0,a=0;const i=t.numberOfColors-1;i&&(n=(t.hueRange[1]-t.hueRange[0])/i,r=(t.saturationRange[1]-t.saturationRange[0])/i,o=(t.valueRange[1]-t.valueRange[0])/i,a=(t.alphaRange[1]-t.alphaRange[0])/i),t.table.length=4*i+16;const s=[],l=[];for(let e=0;e<=i;e++)s[0]=t.hueRange[0]+e*n,s[1]=t.saturationRange[0]+e*r,s[2]=t.valueRange[0]+e*o,pa(s,l),l[3]=t.alphaRange[0]+e*a,t.table[4*e]=255*l[0]+.5,t.table[4*e+1]=255*l[1]+.5,t.table[4*e+2]=255*l[2]+.5,t.table[4*e+3]=255*l[3]+.5;e.buildSpecialColors(),t.buildTime.modified()},e.setTable=n=>{if(Array.isArray(n)){const r=n[0].length;t.numberOfColors=n.length;const o=4-r;let a=0;for(let e=0;e{const{numberOfColors:e}=t,n=t.table;let r=4*(e+0);t.useBelowRangeColor||0===e?(n[r]=255*t.belowRangeColor[0]+.5,n[r+1]=255*t.belowRangeColor[1]+.5,n[r+2]=255*t.belowRangeColor[2]+.5,n[r+3]=255*t.belowRangeColor[3]+.5):(n[r]=n[0],n[r+1]=n[1],n[r+2]=n[2],n[r+3]=n[3]),r=4*(e+1),t.useAboveRangeColor||0===e?(n[r]=255*t.aboveRangeColor[0]+.5,n[r+1]=255*t.aboveRangeColor[1]+.5,n[r+2]=255*t.aboveRangeColor[2]+.5,n[r+3]=255*t.aboveRangeColor[3]+.5):(n[r]=n[4*(e-1)+0],n[r+1]=n[4*(e-1)+1],n[r+2]=n[4*(e-1)+2],n[r+3]=n[4*(e-1)+3]),r=4*(e+2),n[r]=255*t.nanColor[0]+.5,n[r+1]=255*t.nanColor[1]+.5,n[r+2]=255*t.nanColor[2]+.5,n[r+3]=255*t.nanColor[3]+.5},e.build=()=>{(t.table.length<1||e.getMTime()>t.buildTime.getMTime()&&t.insertTime.getMTime()<=t.buildTime.getMTime())&&e.forceBuild()},t.table.length>0&&(e.buildSpecialColors(),t.insertTime.modified())}const Sl={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function Cl(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sl,n),yl.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},Wt.obj(t.buildTime),t.opaqueFlagBuildTime={},Wt.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},Wt.obj(t.insertTime,{mtime:0}),Wt.get(e,t,["buildTime"]),Wt.setGet(e,t,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),Wt.setArray(e,t,["alphaRange","hueRange","saturationRange","valueRange"],2),Wt.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),Wt.getArray(e,t,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),xl(e,t)}var Al={newInstance:Wt.newInstance(Cl,"vtkLookupTable"),extend:Cl};const wl={Off:0,PolygonOffset:1};let Pl=wl.PolygonOffset,Il=wl.Off;const Ol=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function El(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const t=Il===e;return Il=e,t}var Ml={Resolve:wl,getResolveCoincidentTopologyAsString:function(){return Ol[Il]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return Pl},getResolveCoincidentTopology:function(){return Il},setResolveCoincidentTopology:El,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){const t=Pl===e;return Pl=e,t},setResolveCoincidentTopologyToDefault:function(){return El(wl.Off)},setResolveCoincidentTopologyToOff:function(){return El(wl.Off)},setResolveCoincidentTopologyToPolygonOffset:function(){return El(wl.PolygonOffset)}};function Rl(e,t,n){n.forEach((n=>{e[`get${n.method}`]=()=>t[n.key],e[`set${n.method}`]=Wt.objectSetterMap.object(e,t,{name:n.key,params:["factor","offset"]})}))}const Dl=["Polygon","Line","Point"],Bl={modified:()=>{}};Rl(Bl,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},Dl.map((e=>({key:e,method:`ResolveCoincidentTopology${e}OffsetParameters`}))));var Ll={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&&(t.resolveCoincidentTopology=!1),Wt.setGet(e,t,["resolveCoincidentTopology"]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(Ml).forEach((t=>{e[t]=Ml[t]})),Object.keys(Bl).filter((e=>"modified"!==e)).forEach((t=>{e[t]=Bl[t]})),Rl(e,t.topologyOffset,Dl.map((e=>({key:e,method:`RelativeCoincidentTopology${e}OffsetParameters`})))),e.getCoincidentTopologyPolygonOffsetParameters=()=>{const t=Bl.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=()=>{const t=Bl.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=()=>{const t=Bl.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Bl,otherStaticMethods:Ml,CATEGORIES:Dl,Resolve:wl};const Vl={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var _l={PassTypes:Vl};const{FieldAssociations:Nl}=Ys,{staticOffsetAPI:Fl,otherStaticMethods:kl}=Ll,{ColorMode:Ul,ScalarMode:Gl,GetArray:zl}=ll,{VectorMode:Wl}=sl,{VtkDataTypes:Hl}=ws;function jl(e){return()=>Wt.vtkErrorMacro(`vtkMapper::${e} - NOT IMPLEMENTED`)}function $l(e,t){const n=e[1]%2==0?1:-1;if(e[0]+=n,e[0]>=t[0]||e[0]<0){const r=e[2]%2==0?1:-1;e[0]-=n,e[1]+=r,(e[1]>=t[1]||e[1]<0)&&(e[1]-=r,e[2]++)}}function Kl(e,t,n){const r=Math.floor(t),o=r%(2*n[0]);let a,i;o{const n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Pa(),t.bounds},e.setForceCompileOnly=e=>{t.forceCompileOnly=e},e.setSelectionWebGLIdsToVTKIds=e=>{t.selectionWebGLIdsToVTKIds=e},e.createDefaultLookupTable=()=>{t.lookupTable=Al.newInstance()},e.getColorModeAsString=()=>Wt.enumToString(Ul,t.colorMode),e.setColorModeToDefault=()=>e.setColorMode(0),e.setColorModeToMapScalars=()=>e.setColorMode(1),e.setColorModeToDirectScalars=()=>e.setColorMode(2),e.getScalarModeAsString=()=>Wt.enumToString(Gl,t.scalarMode),e.setScalarModeToDefault=()=>e.setScalarMode(0),e.setScalarModeToUsePointData=()=>e.setScalarMode(1),e.setScalarModeToUseCellData=()=>e.setScalarMode(2),e.setScalarModeToUsePointFieldData=()=>e.setScalarMode(3),e.setScalarModeToUseCellFieldData=()=>e.setScalarMode(4),e.setScalarModeToUseFieldData=()=>e.setScalarMode(5),e.getAbstractScalars=(e,n,r,o,a)=>{if(!e||!t.scalarVisibility)return{scalars:null,cellFlag:!1};let i=null,s=!1;if(n===Gl.DEFAULT)i=e.getPointData().getScalars(),i||(i=e.getCellData().getScalars(),s=!0);else if(n===Gl.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===Gl.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===Gl.USE_POINT_FIELD_DATA){const t=e.getPointData();i=r===zl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===Gl.USE_CELL_FIELD_DATA){const t=e.getCellData();s=!0,i=r===zl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===Gl.USE_FIELD_DATA){const t=e.getFieldData();i=r===zl.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}return{scalars:i,cellFlag:s}},e.mapScalars=(n,r)=>{const{scalars:o,cellFlag:a}=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName);if(t.areScalarsMappedFromCells=a,!o)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);const i=`${e.getMTime()}${o.getMTime()}${r}`;if(t.colorBuildString!==i){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(o,a))t.mapScalarsToTexture(o,a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;const n=e.getLookupTable();n&&(n.build(),t.colorMapColors=n.mapScalars(o,t.colorMode,t.fieldDataTupleId))}t.colorBuildString=`${e.getMTime()}${o.getMTime()}${r}`}},t.mapScalarsToTexture=(n,r,o)=>{const a=t.lookupTable.getRange(),i=t.lookupTable.usingLogScale();i&&Al.getLogRange(a,a);const s=t.lookupTable.getAlpha();if(t.colorMapColors=null,null==t.colorTextureMap||e.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==o){t.lookupTable.setAlpha(o),t.colorTextureMap=null,t.lookupTable.build();const e=t.lookupTable.getNumberOfAvailableColors(),n=2048,u=n**3-3,d=4094,p=2,f=r?u:d;t.numberOfColorsInRange=Math.min(Math.max(e,p),f);const g=t.numberOfColorsInRange+3,m=t.numberOfColorsInRange+2,h=r?[Math.min(Math.ceil(g/n**0),n),Math.min(Math.ceil(g/n**1),n),Math.min(Math.ceil(g/n**2),n)]:[m,2,1],v=h[0]*h[1]*h[2],b=new Float64Array(v);b.fill(NaN);const y=t.numberOfColorsInRange,T=y+2,x=[0,0,0],S=a[0],C=a[1]-a[0];for(let e=0;e1?-1:t.lookupTable.getVectorComponent();t.colorCoordinates=function(e,t,n,r,o,a,i){const s=new Array(arguments.length);for(let e=0;e=y,x=o[2]<=1?2:3,S=ws.newInstance({numberOfComponents:x,values:new Float32Array(b*x)}),C=S.getData(),A=[0,0,0];Kl(A,r+2,o);let w=0,P=0;const I=[.5,.5,.5];for(let e=0;er&&(t=r+1),Kl(I,t,o)}else{I[1]=.49;const t=(e-f)*g;I[0]=t>1e3?1e3:t<-1e3?-1e3:t}for(let e=0;e{const n=e.getInputData(),r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!t.scalarVisibility||null==r)return!0;const o=e.getLookupTable();return!o||(o.build(),o.areScalarsOpaque(r,t.colorMode,-1))},e.canUseTextureMapForColoring=(e,n)=>!((!n||t.colorMode===Ul.DIRECT_SCALARS)&&(!t.interpolateScalarsBeforeMapping||t.lookupTable&&t.lookupTable.getIndexedLookup()||!e||t.colorMode===Ul.DEFAULT&&e.getDataType()===Hl.UNSIGNED_CHAR||t.colorMode===Ul.DIRECT_SCALARS)),e.clearColorArrays=()=>{t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=()=>(t.lookupTable||e.createDefaultLookupTable(),t.lookupTable),e.getMTime=()=>{let e=t.mtime;if(null!==t.lookupTable){const n=t.lookupTable.getMTime();e=n>e?n:e}return e},e.getPrimitiveCount=()=>{const t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getPolys().getNumberOfCells()}},e.acquireInvertibleLookupTable=jl("AcquireInvertibleLookupTable"),e.valueToColor=jl("ValueToColor"),e.colorToValue=jl("ColorToValue"),e.useInvertibleColorFor=jl("UseInvertibleColorFor"),e.clearInvertibleColor=jl("ClearInvertibleColor"),e.processSelectorPixelBuffers=(e,n)=>{if(!e||!t.selectionWebGLIdsToVTKIds||!t.populateSelectionSettings)return;const r=e.getRawPixelBuffer(Vl.ID_LOW24),o=e.getRawPixelBuffer(Vl.ID_HIGH24),a=e.getCurrentPass(),i=e.getFieldAssociation();let s=null;i===Nl.FIELD_ASSOCIATION_POINTS?s=t.selectionWebGLIdsToVTKIds.points:i===Nl.FIELD_ASSOCIATION_CELLS&&(s=t.selectionWebGLIdsToVTKIds.cells),s&&n.forEach((t=>{if(a===Vl.ID_LOW24){let n=0;o&&(n+=o[t],n*=256),n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n],i=e.getPixelBuffer(Vl.ID_LOW24);i[t]=255&a,i[t+1]=(65280&a)>>8,i[t+2]=(16711680&a)>>16}else if(a===Vl.ID_HIGH24&&o){let n=0;n+=o[t],n*=256,n+=r[t+2],n*=256,n+=r[t+1],n*=256,n+=r[t];const a=s[n];e.getPixelBuffer(Vl.ID_HIGH24)[t]=(4278190080&a)>>24}}))}}const Yl={colorMapColors:null,areScalarsMappedFromCells:!1,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,numberOfColorsInRange:0,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function Ql(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yl,n),Rs(e,t,n),Wt.get(e,t,["areScalarsMappedFromCells","colorCoordinates","colorMapColors","colorTextureMap","numberOfColorsInRange","selectionWebGLIdsToVTKIds"]),Wt.setGet(e,t,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","populateSelectionSettings","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","customShaderAttributes"]),Wt.setGetArray(e,t,["scalarRange"],2),Ll.implementCoincidentTopologyMethods(e,t),Xl(e,t)}var Zl={newInstance:Wt.newInstance(Ql,"vtkMapper"),extend:Ql,...Fl,...kl,...ll};function Jl(e){let t=0;return e.filter(((e,n)=>n===t&&(t+=e+1,!0)))}function ec(e){let t=0;for(let n=0;nvoid 0===t.numberOfCells||n?(t.cellSizes?t.numberOfCells=t.cellSizes.length:t.numberOfCells=ec(e.getData()),t.numberOfCells):t.numberOfCells,e.getCellSizes=n=>void 0===t.cellSizes||n?(t.cellSizes=Jl(e.getData()),t.cellSizes):t.cellSizes,e.resize=r=>{const o=e.getNumberOfTuples();n.resize(r);const a=e.getNumberOfTuples();a{n.setData(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=e=>{let n=e;const r=t.values[n++];return t.values.subarray(n,n+r)},e.insertNextCell=n=>{const r=e.getNumberOfCells();return e.insertNextTuples([n.length,...n]),++t.numberOfCells,null!=t.cellSizes&&t.cellSizes.push(n.length),r}}function rc(e){return{empty:!0,numberOfComponents:1,dataType:ds.UNSIGNED_INT,...e}}function oc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};ws.extend(e,t,rc(n)),nc(e,t)}var ac={newInstance:Wt.newInstance(oc,"vtkCellArray"),extend:oc,...tc};const{vtkErrorMacro:ic}=Wt,sc=[1,-1,1,-1,1,-1];function lc(e,t){t.classHierarchy.push("vtkPoints"),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;e.getNumberOfPoints()!==n&&(t.size=n*r,t.values=Wt.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;oe.insertNextTuple([t,n,r]),e.getBounds=()=>{if(3===e.getNumberOfComponents()){const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);t.bounds[2]=r[0],t.bounds[3]=r[1];const o=e.getRange(2);return t.bounds[4]=o[0],t.bounds[5]=o[1],t.bounds}if(2!==e.getNumberOfComponents())return ic(`getBounds called on an array with components of\n ${e.getNumberOfComponents()}`),sc;const n=e.getRange(0);t.bounds[0]=n[0],t.bounds[1]=n[1];const r=e.getRange(1);return t.bounds[2]=r[0],t.bounds[3]=r[1],t.bounds[4]=0,t.bounds[5]=0,t.bounds},e.computeBounds=e.getBounds,e.setNumberOfComponents(t.numberOfComponents<2?3:t.numberOfComponents)}const cc={empty:!0,numberOfComponents:3,dataType:ds.FLOAT,bounds:[1,-1,1,-1,1,-1]};function uc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cc,n),ws.extend(e,t,n),lc(e,t)}var dc={newInstance:Wt.newInstance(uc,"vtkPoints"),extend:uc};function pc(e,t){t.classHierarchy.push("vtkCell"),e.initialize=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(n){t.pointsIds=n;let r=t.points.getData();r.length!==3*t.pointsIds.length&&(r=Wt.newTypedArray(e.getDataType(),3*t.pointsIds.length));const o=e.getData();t.pointsIds.forEach(((e,t)=>{let n=3*e,a=3*t;r[a]=o[n],r[++a]=o[++n],r[++a]=o[++n]})),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(let n=e.getNumberOfPoints()-1;n>=0;--n)t.pointsIds[n]=n}},e.getBounds=()=>{const e=t.points.getNumberOfPoints(),n=[];if(e){t.points.getPoint(0,n),t.bounds[0]=n[0],t.bounds[1]=n[0],t.bounds[2]=n[1],t.bounds[3]=n[1],t.bounds[4]=n[2],t.bounds[5]=n[2];for(let r=1;rt.bounds[1]?n[0]:t.bounds[1],t.bounds[2]=n[1]t.bounds[3]?n[1]:t.bounds[3],t.bounds[4]=n[2]t.bounds[5]?n[2]:t.bounds[5]}else va(t.bounds);return t.bounds},e.getLength2=()=>{e.getBounds();let n=0,r=0;for(let e=0;e<3;e++)r=t.bounds[2*e+1]-t.bounds[2*e],n+=r*r;return n},e.getParametricDistance=e=>{let t,n=0;for(let r=0;r<3;r++)t=e[r]<0?-e[r]:e[r]>1?e[r]-1:0,t>n&&(n=t);return n},e.getNumberOfPoints=()=>t.points.getNumberOfPoints(),e.deepCopy=e=>{e.initialize(t.points,t.pointsIds)},e.getCellDimension=()=>{},e.intersectWithLine=(e,t,n,r,o,a,i)=>{},e.evaluatePosition=(e,t,n,r,o,a)=>{Wt.vtkErrorMacro("vtkCell.evaluatePosition is not implemented.")}}const fc={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function gc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fc,n),Wt.obj(e,t),t.points||(t.points=dc.newInstance()),Wt.get(e,t,["points","pointsIds"]),pc(e,t)}var mc={newInstance:Wt.newInstance(gc,"vtkCell"),extend:gc};function hc(e,t){t.classHierarchy.push("vtkCellLinks"),e.buildLinks=n=>{const r=n.getPoints().getNumberOfPoints(),o=n.getNumberOfCells(),a=new Uint32Array(r);if(n.isA("vtkPolyData")){for(let t=0;t{e.incrementLinkCount(t)}))}e.allocateLinks(r),t.maxId=r-1;for(let t=0;t{e.insertCellReference(n,a[n]++,t)}))}}else{for(let t=0;t{e.incrementLinkCount(t)}));e.allocateLinks(r),t.maxId=r-1;for(let t=0;t{e.insertCellReference(n,a[n]++,t)}))}},e.allocate=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.array=Array(e).fill().map((()=>({ncells:0,cells:null}))),t.extend=n,t.maxId=-1},e.initialize=()=>{t.array=null},e.getLink=e=>t.array[e],e.getNcells=e=>t.array[e].ncells,e.getCells=e=>t.array[e].cells,e.insertNextPoint=e=>{t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=(e,n)=>{t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=e=>{t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=(e,n)=>{t.array[n].cells=t.array[n].cells.filter((t=>t!==e)),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=(e,n)=>{t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=(e,n)=>{t.array[e].cells.length=n},e.squeeze=()=>{!function(e,t){let n=t;for(t>=e.array.length&&(n+=e.array.length);n>e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=()=>{t.maxId=-1},e.deepCopy=e=>{t.array=[...e.array],t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=e=>{++t.array[e].ncells},e.allocateLinks=e=>{for(let n=0;n{t.array[e].cells[n]=r}}const vc={array:null,maxId:0,extend:0};function bc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vc,n),Wt.obj(e,t),hc(e,t)}var yc={newInstance:Wt.newInstance(bc,"vtkCellLinks"),extend:bc};const Tc=0,xc=1,Sc=2,Cc=3,Ac=4,wc=5,Pc=6,Ic=7,Oc=9,Ec=21,Mc=41,Rc=42,Dc=["vtkEmptyCell","vtkVertex","vtkPolyVertex","vtkLine","vtkPolyLine","vtkTriangle","vtkTriangleStrip","vtkPolygon","vtkPixel","vtkQuad","vtkTetra","vtkVoxel","vtkHexahedron","vtkWedge","vtkPyramid","vtkPentagonalPrism","vtkHexagonalPrism","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkQuadraticEdge","vtkQuadraticTriangle","vtkQuadraticQuad","vtkQuadraticTetra","vtkQuadraticHexahedron","vtkQuadraticWedge","vtkQuadraticPyramid","vtkBiQuadraticQuad","vtkTriQuadraticHexahedron","vtkQuadraticLinearQuad","vtkQuadraticLinearWedge","vtkBiQuadraticQuadraticWedge","vtkBiQuadraticQuadraticHexahedron","vtkBiQuadraticTriangle","vtkCubicLine","vtkQuadraticPolygon","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkConvexPointSet","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkParametricCurve","vtkParametricSurface","vtkParametricTriSurface","vtkParametricQuadSurface","vtkParametricTetraRegion","vtkParametricHexRegion","UnknownClass","UnknownClass","UnknownClass","vtkHigherOrderEdge","vtkHigherOrderTriangle","vtkHigherOrderQuad","vtkHigherOrderPolygon","vtkHigherOrderTetrahedron","vtkHigherOrderWedge","vtkHigherOrderPyramid","vtkHigherOrderHexahedron"],Bc={getClassNameFromTypeId:function(e){return e0&&void 0!==arguments[0]?arguments[0]:512,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.size=e>0?e:1,t.extend=n>0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=(e,n,r)=>{t.typeArray[e]=n,t.locationArray[e]=r,e>t.maxId&&(t.maxId=e)},e.insertNextCell=(n,r)=>(e.insertCell(++t.maxId,n,r),t.maxId),e.setCellTypes=(e,n,r)=>{t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=e=>t.locationArray[e],e.deleteCell=e=>{t.typeArray[e]=Tc},e.getNumberOfTypes=()=>t.maxId+1,e.isType=t=>{const n=e.getNumberOfTypes();for(let r=0;re.insertNextCell(t,-1),e.getCellType=e=>t.typeArray[e],e.reset=()=>{t.maxId=-1},e.deepCopy=n=>{e.allocate(n.getSize(),n.getExtend()),t.typeArray.set(n.getTypeArray()),t.locationArray.set(n.getLocationArray()),t.maxId=n.getMaxId()}}const Vc={size:0,maxId:-1,extend:1e3};function _c(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vc,n),Wt.obj(e,t),Wt.get(e,t,["size","maxId","extend"]),Wt.getArray(e,t,["typeArray","locationArray"]),Lc(e,t)}var Nc={newInstance:Wt.newInstance(_c,"vtkCellTypes"),extend:_c,...Bc},Fc={IntersectionState:{NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2}};const{IntersectionState:kc}=Fc;function Uc(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;const o={t:Number.MIN_VALUE,distance:0},a=[];let i;a[0]=n[0]-t[0],a[1]=n[1]-t[1],a[2]=n[2]-t[2];const s=a[0]*(e[0]-t[0])+a[1]*(e[1]-t[1])+a[2]*(e[2]-t[2]),l=Fo(a,a);let c=1e-5*s;return 0!==l&&(o.t=s/l),c<0&&(c=-c),-c1?i=n:(i=a,a[0]=t[0]+o.t*a[0],a[1]=t[1]+o.t*a[1],a[2]=t[2]+o.t*a[2]),r&&(r[0]=i[0],r[1]=i[1],r[2]=i[2]),o.distance=Wo(i,e),o}function Gc(e,t,n,r,o,a){const i=[],s=[],l=[];o[0]=0,a[0]=0,Lo(t,e,i),Lo(r,n,s),Lo(n,e,l);const c=[Fo(i,i),-Fo(i,s),-Fo(i,s),Fo(s,s)],u=[];if(u[0]=Fo(i,l),u[1]=-Fo(s,l),0===ca(c,u,2)){let i=Number.MAX_VALUE;const s=[e,t,n,r],l=[n,n,e,e],c=[r,r,t,t];let u;a[0],a[0],o[0],o[0],o[0],o[0],a[0],a[0];for(let e=0;e<4;e++)u=Uc(s[e],l[e],c[e]),u.distance=0&&o[0]<=1&&a[0]>=0&&a[0]<=1?kc.YES_INTERSECTION:kc.NO_INTERSECTION}const zc={distanceToLine:Uc,intersection:Gc};function Wc(e,t){t.classHierarchy.push("vtkLine"),e.getCellDimension=()=>1,e.intersectWithLine=(e,n,r,o,a)=>{const i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};a[1]=0,a[2]=0;const s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);const u=[],d=[],p=Gc(e,n,l,c,u,d);var f;if(i.t=u[0],i.betweenPoints=(f=i.t)>=0&&f<=1,a[0]=d[0],p===kc.YES_INTERSECTION){for(let t=0;t<3;t++)o[t]=l[t]+a[0]*(c[t]-l[t]),s[t]=e[t]+i.t*(n[t]-e[t]);if(Wo(o,s)<=r*r)return i.intersect=1,i}else{let t;if(i.t<0)return t=Uc(e,l,c,o),t.distance<=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t>1)return t=Uc(n,l,c,o),t.distance<=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(a[0]<0)return a[0]=0,t=Uc(l,e,n,o),i.t=t.t,t.distance<=r*r?(i.intersect=1,i):i;if(a[0]>1)return a[0]=1,t=Uc(c,e,n,o),i.t=t.t,t.distance<=r*r?(i.intersect=1,i):i}return i},e.evaluateLocation=(e,n,r)=>{const o=[],a=[];t.points.getPoint(0,o),t.points.getPoint(1,a);for(let t=0;t<3;t++)n[t]=o[t]+e[0]*(a[t]-o[t]);r[0]=1-e[0],r[1]=e[0]},e.evaluateOrientation=(e,n,r)=>!!t.orientations&&(_i(n,t.orientations[0],t.orientations[1],e[0]),r[0]=1-e[0],r[1]=e[0],!0)}const Hc={orientations:null};function jc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hc,n),mc.extend(e,t,n),Wt.setGet(e,t,["orientations"]),Wc(e,t)}var $c={newInstance:Wt.newInstance(jc,"vtkLine"),extend:jc,...zc,...Fc};function Kc(e,t){t.classHierarchy.push("vtkPointSet"),t.points?t.points=Ge(t.points):t.points=dc.newInstance(),e.getNumberOfPoints=()=>t.points.getNumberOfPoints(),e.getBounds=()=>t.points.getBounds(),e.computeBounds=()=>{e.getBounds()};const n=e.shallowCopy;e.shallowCopy=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),t.points=dc.newInstance(),t.points.shallowCopy(e.getPoints())}}const qc={};function Xc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qc,n),Ys.extend(e,t,n),Wt.setGet(e,t,["points"]),Kc(e,t)}var Yc={newInstance:Wt.newInstance(Xc,"vtkPointSet"),extend:Xc};function Qc(e,t,n,r){const o=n[0]-t[0],a=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=a*c-i*l,r[1]=i*s-o*c,r[2]=o*l-a*s}function Zc(e,t,n,r){Qc(e,t,n,r);const o=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==o&&(r[0]/=o,r[1]/=o,r[2]/=o)}const Jc={computeNormalDirection:Qc,computeNormal:Zc,intersectWithTriangle:function(e,t,n,r,o,a){let i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1e-6,s=!1;const l=[],c=[],u=[],d=[],p=[];Zc(e,t,n,d),Zc(r,o,a,p);const f=-Fo(d,e),g=-Fo(p,r),m=[Fo(p,e)+g,Fo(p,t)+g,Fo(p,n)+g];if(m[0]*m[1]>i&&m[0]*m[2]>i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const h=[Fo(d,r)+f,Fo(d,o)+f,Fo(d,a)+f];if(h[0]*h[1]>i&&h[0]*h[2]>i)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Math.abs(d[0]-p[0])<1e-9&&Math.abs(d[1]-p[1])<1e-9&&Math.abs(d[2]-p[2])<1e-9&&Math.abs(f-g)<1e-9)return s=!0,{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};const v=[e,t,n],b=[r,o,a],y=Fo(d,p),T=(f-g*y)/(y*y-1),x=(g-f*y)/(y*y-1),S=[T*d[0]+x*p[0],T*d[1]+x*p[1],T*d[2]+x*p[2]],C=ko(d,p,[]);Go(C);let A=0,w=0;const P=[],I=[];let O,E,M=50,R=50;for(let t=0;t<3;t++){const n=t,o=(t+1)%3,a=Ka.intersectWithLine(v[n],v[o],r,p);a.intersection&&a.t>0-i&&a.t<1+i&&(a.t<1+i&&a.t>1-i&&(M=A),P[A++]=Fo(a.x,C)-Fo(S,C));const s=Ka.intersectWithLine(b[n],b[o],e,d);s.intersection&&s.t>0-i&&s.t<1+i&&(s.t<1+i&&s.t>1-i&&(R=w),I[w++]=Fo(s.x,C)-Fo(S,C))}if(A>2){A--;const e=P[2];P[2]=P[M],P[M]=e}if(w>2){w--;const e=I[2];I[2]=I[R],I[R]=e}if(2!==A||2!==w)return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(Number.isNaN(P[0])||Number.isNaN(P[1])||Number.isNaN(I[0])||Number.isNaN(I[1]))return{intersect:!1,coplanar:s,pt1:l,pt2:c,surfaceId:u};if(P[0]>P[1]){const e=P[1];P[1]=P[0],P[0]=e}if(I[0]>I[1]){const e=I[1];I[1]=I[0],I[0]=e}return P[1]2,e.intersectWithLine=(n,r,o,a,i)=>{const s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;const l=[],c=o*o,u=[],d=[],p=[];t.points.getPoint(0,u),t.points.getPoint(1,d),t.points.getPoint(2,p);const f=[],g=[];if(Zc(u,d,p,f),0!==f[0]||0!==f[1]||0!==f[2]){const t=Ka.intersectWithLine(n,r,u,f);if(s.betweenPoints=t.betweenPoints,s.t=t.t,a[0]=t.x[0],a[1]=t.x[1],a[2]=t.x[2],!t.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;const o=e.evaluatePosition(a,l,i,g);if(o.evaluation>=0)return o.dist2<=c?(s.intersect=1,s):(s.intersect=o.evaluation,s)}const m=Wo(u,d),h=Wo(d,p),v=Wo(p,u);t.line||(t.line=$c.newInstance()),m>h&&m>v?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):h>v&&h>m?(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,p)):(t.line.getPoints().setPoint(0,p),t.line.getPoints().setPoint(1,u));const b=t.line.intersectWithLine(n,r,o,a,i);if(s.betweenPoints=b.betweenPoints,s.t=b.t,b.intersect){const e=[],t=[],n=[];for(let r=0;r<3;r++)e[r]=u[r]-p[r],t[r]=d[r]-p[r],n[r]=a[r]-p[r];return i[0]=Fo(n,e)/v,i[1]=Fo(n,t)/h,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=(e,n,r,o)=>{const a={subId:0,dist2:0,evaluation:-1};let i,s;const l=[],c=[],u=[],d=[];let p;const f=[],g=[],m=[];let h=0,v=0;const b=[];let y,T,x,S=[];const C=[],A=[],w=[];a.subId=0,r[2]=0,t.points.getPoint(1,l),t.points.getPoint(2,c),t.points.getPoint(0,u),Qc(l,c,u,d),Ka.generalizedProjectPoint(e,l,d,w);let P=0;for(i=0;i<3;i++)p=d[i]<0?-d[i]:d[i],p>P&&(P=p,v=i);for(s=0,i=0;i<3;i++)i!==v&&(b[s++]=i);for(i=0;i<2;i++)f[i]=w[b[i]]-u[b[i]],g[i]=l[b[i]]-u[b[i]],m[i]=c[b[i]]-u[b[i]];if(h=$o(g,m),0===h)return r[0]=0,r[1]=0,a.evaluation=-1,a;if(r[0]=$o(f,m)/h,r[1]=$o(g,f)/h,o[0]=1-(r[0]+r[1]),o[1]=r[0],o[2]=r[1],o[0]>=0&&o[0]<=1&&o[1]>=0&&o[1]<=1&&o[2]>=0&&o[2]<=1)n&&(a.dist2=Wo(w,e),n[0]=w[0],n[1]=w[1],n[2]=w[2]),a.evaluation=1;else{let t;if(n)if(o[1]<0&&o[2]<0)for(y=Wo(e,u),T=$c.distanceToLine(e,l,u,t,C),x=$c.distanceToLine(e,u,c,t,A),y{const o=[],a=[],i=[];t.points.getPoint(0,o),t.points.getPoint(1,a),t.points.getPoint(2,i);const s=1-e[0]-e[1];for(let t=0;t<3;t++)n[t]=o[t]*s+a[t]*e[0]+i[t]*e[1];r[0]=s,r[1]=e[0],r[2]=e[1]},e.getParametricDistance=e=>{let t,n=0;const r=[];r[0]=e[0],r[1]=e[1],r[2]=1-e[0]-e[1];for(let e=0;e<3;e++)t=r[e]<0?-r[e]:r[e]>1?r[e]-1:0,t>n&&(n=t);return n}}const tu={};function nu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tu,n),mc.extend(e,t,n),eu(e,t)}var ru={newInstance:Wt.newInstance(nu,"vtkTriangle"),extend:nu,...Jc};const ou=["verts","lines","polys","strips"],{vtkWarningMacro:au}=Wt,iu={[Cc]:$c,[Ac]:$c,[wc]:ru};function su(e,t){t.classHierarchy.push("vtkPolyData"),ou.forEach((n=>{e[`getNumberOf${function(e){return e.replace(/(?:^\w|[A-Z]|\b\w)/g,(e=>e.toUpperCase())).replace(/\s+/g,"")}(n)}`]=()=>t[n].getNumberOfCells(),t[n]?t[n]=Ge(t[n]):t[n]=ac.newInstance()})),e.getNumberOfCells=()=>ou.reduce(((e,n)=>e+t[n].getNumberOfCells()),0);const n=e.shallowCopy;e.shallowCopy=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),ou.forEach((n=>{t[n]=ac.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))}))},e.buildCells=()=>{const n=e.getNumberOfVerts(),r=e.getNumberOfLines(),o=e.getNumberOfPolys(),a=e.getNumberOfStrips(),i=n+r+o+a,s=new Uint8Array(i);let l=s;const c=new Uint32Array(i);let u=c;if(n){let e=0;t.verts.getCellSizes().forEach(((t,n)=>{u[n]=e,l[n]=t>1?Sc:xc,e+=t+1})),u=u.subarray(n),l=l.subarray(n)}if(r){let e=0;t.lines.getCellSizes().forEach(((t,n)=>{u[n]=e,l[n]=t>2?Ac:Cc,1===t&&au("Building VTK_LINE ",n," with only one point, but VTK_LINE needs at least two points. Check the input."),e+=t+1})),u=u.subarray(r),l=l.subarray(r)}if(o){let e=0;t.polys.getCellSizes().forEach(((t,n)=>{switch(u[n]=e,t){case 3:l[n]=wc;break;case 4:l[n]=Oc;break;default:l[n]=Ic}t<3&&au("Building VTK_TRIANGLE ",n," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),e+=t+1})),u+=u.subarray(o),l+=l.subarray(o)}if(a){let e=0;l.fill(Pc,0,a),t.strips.getCellSizes().forEach(((t,n)=>{u[n]=e,e+=t+1}))}t.cells=Nc.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;void 0===t.cells&&e.buildCells(),t.links=yc.newInstance(),n>0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellType=e=>t.cells.getCellType(e),e.getCellPoints=n=>{const r=e.getCellType(n);let o=null;switch(r){case xc:case Sc:o=t.verts;break;case Cc:case Ac:o=t.lines;break;case wc:case Oc:case Ic:o=t.polys;break;case Pc:o=t.strips;break;default:return o=null,{type:0,cellPointIds:null}}const a=t.cells.getCellLocation(n);return{cellType:r,cellPointIds:o.getCell(a)}},e.getPointCells=e=>t.links.getCells(e),e.getCellEdgeNeighbors=(e,n,r)=>{const o=t.links.getLink(n),a=t.links.getLink(r);return o.cells.filter((t=>t!==e&&-1!==a.cells.indexOf(t)))},e.getCell=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const r=e.getCellPoints(t),o=n||iu[r.cellType].newInstance();return o.initialize(e.getPoints(),r.cellPointIds),o}}const lu={};function cu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lu,n),Yc.extend(e,t,n),Wt.get(e,t,["cells","links"]),Wt.setGet(e,t,["verts","lines","polys","strips"]),su(e,t)}var uu={newInstance:Wt.newInstance(cu,"vtkPolyData"),extend:cu};function du(e,t){t.classHierarchy.push("vtkTexture"),e.imageLoaded=()=>{t.image.removeEventListener("load",e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setJsImageData=n=>{t.jsImageData!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null),t.image=null,t.canvas=null),t.jsImageData=n,t.imageLoaded=!0,e.modified())},e.setCanvas=n=>{t.canvas!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null),t.image=null,t.jsImageData=null),t.canvas=n,e.modified())},e.setImage=n=>{t.image!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null),t.canvas=null,t.jsImageData=null),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener("load",e.imageLoaded),e.modified())},e.getDimensionality=()=>{let n=0,r=0,o=1;if(e.getInputData()){const t=e.getInputData();n=t.getDimensions()[0],r=t.getDimensions()[1],o=t.getDimensions()[2]}return t.jsImageData&&(n=t.jsImageData.width,r=t.jsImageData.height),t.canvas&&(n=t.canvas.width,r=t.canvas.height),t.image&&(n=t.image.width,r=t.image.height),(n>1)+(r>1)+(o>1)},e.getInputAsJsImageData=()=>{if(!t.imageLoaded||e.getInputData())return null;if(t.jsImageData)return t.jsImageData();if(t.canvas)return t.canvas.getContext("2d").getImageData(0,0,t.canvas.width,t.canvas.height);if(t.image){const e=document.createElement("canvas");e.width=t.image.width,e.height=t.image.height;const n=e.getContext("2d");return n.translate(0,e.height),n.scale(1,-1),n.drawImage(t.image,0,0,t.image.width,t.image.height),n.getImageData(0,0,e.width,e.height)}return null}}const pu={image:null,canvas:null,jsImageData:null,imageLoaded:!1,repeat:!1,interpolate:!1,edgeClamp:!1,mipLevel:0,resizable:!1};function fu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pu,n),Wt.obj(e,t),Wt.algo(e,t,6,0),Wt.get(e,t,["canvas","image","jsImageData","imageLoaded","resizable"]),Wt.setGet(e,t,["repeat","edgeClamp","interpolate","mipLevel"]),du(e,t)}const gu={generateMipmaps:(e,t,n,r)=>{const o=[1,2,1],a=e.length/(t*n);let i=t,s=n,l=e;const c=[l];for(let e=0;ea&&(u+=t),d<-a&&(u-=t),r[u]?c+=r[u]*o[l]:s-=o[l],i+=1}l[e+n]=c/s}r=[...l];for(let e=0;e{t.renderable!==n&&(t.renderable=n,t.tmActor.addTexture(t.renderable.getTmTexture()),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),e.modified())},e.createPolyDataForOneLabel=(e,n,r,o,a,i,s)=>{const l=t.renderable.get_tmAtlas().get(e);if(!l)return;const c=t.renderable.getTextPolyData().getPoints().getData(),u=t.lastSize;xu[0]=c[3*n],xu[1]=c[3*n+1],xu[2]=c[3*n+2],In(Cu,xu,r),Cu[0]+=.1,In(Su,Cu,o),An(wu,Su,xu),Cu[0]-=.1,Cu[1]+=.1,In(Su,Cu,o),An(Pu,Su,xu);for(let e=0;e<3;e++)wu[e]/=.05*u[0],Pu[e]/=.05*u[1];let d=s.ptIdx,p=s.cellIdx;xu[0]=c[3*n],xu[1]=c[3*n+1],xu[2]=c[3*n+2],a[0]<-.5?wn(Cu,wu,a[0]*i-l.width):a[0]>.5?wn(Cu,wu,a[0]*i):wn(Cu,wu,a[0]*i-l.width/2),Cn(xu,xu,Cu),wn(Cu,Pu,a[1]*i-l.height/2),Cn(xu,xu,Cu),s.points[3*d]=xu[0],s.points[3*d+1]=xu[1],s.points[3*d+2]=xu[2],s.tcoords[2*d]=l.tcoords[0],s.tcoords[2*d+1]=l.tcoords[1],d++,wn(Cu,wu,l.width),Cn(xu,xu,Cu),s.points[3*d]=xu[0],s.points[3*d+1]=xu[1],s.points[3*d+2]=xu[2],s.tcoords[2*d]=l.tcoords[2],s.tcoords[2*d+1]=l.tcoords[3],d++,wn(Cu,Pu,l.height),Cn(xu,xu,Cu),s.points[3*d]=xu[0],s.points[3*d+1]=xu[1],s.points[3*d+2]=xu[2],s.tcoords[2*d]=l.tcoords[4],s.tcoords[2*d+1]=l.tcoords[5],d++,wn(Cu,wu,l.width),An(xu,xu,Cu),s.points[3*d]=xu[0],s.points[3*d+1]=xu[1],s.points[3*d+2]=xu[2],s.tcoords[2*d]=l.tcoords[6],s.tcoords[2*d+1]=l.tcoords[7],d++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-3,s.polys[4*p+3]=d-2,p++,s.polys[4*p]=3,s.polys[4*p+1]=d-4,s.polys[4*p+2]=d-2,s.polys[4*p+3]=d-1,s.ptIdx+=4,s.cellIdx+=2},e.updateTexturePolyData=()=>{const n=t.camera.getCompositeProjectionMatrix(t.lastAspectRatio,-1,1);f(n,n);const r=t.renderable.getTextValues().length,o=4*r,a=2*r,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o);g(Iu,n);const c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l};let u=0,d=0,p=0;const m=t.renderable.getTextPolyData().getPoints().getData(),h=t.renderable.getTextValues();for(;u{t.lastSize[0]===n[0]&&t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0),t.camera=r,e.updateTexturePolyData()}}const Ru=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{renderable:null};Object.assign(t,{},n),Wt.obj(e,t),t.tmPolyData=uu.newInstance(),t.tmMapper=Zl.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmActor=cs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),Wt.setGet(e,t,["renderable"]),Wt.get(e,t,["lastSize","lastAspectRatio","axisTextStyle","tickTextStyle","tmActor","ticks"]),t.forceUpdate=!1,t.lastRedrawTime={},Wt.obj(t.lastRedrawTime,{mtime:0}),t.lastRebuildTime={},Wt.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.lastTickBounds=[],Mu(e,t)}),"vtkCubeAxesActorHelper");function Du(e,t){t.classHierarchy.push("vtkCubeAxesActor"),e.setCamera=n=>{t.camera!==n&&(t.cameraModifiedSub&&(t.cameraModifiedSub.unsubscribe(),t.cameraModifiedSub=null),t.camera=n,n&&(t.cameraModifiedSub=n.onModified(e.update)),e.update(),e.modified())},e.computeFacesToDraw=()=>{const e=t.camera.getViewMatrix();f(e,e);let n=!1;const r=Mi.getDiagonalLength(t.dataBounds),o=Math.sin(t.faceVisibilityAngle*Math.PI/180);for(let s=0;s<6;s++){let l=!1;const c=Math.floor(s/2),u=(c+1)%3,d=(c+2)%3;t.dataBounds[2*u]!==t.dataBounds[2*u+1]&&t.dataBounds[2*d]!==t.dataBounds[2*d+1]&&(xu[c]=t.dataBounds[s]-.1*r*hu[s][c],xu[u]=.5*(t.dataBounds[2*u]+t.dataBounds[2*u+1]),xu[d]=.5*(t.dataBounds[2*d]+t.dataBounds[2*d+1]),In(Cu,xu,e),xu[c]=t.dataBounds[s],In(Au,xu,e),An(Cu,Au,Cu),Pn(Cu,Cu),l=Cu[2]>o,t.camera.getParallelProjection()||(Pn(Au,Au),i=Cu,l=(a=Au)[0]*i[0]+a[1]*i[1]+a[2]*i[2]>o)),l!==t.lastFacesToDraw[s]&&(t.lastFacesToDraw[s]=l,n=!0)}var a,i;return n},e.updatePolyData=(e,n,r)=>{let o=0,a=0;o+=8;let i=0;for(let e=0;e<12;e++)n[e]>0&&i++;if(a+=i,t.gridLines)for(let t=0;t<6;t++)e[t]&&(o+=2*r[Tu[t][0]].length+2*r[Tu[t][1]].length,a+=r[Tu[t][0]].length+r[Tu[t][1]].length);const s=new Float64Array(3*o),l=new Uint32Array(3*a);let c=0,u=0;for(let e=0;e<2;e++)for(let n=0;n<2;n++)for(let r=0;r<2;r++)s[3*c]=t.dataBounds[r],s[3*c+1]=t.dataBounds[2+n],s[3*c+2]=t.dataBounds[4+e],c++;for(let e=0;e<12;e++)n[e]>0&&(l[3*u]=2,l[3*u+1]=bu[e][0],l[3*u+2]=bu[e][1],u++);if(t.gridLines)for(let n=0;n<6;n++)if(e[n]){const e=Math.floor(n/2);let o=r[Tu[n][0]];for(let r=0;r{let a=0;for(let e=0;e<12;e++)1===n[e]&&(a+=2,a+=r[yu[e]].length);const i=t.polyData.getPoints().getData(),s=new Float64Array(3*a);let l=0,c=0,u=0;for(let a=0;a<6;a++)if(e[a])for(let e=0;e<4;e++){const d=vu[a][e];if(1===n[d]){const e=yu[d],n=3*bu[d][0],p=3*bu[d][1];s[3*l]=.5*(i[n]+i[p]),s[3*l+1]=.5*(i[n+1]+i[p+1]),s[3*l+2]=.5*(i[n+2]+i[p+2]),l++,s[3*l+Math.floor(a/2)]=t.dataBounds[a],s[3*l+Tu[a][0]]=.5*(t.dataBounds[2*Tu[a][0]]+t.dataBounds[2*Tu[a][0]+1]),s[3*l+Tu[a][1]]=.5*(t.dataBounds[2*Tu[a][1]]+t.dataBounds[2*Tu[a][1]+1]),l++,t.textValues[c]=t.axisLabels[e],c++;const f=(e+1)%3,g=(e+2)%3,m=r[e],h=o[e];t.tickCounts[u]=m.length;for(let r=0;r{if(!t.camera)return;const n=e.computeFacesToDraw(),r=t.lastFacesToDraw;let o=!1;for(let e=0;e<6;e++)t.dataBounds[e]!==t.lastTickBounds[e]&&(o=!0,t.lastTickBounds[e]=t.dataBounds[e]);if(n||o||t.forceUpdate){const n=new Array(12).fill(0);for(let e=0;e<6;e++)if(r[e])for(let t=0;t<4;t++)n[vu[e][t]]++;const a=t.generateTicks(t.dataBounds);e.updatePolyData(r,n,a.ticks),e.updateTextData(r,n,a.ticks,a.tickStrings),(o||t.forceUpdate)&&e.updateTextureAtlas(a.tickStrings)}t.forceUpdate=!1},e.updateTextureAtlas=e=>{t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t._tmAtlas.clear();let n=0,r=1;for(let o=0;o<3;o++){if(!t._tmAtlas.has(t.axisLabels[o])){Ou(t.tmContext,t.axisTextStyle);const e=t.tmContext.measureText(t.axisLabels[o]),a={height:e.actualBoundingBoxAscent+2,startingHeight:r,width:e.width+2,textStyle:t.axisTextStyle};t._tmAtlas.set(t.axisLabels[o],a),r+=a.height,n{e.tcoords=[0,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight-e.height)/r,e.width/n,(r-e.startingHeight)/r,0,(r-e.startingHeight)/r]})),t.tmCanvas.width=n,t.tmCanvas.height=r,t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t.tmContext.clearRect(0,0,n,r),t._tmAtlas.forEach(((e,n)=>{Ou(t.tmContext,e.textStyle),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified()},e.onModified((()=>{t.forceUpdate=!0,e.update()})),e.setTickTextStyle=n=>{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=>{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.get_tmAtlas=()=>t._tmAtlas,e.getBounds=()=>(e.update(),Mi.setBounds(t.bounds,t.gridActor.getBounds()),Mi.scaleAboutCenter(t.bounds,t.boundsScaleFactor,t.boundsScaleFactor,t.boundsScaleFactor),t.bounds);const n=Wt.chain(e.setProperty,t.gridActor.setProperty);e.setProperty=e=>n(e)[0]}function Bu(e,t,n){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Mi.INIT_BOUNDS],faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,tickLabelPixelOffset:12,generateTicks:Eu,...n,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif",...n?.axisTextStyle},tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif",...n?.tickTextStyle}}}function Lu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};cs.extend(e,t,Bu(0,0,n)),t.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],t.axisLabels=["X-Axis","Y-Axis","Z-Axis"],t.tickCounts=[],t.textValues=[],t.lastTickBounds=[],t.tmCanvas=document.createElement("canvas"),t.tmContext=t.tmCanvas.getContext("2d"),t._tmAtlas=new Map,t.tmTexture=mu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),t.gridMapper=Zl.newInstance(),t.polyData=uu.newInstance(),t.gridMapper.setInputData(t.polyData),t.gridActor=cs.newInstance(),t.gridActor.setMapper(t.gridMapper),t.gridActor.setProperty(e.getProperty()),t.gridActor.setParentProp(e),t.textPolyData=uu.newInstance(),Wt.setGet(e,t,["axisTitlePixelOffset","boundsScaleFactor","faceVisibilityAngle","gridLines","tickLabelPixelOffset","generateTicks"]),Wt.setGetArray(e,t,["dataBounds"],6),Wt.setGetArray(e,t,["axisLabels"],3),Wt.get(e,t,["axisTextStyle","tickTextStyle","camera","tmTexture","textValues","textPolyData","tickCounts","gridActor"]),Du(e,t)}var Vu={newInstance:Wt.newInstance(Lu,"vtkCubeAxesActor"),extend:Lu,newCubeAxesActorHelper:Ru,defaultGenerateTicks:Eu};function _u(e,t){t.classHierarchy.push("vtkOpenGLCubeAxesActor"),e.buildPass=n=>{n&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=>{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}const Nu={};const Fu=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Nu,n),Xt.extend(e,t,n),t.CubeAxesActorHelper=Vu.newCubeAxesActorHelper(),_u(e,t)}),"vtkOpenGLCubeAxesActor");tn("vtkCubeAxesActor",Fu);const ku={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2};var Uu={ObjectType:ku};const{ObjectType:Gu}=Uu;function zu(e,t){function n(e){switch(e){case Gu.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case Gu.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in t.context)return t.context.TEXTURE_BUFFER;case Gu.ARRAY_BUFFER:default:return t.context.ARRAY_BUFFER}}t.classHierarchy.push("vtkOpenGLBufferObject");let r=null,o=null,a=!0,i="";e.getType=()=>r,e.setType=e=>{r=e},e.getHandle=()=>o,e.isReady=()=>!1===a,e.generateBuffer=e=>{const a=n(e);return null===o&&(o=t.context.createBuffer(),r=e),n(r)===a},e.upload=(s,l)=>e.generateBuffer(l)?(t.context.bindBuffer(n(r),o),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),t.allocatedGPUMemoryInBytes=s.length*s.BYTES_PER_ELEMENT,a=!1,!0):(i="Trying to upload array buffer to incompatible buffer.",!1),e.bind=()=>!!o&&(t.context.bindBuffer(n(r),o),!0),e.release=()=>!!o&&(t.context.bindBuffer(n(r),null),!0),e.releaseGraphicsResources=()=>{null!==o&&(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(o),o=null,t.allocatedGPUMemoryInBytes=0)},e.setOpenGLRenderWindow=n=>{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))},e.getError=()=>i}const Wu={objectType:Gu.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function Hu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wu,n),Wt.obj(e,t),Wt.get(e,t,["_openGLRenderWindow","allocatedGPUMemoryInBytes"]),Wt.moveToProtected(e,t,["openGLRenderWindow"]),zu(e,t)}var ju={newInstance:Wt.newInstance(Hu),extend:Hu,...Uu};const{vtkErrorMacro:$u}=Wt;function Ku(e,t){t.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),e.setType(ku.ARRAY_BUFFER),e.createVBO=function(n,r,o,a){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];const s=a.points.getData();let l=null,c=null,u=null;const d=a.colors?a.colors.getNumberOfComponents():0,p=a.tcoords?a.tcoords.getNumberOfComponents():0;a.normals&&(t.normalOffset=4*t.blockSize,t.blockSize+=3,l=a.normals.getData()),a.customAttributes&&a.customAttributes.forEach((e=>{e&&(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())})),a.tcoords&&(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=p,t.blockSize+=p,c=a.tcoords.getData()),a.colors?(t.colorComponents=a.colors.getNumberOfComponents(),t.colorOffset=0,u=a.colors.getData(),t.colorBO||(t.colorBO=ju.newInstance()),t.colorBO.setOpenGLRenderWindow(t._openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;let f,g=0,m=0,h=0,v=0,b=0,y=0;const T={anythingToPoints(e,t,n,r){for(let o=0;o2)for(let o=0;o2){for(let o=0;oe,linesToWireframe:(e,t)=>e>1?2*(e-1):0,polysToWireframe:(e,t)=>e>2?2*e:0,stripsToWireframe:(e,t)=>e>2?4*e-6:0,polysToSurface:(e,t)=>e>2?3*(e-2):0,stripsToSurface:(e,t,n)=>e>2?3*(e-2):0};let S=null,C=null;o===Yi.POINTS||"verts"===r?(S=T.anythingToPoints,C=x.anythingToPoints):o===Yi.WIREFRAME||"lines"===r?(S=T[`${r}ToWireframe`],C=x[`${r}ToWireframe`]):(S=T[`${r}ToSurface`],C=x[`${r}ToSurface`]);const A=n.getData(),w=A.length;let P=0;for(let e=0;e0&&(Math.abs(D)/R>1e6||Math.abs(Math.log10(R))>3||0===R&&D>1e6);if(B){const t=new Float64Array(3),n=new Float64Array(3);for(let e=0;e<3;++e){const r=a.points.getRange(e),o=r[1]-r[0];t[e]=.5*(r[1]+r[0]),n[e]=o>0?1/o:1}e.setCoordShiftAndScale(t,n)}else!0===t.coordShiftAndScaleEnabled&&e.setCoordShiftAndScale(null,null);if(i)if(i.points||i.cells){const e=new Int32Array(P+i.points.length);e.set(i.points),i.points=e;const t=new Int32Array(P+i.cells.length);t.set(i.cells),i.cells=t}else i.points=new Int32Array(P),i.cells=new Int32Array(P);let L=a.vertexOffset;f=function(e,n){if(i&&(i.points[L]=e,i.cells[L]=y+a.cellOffset),++L,g=3*e,t.coordShiftAndScaleEnabled?(O[E++]=(s[g++]-t.coordShift[0])*t.coordScale[0],O[E++]=(s[g++]-t.coordShift[1])*t.coordScale[1],O[E++]=(s[g++]-t.coordShift[2])*t.coordScale[2]):(O[E++]=s[g++],O[E++]=s[g++],O[E++]=s[g++]),null!==l&&(m=a.haveCellNormals?3*(y+a.cellOffset):3*e,O[E++]=l[m++],O[E++]=l[m++],O[E++]=l[m++]),t.customData.forEach((t=>{b=e*t.components;for(let e=0;e{null===e||e.constructor===Float64Array&&3===e.length?null===n||n.constructor===Float64Array&&3===n.length?(null!==t.coordShift&&null!==e&&En(e,t.coordShift)||(t.coordShift=e),null!==t.coordScale&&null!==n&&En(n,t.coordScale)||(t.coordScale=n),t.coordShiftAndScaleEnabled=function(e,t){return null!==e&&null!==t&&!(On(e,[0,0,0])&&On(t,[1,1,1]))}(t.coordShift,t.coordScale),t.coordShiftAndScaleEnabled?t.inverseShiftAndScaleMatrix=function(e,t){const n=new Float64Array(3);var r,o;o=t,(r=n)[0]=1/o[0],r[1]=1/o[1],r[2]=1/o[2];const a=new Float64Array(16);return V(a,Di(),e,n),a}(t.coordShift,t.coordScale):t.inverseShiftAndScaleMatrix=null):$u("Wrong type for coordScale, expected vec3 or null"):$u("Wrong type for coordShift, expected vec3 or null")}}const qu={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function Xu(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qu,n),ju.extend(e,t,n),Wt.setGet(e,t,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),Wt.get(e,t,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),Ku(e,t)}var Yu={newInstance:Wt.newInstance(Xu),extend:Xu};const{vtkErrorMacro:Qu}=Wt;function Zu(e,t){t.classHierarchy.push("vtkShader"),e.compile=()=>{let e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||"Unknown"===t.shaderType)return!1;if(0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0),e="Fragment"===t.shaderType?t.context.FRAGMENT_SHADER:t.context.VERTEX_SHADER,t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){const e=t.context.getShaderInfoLog(t.handle);return Qu(`Error compiling shader '${t.source}': ${e}`),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=()=>{"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}const Ju={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function ed(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ju,n),Wt.obj(e,t),Wt.setGet(e,t,["shaderType","source","error","handle","context"]),Zu(e,t)}var td={newInstance:Wt.newInstance(ed,"vtkShader"),extend:ed};const{vtkErrorMacro:nd}=Wt;function rd(e,t){t.classHierarchy.push("vtkShaderProgram"),e.compileShader=()=>t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&&e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(nd(`Links failed: ${t.error}`),0):(nd(t.error),0):(nd(t.fragmentShader.getSource().split("\n").map(((e,t)=>`${t}: ${e}`)).join("\n")),nd(t.fragmentShader.getError()),0):(nd(t.vertexShader.getSource().split("\n").map(((e,t)=>`${t}: ${e}`)).join("\n")),nd(t.vertexShader.getError()),0),e.cleanup=()=>{"Unknown"!==t.shaderType&&0!==t.handle&&(e.release(),0!==t.vertexShaderHandle&&(t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=0),0!==t.fragmentShaderHandle&&(t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=0),t.context.deleteProgram(t.handle),t.handle=0,e.setCompiled(!1))},e.bind=()=>!(!t.linked&&!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0)),e.isBound=()=>!!t.bound,e.release=()=>{t.context.useProgram(null),e.setBound(!1)},e.setContext=e=>{t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=()=>{if(t.linked)return!0;if(0===t.handle)return t.error="Program has not been initialized, and/or does not have shaders.",!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){const e=t.context.getProgramInfoLog(t.handle);return nd(`Error linking shader ${e}`),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=(n,r)=>{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix4fv(o,!1,a),!0},e.setUniformMatrix3x3=(n,r)=>{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;const a=new Float32Array(r);return t.context.uniformMatrix3fv(o,!1,a),!0},e.setUniformf=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1f(o,r),!0)},e.setUniformfv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1fv(o,r),!0)},e.setUniformi=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1i(o,r),!0)},e.setUniformiv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform1iv(o,r),!0)},e.setUniform2f=(n,r,o)=>{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform2f(a,r,o),!0},e.setUniform2fv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2fv(o,r),!0)},e.setUniform2i=(n,r,o)=>{const a=e.findUniform(n);if(-1===a)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform2i(a,r,o),!0},e.setUniform2iv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform2iv(o,r),!0)},e.setUniform3f=(n,r,o,a)=>{const i=e.findUniform(n);if(-1===i)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(i,r,o,a),!0},e.setUniform3fArray=(n,r)=>{const o=e.findUniform(n);if(-1===o)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(o,r[0],r[1],r[2]),!0},e.setUniform3fv=(n,r)=>{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3fv(o,r),!0)},e.setUniform3i=function(n){const r=e.findUniform(n);if(-1===r)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform3iv(o,r),!0)},e.setUniform4f=function(n){const r=e.findUniform(n);if(-1===r)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4fv(o,r),!0)},e.setUniform4i=function(n){const r=e.findUniform(n);if(-1===r)return t.error=`Could not set uniform ${n} . No such uniform.`,!1;for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i{const o=e.findUniform(n);return-1===o?(t.error=`Could not set uniform ${n} . No such uniform.`,!1):(t.context.uniform4iv(o,r),!0)},e.findUniform=e=>{if(!e||!t.linked)return-1;let n=t.uniformLocs[e];return void 0!==n?n:(n=t.context.getUniformLocation(t.handle,e),null===n?(t.error=`Uniform ${e} not found in current shader program.`,t.uniformLocs[e]=-1,-1):(t.uniformLocs[e]=n,n))},e.isUniformUsed=e=>{if(!e)return!1;let n=t.uniformLocs[e];return void 0!==n?null!==n:t.linked?(n=t.context.getUniformLocation(t.handle,e),t.uniformLocs[e]=n,null!==n):(nd("attempt to find uniform when the shader program is not linked"),!1)},e.isAttributeUsed=e=>{if(!e)return!1;if(e in t.attributeLocs)return!0;if(!t.linked)return nd("attempt to find uniform when the shader program is not linked"),!1;const n=t.context.getAttribLocation(t.handle,e);return-1!==n&&(t.attributeLocs[e]=n,!0)},e.attachShader=n=>{if(0===n.getHandle())return t.error="Shader object was not initialized, cannot attach it.",!1;if("Unknown"===n.getShaderType())return t.error="Shader object is of type Unknown and cannot be used.",!1;if(0===t.handle){const e=t.context.createProgram();if(0===e)return t.error="Could not create shader program.",!1;t.handle=e,t.linked=!1}return"Vertex"===n.getShaderType()&&(0!==t.vertexShaderHandle&&t.context.detachShader(t.handle,t.vertexShaderHandle),t.vertexShaderHandle=n.getHandle()),"Fragment"===n.getShaderType()&&(0!==t.fragmentShaderHandle&&t.context.detachShader(t.handle,t.fragmentShaderHandle),t.fragmentShaderHandle=n.getHandle()),t.context.attachShader(t.handle,n.getHandle()),e.setLinked(!1),!0},e.detachShader=e=>{if(0===e.getHandle())return t.error="shader object was not initialized, cannot attach it.",!1;if("Unknown"===e.getShaderType())return t.error="Shader object is of type Unknown and cannot be used.",!1;switch(0===t.handle&&(t.error="This shader program has not been initialized yet."),e.getShaderType()){case"Vertex":return t.vertexShaderHandle!==e.getHandle()?(t.error="The supplied shader was not attached to this program.",!1):(t.context.detachShader(t.handle,e.getHandle()),t.vertexShaderHandle=0,t.linked=!1,!0);case"Fragment":return t.fragmentShaderHandle!==e.getHandle()?(t.error="The supplied shader was not attached to this program.",!1):(t.context.detachShader(t.handle,e.getHandle()),t.fragmentShaderHandle=0,t.linked=!1,!0);default:return!1}},e.setContext=e=>{t.context=e,t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.setLastCameraMTime=e=>{t.lastCameraMTime=e}}const od={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:"",handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function ad(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,od,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=td.newInstance(),t.vertexShader.setShaderType("Vertex"),t.fragmentShader=td.newInstance(),t.fragmentShader.setShaderType("Fragment"),t.geometryShader=td.newInstance(),t.geometryShader.setShaderType("Geometry"),Wt.obj(e,t),Wt.get(e,t,["lastCameraMTime"]),Wt.setGet(e,t,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),rd(e,t)}var id={newInstance:Wt.newInstance(ad,"vtkShaderProgram"),extend:ad,substitute:function(e,t,n,r){const o="string"==typeof n?n:n.join("\n"),a=!1===r?t:new RegExp(t,"g"),i=e.replace(a,o);return{replace:i!==o,result:i}}};function sd(e,t){t.classHierarchy.push("vtkOpenGLVertexArrayObject"),e.exposedMethod=()=>{},e.initialize=()=>{t.instancingExtension=null,t._openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension("ANGLE_instanced_arrays")),!t.forceEmulation&&t._openGLRenderWindow&&t._openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension("OES_vertex_array_object"),!t.forceEmulation&&t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=()=>0!==t.handleVAO||!1===t.supported,e.bind=()=>{if(e.isReady()||e.initialize(),e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady()){const e=t.context;for(let n=0;n0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,1):e.vertexAttribDivisor(o.index+n,1))}}}},e.release=()=>{if(e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady()){const e=t.context;for(let n=0;n0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(o.index+n,0):e.vertexAttribDivisor(o.index+n,0)),e.disableVertexAttribArray(o.index+n)}}}},e.shaderProgramChanged=()=>{e.release(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=()=>{e.shaderProgramChanged(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=(t,n,r,o,a,i,s,l)=>e.addAttributeArrayWithDivisor(t,n,r,o,a,i,s,l,0,!1),e.addAttributeArrayWithDivisor=(n,r,o,a,i,s,l,c,u,d)=>{if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==ku.ARRAY_BUFFER)return!1;if(0===t.handleProgram&&(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;const p=t.context,f={};if(f.name=o,f.index=p.getAttribLocation(t.handleProgram,o),f.offset=a,f.stride=i,f.type=s,f.size=l,f.normalize=c,f.isMatrix=d,f.divisor=u,-1===f.Index)return!1;if(r.bind(),p.enableVertexAttribArray(f.index),p.vertexAttribPointer(f.index,f.size,f.type,f.normalize,f.stride,f.offset),u>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f.index,1):p.vertexAttribDivisor(f.index,1)),f.buffer=r.getHandle(),!t.supported){let e=!1;for(let n=0;n{const d=e.addAttributeArrayWithDivisor(n,r,o,a,i,s,l,c,u,!0);if(!d)return d;const p=t.context,f=p.getAttribLocation(t.handleProgram,o);for(let e=1;e0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(f+e,1):p.vertexAttribDivisor(f+e,1));return!0},e.removeAttributeArray=n=>{if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(let e=0;e{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))}}const ld={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function cd(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ld,n),t.buffers=[],Wt.obj(e,t),Wt.get(e,t,["supported"]),Wt.setGet(e,t,["forceEmulation"]),sd(e,t)}var ud={newInstance:Wt.newInstance(cd,"vtkOpenGLVertexArrayObject"),extend:cd};const dd={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};function pd(e,t){t.classHierarchy.push("vtkOpenGLHelper"),e.setOpenGLRenderWindow=e=>{t.context=e.getContext(),t.program.setContext(t.context),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=e=>{t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)},e.drawArrays=(n,r,o,a)=>{if(t.CABO.getElementCount()){const i=e.getOpenGLMode(o),s=e.haveWideLines(n,r),l=t.context,c=l.getParameter(l.DEPTH_WRITEMASK);t.pointPicking&&l.depthMask(!1),i===l.LINES&&s?(e.updateShaders(n,r,a),l.drawArraysInstanced(i,0,t.CABO.getElementCount(),2*Math.ceil(r.getProperty().getLineWidth()))):(l.lineWidth(r.getProperty().getLineWidth()),e.updateShaders(n,r,a),l.drawArrays(i,0,t.CABO.getElementCount()),l.lineWidth(1));const u=(i===l.POINTS?1:0)||(i===l.LINES?2:3);return t.pointPicking&&l.depthMask(c),t.CABO.getElementCount()/u}return 0},e.getOpenGLMode=e=>{if(t.pointPicking)return t.context.POINTS;const n=t.primitiveType;return e===Yi.POINTS||n===dd.Points?t.context.POINTS:e===Yi.WIREFRAME||n===dd.Lines||n===dd.TrisEdges||n===dd.TriStripsEdges?t.context.LINES:t.context.TRIANGLES},e.haveWideLines=(e,n)=>n.getProperty().getLineWidth()>1&&!(t.CABO.getOpenGLRenderWindow()&&t.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()>=n.getProperty().getLineWidth()),e.getNeedToRebuildShaders=(t,n,r)=>!!(r.getNeedToRebuildShaders(e,t,n)||0===e.getProgram()||e.getShaderSourceTime().getMTime(){if(e.getNeedToRebuildShaders(n,r,o)){const a={Vertex:null,Fragment:null,Geometry:null};o.buildShaders(a,n,r);const i=t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);i!==e.getProgram()&&(e.setProgram(i),e.getVAO().releaseGraphicsResources()),e.getShaderSourceTime().modified()}else t.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(e.getProgram());e.getVAO().bind(),o.setMapperShaderParameters(e,n,r),o.setPropertyShaderParameters(e,n,r),o.setCameraShaderParameters(e,n,r),o.setLightingShaderParameters(e,n,r),o.invokeShaderCallbacks(e,n,r)},e.setMapperShaderParameters=(n,r,o)=>{if(e.haveWideLines(n,r)){e.getProgram().setUniform2f("viewportSize",o.usize,o.vsize);const t=parseFloat(r.getProperty().getLineWidth()),n=t/2;e.getProgram().setUniformf("lineWidthStepSize",t/Math.ceil(t)),e.getProgram().setUniformf("halfLineWidth",n)}t.primitiveType===dd.Points||r.getProperty().getRepresentation()===Yi.POINTS?e.getProgram().setUniformf("pointSize",r.getProperty().getPointSize()):t.pointPicking&&e.getProgram().setUniformf("pointSize",e.getPointPickingPrimitiveSize())},e.replaceShaderPositionVC=(n,r,o)=>{let a=n.Vertex;a=id.substitute(a,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform float pointSize;"]).result,a=id.substitute(a,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = pointSize;"],!1).result,e.getOpenGLMode(o.getProperty().getRepresentation())===t.context.LINES&&e.haveWideLines(r,o)&&(a=id.substitute(a,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform vec2 viewportSize;","uniform float lineWidthStepSize;","uniform float halfLineWidth;"]).result,a=id.substitute(a,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," if (halfLineWidth > 0.0)"," {"," float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;"," vec4 tmpPos = gl_Position;"," vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];"," tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];"," gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);"," }"]).result),n.Vertex=a},e.getPointPickingPrimitiveSize=()=>t.primitiveType===dd.Points?2:t.primitiveType===dd.Lines?4:6,e.getAllocatedGPUMemoryInBytes=()=>e.getCABO().getAllocatedGPUMemoryInBytes()}const fd={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function gd(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fd,n),Wt.obj(e,t),t.shaderSourceTime={},Wt.obj(t.shaderSourceTime),t.attributeUpdateTime={},Wt.obj(t.attributeUpdateTime),Wt.setGet(e,t,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType","pointPicking"]),t.program=id.newInstance(),t.VAO=ud.newInstance(),t.CABO=Yu.newInstance(),pd(e,t)}var md={newInstance:Wt.newInstance(gd),extend:gd,primTypes:dd};const hd={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var vd={Wrap:{CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Filter:hd};const bd=new Float32Array(1),yd=new Int32Array(bd.buffer);var Td={fromHalf:function(e){const t=(32768&e)>>15,n=(31744&e)>>10,r=1023&e;return 0===n?(t?-1:1)*2**-14*(r/1024):31===n?r?NaN:1/0*(t?-1:1):(t?-1:1)*2**(n-15)*(1+r/1024)},toHalf:function(e){bd[0]=e;const t=yd[0];let n=t>>16&32768,r=t>>12&2047;const o=t>>23&255;return o<103?n:o>142?(n|=31744,n|=(255===o?0:1)&&8388607&t,n):o<113?(r|=2048,n|=(r>>114-o)+(r>>113-o&1),n):(n|=o-112<<10|r>>1,n+=1&r,n)}};const{Wrap:xd,Filter:Sd}=vd,{VtkDataTypes:Cd}=ws,{vtkDebugMacro:Ad,vtkErrorMacro:wd,vtkWarningMacro:Pd}=Ht,{toHalf:Id}=Td;function Od(e,t){function n(e){if(t._openGLRenderWindow.getWebgl2())return e;const n=[],r=t.width,o=t.height,a=t.components;if(e&&(!Ro(r)||!Ro(o))){const i=t.context.getExtension("OES_texture_half_float"),s=Mo(r),l=Mo(o),c=s*l*t.components;for(let u=0;u=o&&(c=o-1);const m=i-l,h=1-m;l=l*r*a,c=c*r*a;for(let t=0;t=r&&(p=r-1);const v=i-s;s*=a,p*=a;for(let t=0;t2048||o<-2048||o>2048)return!1}return!0}(r,o)||a;let s=!1;if(t._openGLRenderWindow.getWebgl2())s=t.openGLDataType===t.context.FLOAT&&null===t.context.getExtension("OES_texture_float_linear")&&i||t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension("OES_texture_half_float");s=e&&t.openGLDataType===e.HALF_FLOAT_OES}t.canUseHalfFloat=s&&i}(a,c.offset,c.scale,r),e.useHalfFloat()||e.getOpenGLDataType(a,!0),{numComps:o,dataType:a,data:i,scaleOffsets:c}}t.classHierarchy.push("vtkOpenGLTexture"),e.render=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(n?t._openGLRenderWindow=n:(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow")),t.context=t._openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Sd.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Sd.LINEAR),e.setMagnificationFilter(Sd.LINEAR)):(e.setMinificationFilter(Sd.NEAREST),e.setMagnificationFilter(Sd.NEAREST)),t.renderable.getRepeat()&&(e.setWrapR(xd.REPEAT),e.setWrapS(xd.REPEAT),e.setWrapT(xd.REPEAT)),t.renderable.getInputData()&&t.renderable.setImage(null),!t.handle||t.renderable.getMTime()>t.textureBuildTime.getMTime()){if(null!==t.renderable.getImage()&&(t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Sd.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&&t.renderable.getImageLoaded()&&(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified())),null!==t.renderable.getCanvas()){t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Sd.LINEAR_MIPMAP_LINEAR));const n=t.renderable.getCanvas();e.create2DFromRaw(n.width,n.height,4,Cd.UNSIGNED_CHAR,n,!0),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}if(null!==t.renderable.getJsImageData()){const n=t.renderable.getJsImageData();t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Sd.LINEAR_MIPMAP_LINEAR)),e.create2DFromRaw(n.width,n.height,4,Cd.UNSIGNED_CHAR,n.data,!0),e.activate(),e.sendParameters(),t.textureBuildTime.modified()}const n=t.renderable.getInputData(0);if(n&&n.getPointData().getScalars()){const r=n.getExtent(),o=n.getPointData().getScalars(),a=[];for(let e=0;e{e.deactivate(),t.context&&t.handle&&t.context.deleteTexture(t.handle),t.handle=0,t.numberOfDimensions=0,t.target=0,t.components=0,t.width=0,t.height=0,t.depth=0,e.resetFormatAndType()},e.createTexture=()=>{t.handle||(t.handle=t.context.createTexture(),t.target&&(t.context.bindTexture(t.target,t.handle),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.bindTexture(t.target,null)))},e.getTextureUnit=()=>t._openGLRenderWindow?t._openGLRenderWindow.getTextureUnitForTexture(e):-1,e.activate=()=>{t._openGLRenderWindow.activateTexture(e),e.bind()},e.deactivate=()=>{t._openGLRenderWindow&&t._openGLRenderWindow.deactivateTexture(e)},e.releaseGraphicsResources=n=>{n&&t.handle&&(n.activateTexture(e),n.deactivateTexture(e),t.context.deleteTexture(t.handle),t.handle=0,t.numberOfDimensions=0,t.target=0,t.internalFormat=0,t.format=0,t.openGLDataType=0,t.components=0,t.width=0,t.height=0,t.depth=0,t.allocatedGPUMemoryInBytes=0),t.shaderProgram&&(t.shaderProgram.releaseGraphicsResources(n),t.shaderProgram=null)},e.bind=()=>{t.context.bindTexture(t.target,t.handle),t.autoParameters&&e.getMTime()>t.sendParametersTime.getMTime()&&e.sendParameters()},e.isBound=()=>{let e=!1;if(t.context&&t.handle){let n=0;t.target===t.context.TEXTURE_2D?n=t.context.TEXTURE_BINDING_2D:Pd("impossible case"),e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=()=>{t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t._openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t._openGLRenderWindow.getWebgl2()&&(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=(n,r)=>(t._forceInternalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||Ad(`Unable to find suitable internal format for T=${n} NC= ${r}`),[t.context.R32F,t.context.RG32F,t.context.RGB32F,t.context.RGBA32F].includes(t.internalFormat)&&!t.context.getExtension("OES_texture_float_linear")&&Pd("Failed to load OES_texture_float_linear. Texture filtering is not available for *32F internal formats."),t.internalFormat),e.getDefaultInternalFormat=(n,r)=>{let o=0;return o=t._openGLRenderWindow.getDefaultTextureInternalFormat(n,r,t.oglNorm16Ext,e.useHalfFloat()),o||(o||(Ad("Unsupported internal texture type!"),Ad(`Unable to find suitable internal format for T=${n} NC= ${r}`)),o)},e.useHalfFloat=()=>t.enableUseHalfFloat&&t.canUseHalfFloat,e.setInternalFormat=n=>{t._forceInternalFormat=!0,n!==t.internalFormat&&(t.internalFormat=n,e.modified())},e.getFormat=(n,r)=>(t.format=e.getDefaultFormat(n,r),t.format),e.getDefaultFormat=(e,n)=>{if(t._openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:default:return t.context.RGB;case 4:return t.context.RGBA}},e.resetFormatAndType=()=>{t.format=0,t.internalFormat=0,t._forceInternalFormat=!1,t.openGLDataType=0},e.getDefaultDataType=n=>{const r=e.useHalfFloat();if(t._openGLRenderWindow.getWebgl2())switch(n){case Cd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case t.oglNorm16Ext&&!r&&Cd.SHORT:return t.context.SHORT;case t.oglNorm16Ext&&!r&&Cd.UNSIGNED_SHORT:return t.context.UNSIGNED_SHORT;case r&&Cd.SHORT:case r&&Cd.UNSIGNED_SHORT:return t.context.HALF_FLOAT;case Cd.FLOAT:case Cd.VOID:default:return t.context.FLOAT}switch(n){case Cd.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case Cd.FLOAT:case Cd.VOID:default:if(t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear"))return t.context.FLOAT;{const e=t.context.getExtension("OES_texture_half_float");if(e&&t.context.getExtension("OES_texture_half_float_linear"))return e.HALF_FLOAT_OES}return t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=function(n){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.openGLDataType&&!r||(t.openGLDataType=e.getDefaultDataType(n)),t.openGLDataType},e.getShiftAndScale=()=>{let e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:n=127.5,e=n-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:n=32767.5,e=n-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:n=2147483647.5,e=n-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=e=>{switch(e){case Sd.NEAREST:return t.context.NEAREST;case Sd.LINEAR:return t.context.LINEAR;case Sd.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Sd.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Sd.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Sd.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=e=>{switch(e){case xd.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case xd.REPEAT:return t.context.REPEAT;case xd.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.updateArrayDataTypeForGL=function(e,n){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o=[];let a=t.width*t.height*t.components;if(r&&(a*=t.depth),e!==Cd.FLOAT&&t.openGLDataType===t.context.FLOAT)for(let e=0;ea?n[e].subarray(0,a):n[e];o.push(new Float32Array(t))}else o.push(null);if(e!==Cd.UNSIGNED_CHAR&&t.openGLDataType===t.context.UNSIGNED_BYTE)for(let e=0;ea?n[e].subarray(0,a):n[e];o.push(new Uint8Array(t))}else o.push(null);let i=!1;if(t._openGLRenderWindow.getWebgl2())i=t.openGLDataType===t.context.HALF_FLOAT;else{const e=t.context.getExtension("OES_texture_half_float");i=e&&t.openGLDataType===e.HALF_FLOAT_OES}if(i)for(let e=0;e5&&void 0!==arguments[5]&&arguments[5];if(e.getOpenGLDataType(s,!0),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return wd("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=i,t.width=o,t.height=a,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();const u=[l],d=e.updateArrayDataTypeForGL(s,u),p=n(d);return t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,c),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),r(s)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=p[0]&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,p[0])):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,p[0]),t.generateMipmap&&t.context.generateMipmap(t.target),c&&t.context.pixelStorei(t.context.UNPACK_FLIP_Y_WEBGL,!1),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*i*t._openGLRenderWindow.getDefaultTextureByteSize(s,t.oglNorm16Ext,e.useHalfFloat()),e.deactivate(),!0},e.createCubeFromRaw=(o,a,i,s,l)=>{if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return wd("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=i,t.width=o,t.height=a,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),t.maxLevel=l.length/6-1,e.createTexture(),e.bind();const c=n(e.updateArrayDataTypeForGL(s,l)),u=[];let d=t.width,p=t.height;for(let e=0;e=1&&a>=1;){let i=null;n<=t.maxLevel&&(i=u[6*n+e]),r(s)?null!=i&&t.context.texSubImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,0,0,o,a,t.format,t.openGLDataType,i):t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+e,n,t.internalFormat,o,a,0,t.format,t.openGLDataType,i),n++,o/=2,a/=2}}return t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*i*t._openGLRenderWindow.getDefaultTextureByteSize(s,t.oglNorm16Ext,e.useHalfFloat()),e.deactivate(),!0},e.createDepthFromRaw=(n,o,a,i)=>(e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t._openGLRenderWindow.getWebgl2()?a===Cd.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),r(a)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=i&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,i)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,i),t.generateMipmap&&t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(a,t.oglNorm16Ext,e.useHalfFloat()),e.deactivate(),!0):(wd("Failed to determine texture parameters."),!1)),e.create2DFromImage=n=>{if(e.getOpenGLDataType(Cd.UNSIGNED_CHAR),e.getInternalFormat(Cd.UNSIGNED_CHAR,4),e.getFormat(Cd.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return wd("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.depth=1,t.numberOfDimensions=2,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1);const o=!(t._openGLRenderWindow.getWebgl2()||Ro(n.width)&&Ro(n.height)),a=document.createElement("canvas");a.width=o?Mo(n.width):n.width,a.height=o?Mo(n.height):n.height,t.width=a.width,t.height=a.height;const i=a.getContext("2d");i.translate(0,a.height),i.scale(1,-1),i.drawImage(n,0,0,n.width,n.height,0,0,a.width,a.height);const s=a;return r(Cd.UNSIGNED_CHAR)?(t.context.texStorage2D(t.target,1,t.internalFormat,t.width,t.height),null!=s&&t.context.texSubImage2D(t.target,0,0,0,t.width,t.height,t.format,t.openGLDataType,s)):t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,s),t.generateMipmap&&t.context.generateMipmap(t.target),t.allocatedGPUMemoryInBytes=t.width*t.height*t.depth*t.components*t._openGLRenderWindow.getDefaultTextureByteSize(Cd.UNSIGNED_CHAR,t.oglNorm16Ext,e.useHalfFloat()),e.deactivate(),!0},e.create2DFilterableFromRaw=function(t,n,r,o,a){let i=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return e.create2DFilterableFromDataArray(t,n,ws.newInstance({numberOfComponents:r,dataType:o,values:a}),i)},e.create2DFilterableFromDataArray=function(t,n,r){let a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const{numComps:i,dataType:s,data:l}=o(r,a);e.create2DFromRaw(t,n,i,s,l)},e.updateVolumeInfoForGL=(n,r)=>{let o=!1;const a=e.useHalfFloat();t.volumeInfo?.scale&&t.volumeInfo?.offset||(t.volumeInfo={scale:new Array(r),offset:new Array(r)});for(let e=0;e{let u=l,d=c;if(!e.updateVolumeInfoForGL(u,s)&&d){const e=o*a*i,n=structuredClone(t.volumeInfo),r=new Float32Array(e*s);t.volumeInfo.offset=n.offset,t.volumeInfo.scale=n.scale;let l=0;const c=n.scale.map((e=>1/e));for(let t=0;t6&&void 0!==arguments[6]&&arguments[6];return e.create3DFilterableFromDataArray(t,n,r,ws.newInstance({numberOfComponents:o,dataType:a,values:i}),s)},e.create3DFilterableFromDataArray=function(n,a,i,s){let l=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const{numComps:c,dataType:u,data:d,scaleOffsets:p}=o(s,l),f=[],g=[];for(let e=0;e{e[t]=n},b=Cd.UNSIGNED_CHAR;if(u===Cd.UNSIGNED_CHAR)for(let e=0;e{e[t]=(n-r)/o}):(b=Cd.UNSIGNED_CHAR,v=(e,t,n,r,o)=>{e[t]=255*(n-r)/o});if(e.getOpenGLDataType(b),e.getInternalFormat(b,c),e.getFormat(b,c),!t.internalFormat||!t.format||!t.openGLDataType)return wd("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=c,t.depth=1,t.numberOfDimensions=2;let y=t.context.getParameter(t.context.MAX_TEXTURE_SIZE);y>4096&&(b===Cd.FLOAT||c>=3)&&(y=4096);let T=1,x=1;m>y*y&&(T=Math.ceil(Math.sqrt(m/(y*y))),x=T);let S=Math.sqrt(m)/T;S=Mo(S);const C=Math.floor(S*T/n),A=Math.ceil(i/C),w=Mo(a*A/x);let P;t.width=S,t.height=w,t._openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=C,t.volumeInfo.yreps=A,t.volumeInfo.xstride=T,t.volumeInfo.ystride=x,t.volumeInfo.offset=h.offset,t.volumeInfo.scale=h.scale;const I=S*w*c;P=b===Cd.FLOAT?new Float32Array(I):new Uint8Array(I);let O=0;const E=Math.floor(n/T),M=Math.floor(a/x);for(let e=0;e{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))},e.getMaximumTextureSize=e=>e&&e.isCurrent()?e.getIntegerv(e.MAX_TEXTURE_SIZE):-1,e.enableUseHalfFloat=e=>{t.enableUseHalfFloat=e}}const Ed={_openGLRenderWindow:null,_forceInternalFormat:!1,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:xd.CLAMP_TO_EDGE,wrapT:xd.CLAMP_TO_EDGE,wrapR:xd.CLAMP_TO_EDGE,minificationFilter:Sd.NEAREST,magnificationFilter:Sd.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0,enableUseHalfFloat:!0,canUseHalfFloat:!1};function Md(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ed,n),Xt.extend(e,t,n),t.sendParametersTime={},ht(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},ht(t.textureBuildTime,{mtime:0}),xt(e,t,["format","openGLDataType"]),St(e,t,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap","oglNorm16Ext"]),bt(e,t,["width","height","volumeInfo","components","handle","target","allocatedGPUMemoryInBytes"]),Pt(0,t,["openGLRenderWindow"]),Od(e,t)}const Rd=Mt(Md,"vtkOpenGLTexture");var Dd={newInstance:Rd,extend:Md,...vd};tn("vtkTexture",Rd);var Bd=function(e,t){e.replaceShaderCoincidentOffset=(n,r,o)=>{const a=e.getCoincidentParameters(r,o);if(a&&(0!==a.factor||0!==a.offset)){let e=n.Fragment;e=id.substitute(e,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,t.context.getExtension("EXT_frag_depth")&&(0!==a.factor?(e=id.substitute(e,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,e=id.substitute(e,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):e=id.substitute(e,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),t._openGLRenderWindow.getWebgl2()&&(0!==a.factor?(e=id.substitute(e,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,e=id.substitute(e,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):e=id.substitute(e,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),n.Fragment=e}}},Ld=function(e,t){e.applyShaderReplacements=(e,t,n)=>{let r=null;if(t&&(r=t.ShaderReplacements),r)for(let t=0;t{e.getReplacedShaderTemplate(n,r,o),t.lastRenderPassShaderReplacement=t.currentRenderPass?t.currentRenderPass.getShaderReplacement():null,t.lastRenderPassShaderReplacement&&t.lastRenderPassShaderReplacement(n);const a=t.renderable.getViewSpecificProperties().OpenGL;e.applyShaderReplacements(n,a,!0),e.replaceShaderValues(n,r,o),e.applyShaderReplacements(n,a)},e.getReplacedShaderTemplate=(n,r,o)=>{const a=t.renderable.getViewSpecificProperties().OpenGL;e.getShaderTemplate(n,r,o);let i=n.Vertex;if(a){const e=a.VertexShaderCode;void 0!==e&&""!==e&&(i=e)}n.Vertex=i;let s=n.Fragment;if(a){const e=a.FragmentShaderCode;void 0!==e&&""!==e&&(s=e)}n.Fragment=s;let l=n.Geometry;if(a){const e=a.GeometryShaderCode;void 0!==e&&(l=e)}n.Geometry=l}};const{FieldAssociations:Vd}=Ys,{primTypes:_d}=md,{Representation:Nd,Shading:Fd}=os,{ScalarMode:kd}=Zl,{Filter:Ud,Wrap:Gd}=Dd,{vtkErrorMacro:zd}=Ht,Wd={type:"StartEvent"},Hd={type:"EndEvent"},{CoordinateSystem:jd}=Hi;function $d(e,t){function n(e,t,n){return t.identity(n),e.reduce(((e,n,r)=>0===r?n?t.copy(e,n):t.identity(e):n?t.multiply(e,e,n):e),n)}t.classHierarchy.push("vtkOpenGLPolyDataMapper"),e.buildPass=n=>{n&&(t.currentRenderPass=null,t.openGLActor=e.getFirstAncestorOfType("vtkOpenGLActor"),t._openGLRenderer=t.openGLActor.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera()))},e.translucentPass=(n,r)=>{n&&(t.currentRenderPass=r,e.render())},e.zBufferPass=n=>{n&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaqueZBufferPass=t=>e.zBufferPass(t),e.opaquePass=t=>{t&&e.render()},e.render=()=>{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=_d.Start;e<_d.End;e++)t.primitives[e].setOpenGLRenderWindow(t._openGLRenderWindow)}const r=t.openGLActor.getRenderable(),o=t._openGLRenderer.getRenderable();e.renderPiece(o,r)},e.getShaderTemplate=(e,t,n)=>{e.Vertex="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyDataVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\nattribute vec4 vertexMC;\n\n// frag position in VC\n//VTK::PositionVC::Dec\n\n// optional normal declaration\n//VTK::Normal::Dec\n\n// extra lighting parameters\n//VTK::Light::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// material property values\n//VTK::Color::Dec\n\n// clipping plane vars\n//VTK::Clip::Dec\n\n// camera and actor matrix values\n//VTK::Camera::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\n// picking support\n//VTK::Picking::Dec\n\nvoid main()\n{\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Clip::Impl\n\n //VTK::PrimID::Impl\n\n //VTK::PositionVC::Impl\n\n //VTK::Light::Impl\n\n //VTK::Picking::Impl\n}\n",e.Fragment="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyDataFS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n// Template for the polydata mappers fragment shader\n\nuniform int PrimitiveIDOffset;\n\n// VC position of this fragment\n//VTK::PositionVC::Dec\n\n// optional color passed in from the vertex shader, vertexColor\n//VTK::Color::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n// extra lighting parameters\n//VTK::Light::Dec\n\n// define vtkImageLabelOutlineOn\n//VTK::ImageLabelOutlineOn\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// picking support\n//VTK::Picking::Dec\n\n// Depth Peeling Support\n//VTK::DepthPeeling::Dec\n\n// clipping plane vars\n//VTK::Clip::Dec\n\n// label outline \n//VTK::LabelOutline::Dec\n\n// the output of this shader\n//VTK::Output::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\n// handle coincident offsets\n//VTK::Coincident::Dec\n\n//VTK::ZBuffer::Dec\n\n//VTK::LabelOutlineHelperFunction\n\nvoid main()\n{\n // VC position of this fragment. This should not branch/return/discard.\n //VTK::PositionVC::Impl\n\n // Place any calls that require uniform flow (e.g. dFdx) here.\n //VTK::UniformFlow::Impl\n\n // Set gl_FragDepth here (gl_FragCoord.z by default)\n //VTK::Depth::Impl\n\n // Early depth peeling abort:\n //VTK::DepthPeeling::PreColor\n\n // Apple Bug\n //VTK::PrimID::Impl\n\n //VTK::Clip::Impl\n\n //VTK::Color::Impl\n\n // Generate the normal if we are not passed in one\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Light::Impl\n\n if (gl_FragData[0].a <= 0.0)\n {\n discard;\n }\n\n //VTK::DepthPeeling::Impl\n\n //VTK::Picking::Impl\n\n // handle coincident offsets\n //VTK::Coincident::Impl\n\n //VTK::ZBuffer::Impl\n\n //VTK::RenderPassFragmentShader::Impl\n}\n",e.Geometry=""},e.replaceShaderColor=(e,n,r)=>{let o=e.Vertex,a=e.Geometry,i=e.Fragment;const s=t.lastBoundBO.getReferenceByName("lastLightComplexity");let l=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity","uniform vec3 ambientColorUniform;","uniform vec3 diffuseColorUniform;"];s&&(l=l.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));let c=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];s&&(c=c.concat([" vec3 specularColor;"," float specularPower;"])),c=c.concat([" ambientColor = ambientColorUniform;"," diffuseColor = diffuseColorUniform;"," opacity = opacityUniform;"]),s&&(c=c.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges||(l=l.concat(["varying vec4 vertexColorVSOutput;"]),o=id.substitute(o,"//VTK::Color::Dec",["attribute vec4 scalarColor;","varying vec4 vertexColorVSOutput;"]).result,o=id.substitute(o,"//VTK::Color::Impl",["vertexColorVSOutput = scalarColor;"]).result,a=id.substitute(a,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,a=id.substitute(a,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result),0===t.lastBoundBO.getCABO().getColorComponents()||t.drawingEdges?(t.renderable.getAreScalarsMappedFromCells()||t.renderable.getInterpolateScalarsBeforeMapping())&&t.renderable.getColorCoordinates()&&!t.drawingEdges?i=id.substitute(i,"//VTK::Color::Impl",c.concat([" vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);"," diffuseColor = texColor.rgb;"," ambientColor = texColor.rgb;"," opacity = opacity*texColor.a;"])).result:(r.getBackfaceProperty()&&!t.drawingEdges&&(l=l.concat(["uniform float opacityUniformBF; // the fragment opacity","uniform float ambientIntensityBF; // the material ambient","uniform float diffuseIntensityBF; // the material diffuse","uniform vec3 ambientColorUniformBF; // ambient material color","uniform vec3 diffuseColorUniformBF; // diffuse material color"]),s?(l=l.concat(["uniform float specularIntensityBF; // the material specular intensity","uniform vec3 specularColorUniformBF; // intensity weighted color","uniform float specularPowerUniformBF;"]),c=c.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," specularColor = specularIntensityBF * specularColorUniformBF;"," specularPower = specularPowerUniformBF;"," opacity = opacityUniformBF; }"])):c=c.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," opacity = opacityUniformBF; }"])),t.haveCellScalars&&!t.drawingEdges&&(l=l.concat(["uniform samplerBuffer texture1;"])),i=id.substitute(i,"//VTK::Color::Impl",c).result):i=id.substitute(i,"//VTK::Color::Impl",c.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])).result,i=id.substitute(i,"//VTK::Color::Dec",l).result,e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderLight=(e,n,r)=>{let o=e.Fragment;const a=t.lastBoundBO.getReferenceByName("lastLightComplexity"),i=t.lastBoundBO.getReferenceByName("lastLightCount");let s=[];switch(a){case 0:o=id.substitute(o,"//VTK::Light::Impl",[" gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);"," //VTK::Light::Impl"],!1).result;break;case 1:o=id.substitute(o,"//VTK::Light::Impl",[" float df = max(0.0, normalVCVSOutput.z);"," float sf = pow(df, specularPower);"," vec3 diffuseL = df * diffuseColor;"," vec3 specularL = sf * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"],!1).result;break;case 2:for(let e=0;e= cos(radians(lightConeAngle${e})))`," {",` attenuation = attenuation * pow(coneDot, lightExponent${e});`," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));",` diffuseL += ((df) * lightColor${e});`," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {",` float sf = sign(df)*attenuation*pow(max(1e-5,\n dot(reflect(lightDirectionVC${e},\n normalVCVSOutput),\n normalize(-vertexVC.xyz))),\n specularPower);`,` specularL += ((sf) * lightColor${e});`," }"]);s=s.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),o=id.substitute(o,"//VTK::Light::Impl",s,!1).result;break;default:zd("bad light complexity")}e.Fragment=o},e.replaceShaderNormal=(e,n,r)=>{if(t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){let n=e.Vertex,o=e.Geometry,a=e.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(n=id.substitute(n,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,n=id.substitute(n,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,o=id.substitute(o,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,o=id.substitute(o,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,a=id.substitute(a,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,a=id.substitute(a,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.haveCellNormals?(a=id.substitute(a,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,a=id.substitute(a,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.lastBoundBO.getOpenGLMode(r.getProperty().getRepresentation())===t.context.LINES?(a=id.substitute(a,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,a=id.substitute(a,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," if (abs(fdx.x) > 0.0)"," { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(a=id.substitute(a,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,a=id.substitute(a,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,a=id.substitute(a,"//VTK::Normal::Impl",[" fdx = normalize(fdx);"," fdy = normalize(fdy);"," vec3 normalVCVSOutput = normalize(cross(fdx,fdy));"," if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"," if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"]).result),e.Vertex=n,e.Geometry=o,e.Fragment=a}},e.replaceShaderPositionVC=(e,n,r)=>{t.lastBoundBO.replaceShaderPositionVC(e,n,r);let o=e.Vertex,a=e.Geometry,i=e.Fragment;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(o=id.substitute(o,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,o=id.substitute(o,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,o=id.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,a=id.substitute(a,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,a=id.substitute(a,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,i=id.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=id.substitute(i,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(o=id.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,o=id.substitute(o,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=>{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;if(t.drawingEdges)return;n=id.substitute(n,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;const a=t.openGLActor.getActiveTextures();let i=2,s=2;if(a&&a.length>0&&(i=a[0].getComponents(),a[0].getTarget()===t.context.TEXTURE_CUBE_MAP&&(s=3)),t.renderable.getColorTextureMap()&&(i=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),s=2),2===s){if(n=id.substitute(n,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,r=id.substitute(r,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,r=id.substitute(r,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,o=id.substitute(o,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,a&&a.length>=1)switch(i){case 1:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}}else switch(n=id.substitute(n,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,r=id.substitute(r,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,r=id.substitute(r,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,o=id.substitute(o,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,i){case 1:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:o=id.substitute(o,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderClip=(e,n,r)=>{let o=e.Vertex,a=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes();o=id.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`uniform vec4 clipPlanes[${e}];`,`varying float clipDistancesVSOutput[${e}];`]).result,o=id.substitute(o,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${e}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,a=id.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`varying float clipDistancesVSOutput[${e}];`]).result,a=id.substitute(a,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${e}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}e.Vertex=o,e.Fragment=a},e.getCoincidentParameters=(e,n)=>{let r={factor:0,offset:0};const o=n.getProperty();if(t.renderable.getResolveCoincidentTopology()==wl.PolygonOffset||o.getEdgeVisibility()&&o.getRepresentation()===Nd.SURFACE){const e=t.lastBoundBO.getPrimitiveType();e===_d.Points||o.getRepresentation()===Nd.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():e===_d.Lines||o.getRepresentation()===Nd.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():e!==_d.Tris&&e!==_d.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),e!==_d.TrisEdges&&e!==_d.TriStripsEdges||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters(),r.factor/=2,r.offset/=2)}const a=t._openGLRenderer.getSelector();return a&&a.getFieldAssociation()===Vd.FIELD_ASSOCIATION_POINTS&&(r.offset-=2),r},e.replaceShaderPicking=(e,n,r)=>{let o=e.Fragment,a=e.Vertex;if(o=id.substitute(o,"//VTK::Picking::Dec",["uniform int picking;","//VTK::Picking::Dec"]).result,t._openGLRenderer.getSelector()){switch(t.lastSelectionState!==Vl.ID_LOW24&&t.lastSelectionState!==Vl.ID_HIGH24||(a=id.substitute(a,"//VTK::Picking::Dec",["flat out int vertexIDVSOutput;\n","uniform int VertexIDOffset;\n"]).result,a=id.substitute(a,"//VTK::Picking::Impl"," vertexIDVSOutput = gl_VertexID + VertexIDOffset;\n").result,o=id.substitute(o,"//VTK::Picking::Dec","flat in int vertexIDVSOutput;\n").result,o=id.substitute(o,"//VTK::Picking::Impl",[" int idx = vertexIDVSOutput;","//VTK::Picking::Impl"]).result),t.lastSelectionState){case Vl.ID_LOW24:o=id.substitute(o,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);").result;break;case Vl.ID_HIGH24:o=id.substitute(o,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float((idx/16777216)%256)/255.0, 0.0, 0.0, 1.0);").result;break;default:o=id.substitute(o,"//VTK::Picking::Dec","uniform vec3 mapperIndex;").result,o=id.substitute(o,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result}e.Fragment=o,e.Vertex=a}},e.replaceShaderValues=(n,r,o)=>{if(e.replaceShaderColor(n,r,o),e.replaceShaderNormal(n,r,o),e.replaceShaderLight(n,r,o),e.replaceShaderTCoord(n,r,o),e.replaceShaderPicking(n,r,o),e.replaceShaderClip(n,r,o),e.replaceShaderCoincidentOffset(n,r,o),e.replaceShaderPositionVC(n,r,o),t.haveSeenDepthRequest){let e=n.Fragment;e=id.substitute(e,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,e=id.substitute(e,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,n.Fragment=e}},e.getNeedToRebuildShaders=(e,n,r)=>{let o=0,a=0;const i=e.getPrimitiveType(),s=t.currentInput;let l=!1;const c=s.getPointData().getNormals(),u=s.getCellData().getNormals(),d=r.getProperty().getInterpolation()===Fd.FLAT,p=r.getProperty().getRepresentation(),f=e.getOpenGLMode(p,i);if(f===t.context.TRIANGLES||u&&!c||!d&&c?l=!0:d||f!==t.context.LINES||(l=!0),r.getProperty().getLighting()&&l){o=0;const e=n.getLightsByReference();for(let t=0;t0&&(a++,0===o&&(o=1)),1===o&&(a>1||1!==n.getIntensity()||!n.lightTypeIsHeadLight())&&(o=2),o<3&&n.getPositional()&&(o=3)}}let g=!1;const m=t.lastBoundBO.getReferenceByName("lastLightComplexity"),h=t.lastBoundBO.getReferenceByName("lastLightCount");return m===o&&h===a||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:a},!0),g=!0),(!t.currentRenderPass&&t.lastRenderPassShaderReplacement||t.currentRenderPass&&t.currentRenderPass.getShaderReplacement()!==t.lastRenderPassShaderReplacement)&&(g=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||e.getShaderSourceTime().getMTime(){const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&&o.forEach((t=>{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(n,r,o)=>{if(n.getProgram().isUniformUsed("PrimitiveIDOffset")&&n.getProgram().setUniformi("PrimitiveIDOffset",t.primitiveIDOffset),n.getProgram().isUniformUsed("VertexIDOffset")&&n.getProgram().setUniformi("VertexIDOffset",t.vertexIDOffset),n.getCABO().getElementCount()&&(t.VBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){const e=t.lastBoundBO.getReferenceByName("lastLightComplexity");n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||zd("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("normalMC")&&n.getCABO().getNormalOffset()&&e>0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"normalMC",n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||zd("Error setting normalMC in shader VAO."):n.getVAO().removeAttributeArray("normalMC"),t.renderable.getCustomShaderAttributes().forEach(((e,r)=>{n.getProgram().isAttributeUsed(`${e}MC`)&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${e}MC`,n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||zd(`Error setting ${e}MC in shader VAO.`))})),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||zd("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),n.getProgram().isAttributeUsed("scalarColor")&&n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"scalarColor",n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||zd("Error setting scalarColor in shader VAO."):n.getVAO().removeAttributeArray("scalarColor"),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){const e=t.renderable.getNumberOfClippingPlanes(),r=[],a=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,i=a?c(t.tmpMat4,o.getMatrix()):o.getMatrix();a&&(f(i,i),v(i,i,a),f(i,i));for(let n=0;n{const o=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(o<2)return;const a=e.getProgram();let i=0;const s=n.getLightsByReference();for(let e=0;e0){const e=r.getColorByReference(),o=r.getIntensity();t.lightColor[0]=e[0]*o,t.lightColor[1]=e[1]*o,t.lightColor[2]=e[2]*o;const s=r.getDirection(),l=n.getActiveCamera().getViewMatrix(),c=[...s];r.lightTypeIsSceneLight()&&(c[0]=l[0]*s[0]+l[1]*s[1]+l[2]*s[2],c[1]=l[4]*s[0]+l[5]*s[1]+l[6]*s[2],c[2]=l[8]*s[0]+l[9]*s[1]+l[10]*s[2],Go(c)),t.lightDirection[0]=c[0],t.lightDirection[1]=c[1],t.lightDirection[2]=c[2],Go(t.lightDirection),a.setUniform3fArray(`lightColor${i}`,t.lightColor),a.setUniform3fArray(`lightDirectionVC${i}`,t.lightDirection),i++}}if(o<3)return;const l=n.getActiveCamera().getViewMatrix();f(l,l),i=0;for(let e=0;e0){const e=t.getTransformedPosition(),n=new Float64Array(3);In(n,e,l),a.setUniform3fArray(`lightAttenuation${i}`,t.getAttenuationValuesByReference()),a.setUniformi(`lightPositional${i}`,t.getPositional()),a.setUniformf(`lightExponent${i}`,t.getExponent()),a.setUniformf(`lightConeAngle${i}`,t.getConeAngle()),a.setUniform3fArray(`lightPositionVC${i}`,[n[0],n[1],n[2]]),i++}}},e.setCameraShaderParameters=(e,a,i)=>{const s=e.getProgram(),l=t.openGLCamera.getKeyMatrices(a),c=a.getActiveCamera(),u=t.openGLCamera.getKeyMatrixTime().getMTime(),d=s.getLastCameraMTime(),f=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,g=i.getIsIdentity(),m=g?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();if(i.getCoordinateSystem()===jd.DISPLAY){const e=t._openGLRenderer.getTiledSizeAndOrigin();p(t.tmpMat4),t.tmpMat4[0]=2/e.usize,t.tmpMat4[12]=-1,t.tmpMat4[5]=2/e.vsize,t.tmpMat4[13]=-1,v(t.tmpMat4,t.tmpMat4,f),s.setUniformMatrix("MCPCMatrix",t.tmpMat4)}else s.setUniformMatrix("MCPCMatrix",n([l.wcpc,m.mcwc,f],r,t.tmpMat4));s.isUniformUsed("MCVCMatrix")&&s.setUniformMatrix("MCVCMatrix",n([l.wcvc,m.mcwc,f],r,t.tmpMat4)),s.isUniformUsed("normalMatrix")&&s.setUniformMatrix3x3("normalMatrix",n([l.normalMatrix,m.normalMatrix],o,t.tmpMat3)),d!==u&&(s.isUniformUsed("cameraParallel")&&s.setUniformi("cameraParallel",c.getParallelProjection()),s.setLastCameraMTime(u)),g||s.setLastCameraMTime(0)},e.setPropertyShaderParameters=(e,n,r)=>{const o=e.getProgram();let a=r.getProperty(),i=a.getOpacity(),s=t.drawingEdges?a.getEdgeColorByReference():a.getAmbientColorByReference(),l=t.drawingEdges?a.getEdgeColorByReference():a.getDiffuseColorByReference(),c=t.drawingEdges?1:a.getAmbient(),u=t.drawingEdges?0:a.getDiffuse(),d=t.drawingEdges?0:a.getSpecular();const p=a.getSpecularPower();o.setUniformf("opacityUniform",i),o.setUniform3fArray("ambientColorUniform",s),o.setUniform3fArray("diffuseColorUniform",l),o.setUniformf("ambient",c),o.setUniformf("diffuse",u);const f=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(f<1)return;let g=a.getSpecularColorByReference();if(o.setUniform3fArray("specularColorUniform",g),o.setUniformf("specularPowerUniform",p),o.setUniformf("specular",d),o.isUniformUsed("ambientIntensityBF")){if(a=r.getBackfaceProperty(),i=a.getOpacity(),s=a.getAmbientColor(),c=a.getAmbient(),l=a.getDiffuseColor(),u=a.getDiffuse(),g=a.getSpecularColor(),d=a.getSpecular(),o.setUniformf("ambientIntensityBF",c),o.setUniformf("diffuseIntensityBF",u),o.setUniformf("opacityUniformBF",i),o.setUniform3fArray("ambientColorUniformBF",s),o.setUniform3fArray("diffuseColorUniformBF",l),f<1)return;o.setUniformf("specularIntensityBF",d),o.setUniform3fArray("specularColorUniformBF",g),o.setUniformf("specularPowerUniformBF",p)}},e.updateMaximumPointCellIds=(e,n)=>{const r=t._openGLRenderer.getSelector();if(r){if(t.selectionWebGLIdsToVTKIds?.points?.length){const e=t.selectionWebGLIdsToVTKIds.points.length;r.setMaximumPointId(e-1)}if(t.selectionWebGLIdsToVTKIds?.cells?.length){const e=t.selectionWebGLIdsToVTKIds.cells.length;r.setMaximumCellId(e-1)}r.getFieldAssociation()===Vd.FIELD_ASSOCIATION_POINTS&&(t.pointPicking=!0)}},e.renderPieceStart=(n,r)=>{t.primitiveIDOffset=0,t.vertexIDOffset=0;const o=function(e){const t=e.getSelector();return t?t.getCurrentPass():Vl.MIN_KNOWN_PASS-1}(t._openGLRenderer);t.lastSelectionState!==o&&(t.selectionStateChanged.modified(),t.lastSelectionState=o),t._openGLRenderer.getSelector()&&t._openGLRenderer.getSelector().renderProp(r),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&&t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=(n,r)=>{const o=r.getProperty().getRepresentation(),a=r.getProperty().getEdgeVisibility()&&o===Nd.SURFACE,i=t._openGLRenderer.getSelector(),s=i&&i.getFieldAssociation()===Vd.FIELD_ASSOCIATION_POINTS&&(t.lastSelectionState===Vl.ID_LOW24||t.lastSelectionState===Vl.ID_HIGH24);for(let i=_d.Start;i<_d.End;i++)t.primitives[i].setPointPicking(s),t.primitives[i].getCABO().getElementCount()&&(t.drawingEdges=a&&(i===_d.TrisEdges||i===_d.TriStripsEdges),t.drawingEdges&&(t.renderDepth||t.lastSelectionState>=0)||(t.lastBoundBO=t.primitives[i],t.primitiveIDOffset+=t.primitives[i].drawArrays(n,r,o,e),t.vertexIDOffset+=t.primitives[i].getCABO().getElementCount()))},e.renderPieceFinish=(e,n)=>{t.LastBoundBO&&t.LastBoundBO.getVAO().release(),t.renderable.getColorTextureMap()&&t.internalColorTexture.deactivate()},e.renderPiece=(n,r)=>{if(e.invokeEvent(Wd),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(Hd),!t.currentInput)return void zd("No input!");if(!t.currentInput.getPoints||!t.currentInput.getPoints().getNumberOfValues())return;const o=t.context,a=r.getProperty().getBackfaceCulling(),i=r.getProperty().getFrontfaceCulling();a||i?i?(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(t._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)):t._openGLRenderWindow.disableCullFace(),e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)},e.computeBounds=(n,r)=>{e.getInput()?t.bounds=e.getInput().getBounds():va(t.bounds)},e.updateBufferObjects=(t,n)=>{e.getNeedToRebuildBufferObjects(t,n)&&e.buildBufferObjects(t,n),e.updateMaximumPointCellIds()},e.getNeedToRebuildBufferObjects=(n,r)=>{const o=t.VBOBuildTime.getMTime();return o{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,1);const o=t.renderable.getColorMapColors();t.haveCellScalars=!1;const a=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&&(a!==kd.USE_CELL_DATA&&a!==kd.USE_CELL_FIELD_DATA&&a!==kd.USE_FIELD_DATA&&r.getPointData().getScalars()||a===kd.USE_POINT_FIELD_DATA||!o||(t.haveCellScalars=!0));let i=n.getProperty().getInterpolation()!==Fd.FLAT?r.getPointData().getNormals():null;null===i&&r.getCellData().getNormals()&&(t.haveCellNormals=!0,i=r.getCellData().getNormals());const s=n.getProperty().getRepresentation();let l=r.getPointData().getTCoords();t.openGLActor.getActiveTextures()||(l=null);let c=!1;if(t.renderable.getColorCoordinates()){l=t.renderable.getColorCoordinates(),c=t.renderable.getAreScalarsMappedFromCells(),t.internalColorTexture||(t.internalColorTexture=Dd.newInstance({resizable:!0}));const e=t.internalColorTexture;e.setMinificationFilter(Ud.NEAREST),e.setMagnificationFilter(Ud.NEAREST),e.setWrapS(Gd.CLAMP_TO_EDGE),e.setWrapT(Gd.CLAMP_TO_EDGE),e.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t.renderable.getColorTextureMap(),r=n.getExtent(),o=n.getPointData().getScalars();e.create2DFromRaw(r[1]-r[0]+1,r[3]-r[2]+1,o.getNumberOfComponents(),o.getDataType(),o.getData()),e.activate(),e.sendParameters(),e.deactivate()}const u=`${r.getMTime()}A${s}B${r.getMTime()}C${i?i.getMTime():1}D${o?o.getMTime():1}E${n.getProperty().getEdgeVisibility()}F${l?l.getMTime():1}`;if(t.VBOBuildString!==u){const e={points:r.getPoints(),normals:i,tcoords:l,colors:o,cellOffset:0,vertexOffset:0,useTCoordsPerCell:c,haveCellScalars:t.haveCellScalars,haveCellNormals:t.haveCellNormals,customAttributes:t.renderable.getCustomShaderAttributes().map((e=>r.getPointData().getArrayByName(e)))};t.renderable.getPopulateSelectionSettings()&&(t.selectionWebGLIdsToVTKIds={points:null,cells:null});const a=[{inRep:"verts",cells:r.getVerts()},{inRep:"lines",cells:r.getLines()},{inRep:"polys",cells:r.getPolys()},{inRep:"strips",cells:r.getStrips()},{inRep:"polys",cells:r.getPolys()},{inRep:"strips",cells:r.getStrips()}],d=n.getProperty().getEdgeVisibility()&&s===Nd.SURFACE;for(let n=_d.Start;n<_d.End;n++)n!==_d.TrisEdges&&n!==_d.TriStripsEdges?(e.cellOffset+=t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,s,e,t.selectionWebGLIdsToVTKIds),e.vertexOffset+=t.primitives[n].getCABO().getElementCount()):d?t.primitives[n].getCABO().createVBO(a[n].cells,a[n].inRep,Nd.WIREFRAME,{...e,tcoords:null,colors:null,haveCellScalars:!1,haveCellNormals:!1}):t.primitives[n].releaseGraphicsResources();t.renderable.getPopulateSelectionSettings()&&t.renderable.setSelectionWebGLIdsToVTKIds(t.selectionWebGLIdsToVTKIds),t.VBOBuildString=u}t.VBOBuildTime.modified()},e.getAllocatedGPUMemoryInBytes=()=>{let e=0;return t.primitives.forEach((t=>{e+=t.getAllocatedGPUMemoryInBytes()})),e}}const Kd={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:Vl.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};const qd=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kd,n),Xt.extend(e,t,n),Bd(e,t,n),Ld(e,t,n),t.primitives=[],t.primTypes=_d,t.tmpMat3=ue(new Float64Array(9)),t.tmpMat4=p(new Float64Array(16));for(let e=_d.Start;e<_d.End;e++)t.primitives[e]=md.newInstance(),t.primitives[e].setPrimitiveType(e),t.primitives[e].set({lastLightComplexity:0,lastLightCount:0,lastSelectionPass:!1},!0);St(e,t,["context"]),t.VBOBuildTime={},ht(t.VBOBuildTime,{mtime:0}),t.selectionStateChanged={},ht(t.selectionStateChanged,{mtime:0}),$d(e,t)}),"vtkOpenGLPolyDataMapper");tn("vtkMapper",qd);const{ColorMode:Xd,ScalarMode:Yd,GetArray:Qd}=ll;function Zd(e,t){t.classHierarchy.push("vtkMapper2D"),e.createDefaultLookupTable=()=>{t.lookupTable=Al.newInstance()},e.getColorModeAsString=()=>Wt.enumToString(Xd,t.colorMode),e.setColorModeToDefault=()=>e.setColorMode(0),e.setColorModeToMapScalars=()=>e.setColorMode(1),e.setColorModeToDirectScalars=()=>e.setColorMode(2),e.getScalarModeAsString=()=>Wt.enumToString(Yd,t.scalarMode),e.setScalarModeToDefault=()=>e.setScalarMode(0),e.setScalarModeToUsePointData=()=>e.setScalarMode(1),e.setScalarModeToUseCellData=()=>e.setScalarMode(2),e.setScalarModeToUsePointFieldData=()=>e.setScalarMode(3),e.setScalarModeToUseCellFieldData=()=>e.setScalarMode(4),e.setScalarModeToUseFieldData=()=>e.setScalarMode(5),e.getAbstractScalars=(e,n,r,o,a)=>{if(!e||!t.scalarVisibility)return{scalars:null,cellFLag:!1};let i=null,s=!1;if(n===Yd.DEFAULT)i=e.getPointData().getScalars(),i||(i=e.getCellData().getScalars(),s=!0);else if(n===Yd.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===Yd.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===Yd.USE_POINT_FIELD_DATA){const t=e.getPointData();i=r===Qd.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===Yd.USE_CELL_FIELD_DATA){const t=e.getCellData();s=!0,i=r===Qd.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}else if(n===Yd.USE_FIELD_DATA){const t=e.getFieldData();i=r===Qd.BY_ID?t.getArrayByIndex(o):t.getArrayByName(a)}return{scalars:i,cellFlag:s}},e.getLookupTable=()=>(t.lookupTable||e.createDefaultLookupTable(),t.lookupTable),e.getMTime=()=>{let e=t.mtime;if(null!==t.lookupTable){const n=t.lookupTable.getMTime();e=n>e?n:e}return e},e.mapScalars=(n,r)=>{const o=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!o)return void(t.colorMapColors=null);const a=`${e.getMTime()}${o.getMTime()}${r}`;if(t.colorBuildString===a)return;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]);const i=e.getLookupTable();i&&(i.build(),t.colorMapColors=i.mapScalars(o,t.colorMode,t.fieldDataTupleId)),t.colorBuildString=`${e.getMTime()}${o.getMTime()}${r}`},e.getPrimitiveCount=()=>{const t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getPolys().getNumberOfCells()}}}const Jd={static:!1,lookupTable:null,scalarVisibility:!1,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,transformCoordinate:null,viewSpecificProperties:null,customShaderAttributes:[]};function ep(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jd,n),Os(e,t,n),Wt.get(e,t,["colorMapColors"]),Wt.setGet(e,t,["arrayAccessMode","colorByArrayName","colorMode","lookupTable","renderTime","scalarMode","scalarVisibility","static","transformCoordinate","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),Wt.setGetArray(e,t,["scalarRange"],2),t.viewSpecificProperties||(t.viewSpecificProperties={}),Zd(e,t)}var tp={newInstance:Wt.newInstance(ep,"vtkMapper2D"),extend:ep};const np={BACKGROUND:0,FOREGROUND:1};var rp={DisplayLocation:np};const{primTypes:op}=md,{ScalarMode:ap}=tp,{vtkErrorMacro:ip}=Ht,sp={type:"StartEvent"},lp={type:"EndEvent"};function cp(e,t){t.classHierarchy.push("vtkOpenGLPolyDataMapper2D"),e.buildPass=n=>{n&&(t.openGLActor2D=e.getFirstAncestorOfType("vtkOpenGLActor2D"),t._openGLRenderer=t.openGLActor2D.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),t.openGLCamera=t._openGLRenderer.getViewNodeFor(t._openGLRenderer.getRenderable().getActiveCamera()))},e.overlayPass=t=>{t&&e.render()},e.getShaderTemplate=(e,t,n)=>{e.Vertex="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyData2DVS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\n// all variables that represent positions or directions have a suffix\n// indicating the coordinate system they are in. The possible values are\n// MC - Model Coordinates\n// WC - WC world coordinates\n// VC - View Coordinates\n// DC - Display Coordinates\n\nin vec4 vertexWC;\n\n// frag position in VC\n//VTK::PositionVC::Dec\n\n// material property values\n//VTK::Color::Dec\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\nuniform mat4 WCVCMatrix; // World to view matrix\n\nvoid main()\n{\n // Apple Bug\n //VTK::PrimID::Impl\n\n gl_Position = WCVCMatrix*vertexWC;\n\n //VTK::TCoord::Impl\n\n //VTK::Color::Impl\n\n //VTK::PositionVC::Impl\n}\n",e.Fragment="//VTK::System::Dec\n\n/*=========================================================================\n\n Program: Visualization Toolkit\n Module: vtkPolyData2DFS.glsl\n\n Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen\n All rights reserved.\n See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n\n This software is distributed WITHOUT ANY WARRANTY; without even\n the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n PURPOSE. See the above copyright notice for more information.\n\n=========================================================================*/\n\nuniform int PrimitiveIDOffset;\n\n// Texture coordinates\n//VTK::TCoord::Dec\n\n// Scalar coloring\n//VTK::Color::Dec\n\n// Depth Peeling\n//VTK::DepthPeeling::Dec\n\n// picking support\n//VTK::Picking::Dec\n\n// the output of this shader\n//VTK::Output::Dec\n\n// Apple Bug\n//VTK::PrimID::Dec\n\nvoid main()\n{\n // Apple Bug\n //VTK::PrimID::Impl\n\n //VTK::Color::Impl\n //VTK::TCoord::Impl\n\n //VTK::DepthPeeling::Impl\n //VTK::Picking::Impl\n\n if (gl_FragData[0].a <= 0.0)\n {\n discard;\n }\n}\n",e.Geometry=""},e.render=()=>{const n=t._openGLRenderWindow.getContext();if(t.context!==n){t.context=n;for(let e=op.Start;e{e.invokeEvent(sp),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(lp),t.currentInput?t.currentInput.getPoints&&t.currentInput.getPoints().getNumberOfValues()&&(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):ip("No input!")},e.renderPieceStart=(n,r)=>{t.primitiveIDOffset=0,t._openGLRenderer.getSelector()&&(t._openGLRenderer.getSelector().getCurrentPass(),t._openGLRenderer.getSelector().renderProp(r)),e.updateBufferObjects(n,r),t.lastBoundBO=null},e.getNeedToRebuildShaders=(e,n,r)=>e.getShaderSourceTime().getMTime(){e.getNeedToRebuildBufferObjects(t,n)&&e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=(n,r)=>{const o=t.VBOBuildTime.getMTime();return!!(o{const r=t.currentInput;if(null===r)return;t.renderable.mapScalars(r,n.getProperty().getOpacity());const o=t.renderable.getColorMapColors();t.haveCellScalars=!1;const a=t.renderable.getScalarMode();t.renderable.getScalarVisibility()&&(a!==ap.USE_CELL_DATA&&a!==ap.USE_CELL_FIELD_DATA&&a!==ap.USE_FIELD_DATA&&r.getPointData().getScalars()||a===ap.USE_POINT_FIELD_DATA||!o||(t.haveCellScalars=!0));const i=n.getProperty().getRepresentation();let s=r.getPointData().getTCoords();t.openGLActor2D.getActiveTextures()||(s=null);const l=t.renderable.getTransformCoordinate(),c=e.getRenderWindow().getViews()[0].getViewportSize(e),u=`${r.getMTime()}A${i}B${r.getMTime()}C${o?o.getMTime():1}D${s?s.getMTime():1}E${l?e.getMTime():1}F${c}`;if(t.VBOBuildString!==u){let n=r.getPoints();if(l){const t=dc.newInstance(),r=n.getNumberOfPoints();t.setNumberOfPoints(r);const o=[];for(let a=0;ar.getPointData().getArrayByName(e)))};a.cellOffset+=t.primitives[op.Points].getCABO().createVBO(r.getVerts(),"verts",i,a),a.cellOffset+=t.primitives[op.Lines].getCABO().createVBO(r.getLines(),"lines",i,a),a.cellOffset+=t.primitives[op.Tris].getCABO().createVBO(r.getPolys(),"polys",i,a),a.cellOffset+=t.primitives[op.TriStrips].getCABO().createVBO(r.getStrips(),"strips",i,a),t.VBOBuildTime.modified(),t.VBOBuildString=u}},e.renderPieceDraw=(n,r)=>{const o=r.getProperty().getRepresentation();t.context.depthMask(!0);for(let a=op.Start;a{t.lastBoundBO&&t.lastBoundBO.getVAO().release()},e.replaceShaderValues=(t,n,r)=>{e.replaceShaderColor(t,n,r),e.replaceShaderTCoord(t,n,r),e.replaceShaderPicking(t,n,r),e.replaceShaderPositionVC(t,n,r)},e.replaceShaderColor=(e,n,r)=>{let o=e.Vertex,a=e.Geometry,i=e.Fragment;t.haveCellScalars&&(i=id.substitute(i,"//VTK::Color::Dec",["uniform samplerBuffer texture1;"]).result,i=id.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = texelFetchBuffer(texture1, gl_PrimitiveID + PrimitiveIDOffset);"]).result),0!==t.lastBoundBO.getCABO().getColorComponents()?(o=id.substitute(o,"//VTK::Color::Dec",["in vec4 diffuseColor;","out vec4 fcolorVSOutput;"]).result,o=id.substitute(o,"//VTK::Color::Impl",["fcolorVSOutput = diffuseColor;"]).result,a=id.substitute(a,"//VTK::Color::Dec",["in vec4 fcolorVSOutput[];\n","out vec4 fcolorGSOutput;"]).result,a=id.substitute(a,"//VTK::Color::Impl",["fcolorGSOutput = fcolorVSOutput[i];"]).result,i=id.substitute(i,"//VTK::Color::Dec",["in vec4 fcolorVSOutput;"]).result,i=id.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = fcolorVSOutput;"]).result):(i=id.substitute(i,"//VTK::Color::Dec",["uniform vec4 diffuseColor;"]).result,i=id.substitute(i,"//VTK::Color::Impl",["gl_FragData[0] = diffuseColor;"]).result),e.Vertex=o,e.Geometry=a,e.Fragment=i},e.replaceShaderTCoord=(e,n,r)=>{if(t.lastBoundBO.getCABO().getTCoordOffset()){let n=e.Vertex,r=e.Geometry,o=e.Fragment;const a=t.lastBoundBO.getCABO().getTCoordComponents();1===a?(n=id.substitute(n,"//VTK::TCoord::Dec",["in float tcoordMC;","out float tcoordVCVSOutput;"]).result,n=id.substitute(n,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,r=id.substitute(r,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput[];\n","out float tcoordVCGSOutput;"]).result,r=id.substitute(r,["//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,o=id.substitute(o,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,o=id.substitute(o,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));"]).result):2===a&&(n=id.substitute(n,"//VTK::TCoord::Dec",["in vec2 tcoordMC;","out vec2 tcoordVCVSOutput;"]).result,n=id.substitute(n,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,r=id.substitute(r,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];\n","out vec2 tcoordVCGSOutput;"]).result,r=id.substitute(r,"//VTK::TCoord::Impl",["tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,o=id.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,o=id.substitute(o,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);"]).result),t.haveCellScalars&&(r=id.substitute(r,"//VTK::PrimID::Impl",["gl_PrimitiveID = gl_PrimitiveIDIn;"]).result),e.Vertex=n,e.Geometry=r,e.Fragment=o}},e.replaceShaderPicking=(e,t,n)=>{let r=e.Fragment;r=id.substitute(r,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,r=id.substitute(r,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,e.Fragment=r},e.replaceShaderPositionVC=(e,n,r)=>{t.lastBoundBO.replaceShaderPositionVC(e,n,r)},e.invokeShaderCallbacks=(e,n,r)=>{const o=t.renderable.getViewSpecificProperties().ShadersCallbacks;o&&o.forEach((t=>{t.callback(t.userData,e,n,r)}))},e.setMapperShaderParameters=(e,n,r)=>{if(e.getProgram().isUniformUsed("PrimitiveIDOffset")&&e.getProgram().setUniformi("PrimitiveIDOffset",t.primitiveIDOffset),e.getProgram().isAttributeUsed("vertexWC")&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"vertexWC",e.getCABO().getVertexOffset(),e.getCABO().getStride(),t.context.FLOAT,3,!1)||ip("Error setting vertexWC in shader VAO.")),e.getCABO().getElementCount()&&(t.VBOBuildTime.getMTime()>e.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime())){t.renderable.getCustomShaderAttributes().forEach(((n,r)=>{e.getProgram().isAttributeUsed(`${n}MC`)&&(e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),`${n}MC`,e.getCABO().getCustomData()[r].offset,e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getCustomData()[r].components,!1)||ip(`Error setting ${n}MC in shader VAO.`))})),e.getProgram().isAttributeUsed("tcoordMC")&&e.getCABO().getTCoordOffset()?e.getVAO().addAttributeArray(e.getProgram(),e.getCABO(),"tcoordMC",e.getCABO().getTCoordOffset(),e.getCABO().getStride(),t.context.FLOAT,e.getCABO().getTCoordComponents(),!1)||ip("Error setting tcoordMC in shader VAO."):e.getVAO().removeAttributeArray("tcoordMC"),t.internalColorTexture&&e.getProgram().isUniformUsed("texture1")&&e.getProgram().setUniformi("texture1",t.internalColorTexture.getTextureUnit());const o=t.openGLActor2D.getActiveTextures();if(o)for(let t=0;t{const o=t.renderable.getColorMapColors();if(!o||0===o.getNumberOfComponents()){const t=e.getProgram(),n=r.getProperty(),o=n.getOpacity(),a=n.getColor(),i=[a[0],a[1],a[2],o];t.setUniform4f("diffuseColor",i)}},e.setLightingShaderParameters=(e,t,n)=>{},e.setCameraShaderParameters=(e,n,o)=>{const a=e.getProgram(),i=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,s=n.getRenderWindow().getViews()[0].getViewportSize(n),l=n.getViewport(),c=o.getActualPositionCoordinate().getComputedDoubleViewportValue(n),u=[0,0,1,1],d=[0,0,1,1];if(d[0]=l[0]>=u[0]?l[0]:u[0],d[1]=l[1]>=u[1]?l[1]:u[1],d[2]=l[2]<=u[2]?l[2]:u[2],d[3]=l[3]<=u[3]?l[3]:u[3],d[0]>=d[2])return;if(d[1]>=d[3])return;s[0]=Co(s[0]*(d[2]-d[0])/(l[2]-l[0])),s[1]=Co(s[1]*(d[3]-d[1])/(l[3]-l[1]));const g=t._openGLRenderer.getParent().getSize(),m=Co(c[0]-(d[0]-l[0])*g[0]),h=Co(c[1]-(d[1]-l[1])*g[1]),v=-m;let b=-m+s[0];const y=-h;let T=-h+s[1];v===b&&(b=v+1),y===T&&(T=y+1);const x=p(new Float64Array(16));var S,C,A;x[0]=2/(b-v),x[5]=2/(T-y),x[3]=-1*(b+v)/(b-v),x[7]=-1*(T+y)/(T-y),x[10]=0,x[11]=o.getProperty().getDisplayLocation()===np.FOREGROUND?-1:1,x[15]=1,f(x,x),a.setUniformMatrix("WCVCMatrix",(S=[x,i],C=r,A=t.tmpMat4,C.identity(A),S.reduce(((e,t,n)=>0===n?t?C.copy(e,t):C.identity(e):t?C.multiply(e,e,t):e),A)))},e.getAllocatedGPUMemoryInBytes=()=>{let e=0;return t.primitives.forEach((t=>{e+=t.getAllocatedGPUMemoryInBytes()})),e}}const up={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};const dp=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,up,n),Xt.extend(e,t,n),Bd(e,t,n),Ld(e,t,n),t.primitives=[],t.primTypes=op,t.tmpMat4=p(new Float64Array(16));for(let e=op.Start;e{const n=e.getLastSize(),r=(n[0]/700)**.8,o=(n[1]/700)**.8,a=Math.min(r,o),i=e.getAxisTextStyle(),s=e.getTickTextStyle();Object.assign(i,t.axisTextStyle),Object.assign(s,t.tickTextStyle),i.fontSize=Math.max(24*a,12),e.getLastAspectRatio()>1?s.fontSize=Math.max(20*a,10):s.fontSize=Math.max(16*a,10);const l=e.updateTextureAtlas();e.setTopTitle(!1);const c=e.getBoxSizeByReference();if(e.getLastAspectRatio()>1)e.setTickLabelPixelOffset(.3*s.fontSize),l.titleWidth<=l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize?(e.setTopTitle(!0),e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.98-c[0],-.92])):(e.setAxisTitlePixelOffset(.2*s.fontSize),c[0]=2*(l.titleHeight+e.getAxisTitlePixelOffset()+l.tickWidth+e.getTickLabelPixelOffset()+.8*s.fontSize)/n[0],e.setBoxPosition([.99-c[0],-.92])),c[1]=Math.max(1.2,Math.min(1.84/o,1.84));else{e.setAxisTitlePixelOffset(1.2*s.fontSize),e.setTickLabelPixelOffset(.1*s.fontSize);const t=2*(.8*s.fontSize+l.titleHeight+e.getAxisTitlePixelOffset())/n[1],r=2*l.tickWidth/n[0];c[0]=Math.min(1.9,Math.max(1.4,1.4*r*(e.getTicks().length+3))),c[1]=t,e.setBoxPosition([-.5*c[0],-.97])}e.recomputeBarSegments(l)}}function mp(e,t){return e=>{const t=e.getLastTickBounds(),n=io().domain([t[0],t[1]]),r=n.ticks(5),o=n.tickFormat(5);e.setTicks(r),e.setTickStrings(r.map(o))}}function hp(e,t){t.classHierarchy.push("vtkScalarBarActorHelper"),e.setRenderable=n=>{t.renderable!==n&&(t.renderable=n,t.barActor.setProperty(n.getProperty()),t.barActor.setParentProp(n),t.barActor.setCoordinateSystemToDisplay(),t.tmActor.setProperty(n.getProperty()),t.tmActor.setParentProp(n),t.tmActor.setCoordinateSystemToDisplay(),t.generateTicks=n.generateTicks,t.axisTextStyle={...n.getAxisTextStyle()},t.tickTextStyle={...n.getTickTextStyle()},e.modified())},e.updateAPISpecificData=(n,r,o)=>{t.lastSize[0]===n[0]&&t.lastSize[1]===n[1]||(t.lastSize[0]=n[0],t.lastSize[1]=n[1],t.lastAspectRatio=n[0]/n[1],t.forceUpdate=!0);const a=t.renderable.getScalarsToColors();if(a&&t.renderable.getVisibility()&&(t.barMapper.setLookupTable(a),t.camera=r,t.renderWindow=o,t.forceUpdate||Math.max(a.getMTime(),e.getMTime(),t.renderable.getMTime())>t.lastRebuildTime.getMTime())){const n=a.getMappingRange();if(t.lastTickBounds=[...n],t.renderable.getGenerateTicks()(e),t.renderable.getAutomated())t.renderable.getAutoLayout()(e);else{t.axisTextStyle={...t.renderable.getAxisTextStyle()},t.tickTextStyle={...t.renderable.getTickTextStyle()},t.barPosition=[...t.renderable.getBarPosition()],t.barSize=[...t.renderable.getBarSize()],t.boxPosition=[...t.renderable.getBoxPosition()],t.boxSize=[...t.renderable.getBoxSize()],t.axisTitlePixelOffset=t.renderable.getAxisTitlePixelOffset(),t.tickLabelPixelOffset=t.renderable.getTickLabelPixelOffset();const n=e.updateTextureAtlas();e.recomputeBarSegments(n)}e.updatePolyDataForLabels(),e.updatePolyDataForBarSegments(),t.lastRebuildTime.modified(),t.forceUpdate=!1}},e.updateTextureAtlas=()=>{t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left";const n={},r=new Map;let o=0,a=1;fp(t.tmContext,t.axisTextStyle);let i=t.tmContext.measureText(t.renderable.getAxisLabel()),s={height:i.actualBoundingBoxAscent+2,startingHeight:a,width:i.width+2,textStyle:t.axisTextStyle};r.set(t.renderable.getAxisLabel(),s),a+=s.height,o=s.width,n.titleWidth=s.width,n.titleHeight=s.height,n.tickWidth=0,n.tickHeight=0,fp(t.tmContext,t.tickTextStyle);const l=[...e.getTickStrings(),"NaN","Below","Above"];for(let e=0;e{e.tcoords=[0,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight-e.height)/a,e.width/o,(a-e.startingHeight)/a,0,(a-e.startingHeight)/a]})),t.tmCanvas.width=o,t.tmCanvas.height=a,t.tmContext.textBaseline="bottom",t.tmContext.textAlign="left",t.tmContext.clearRect(0,0,o,a),r.forEach(((e,n)=>{fp(t.tmContext,e.textStyle),t.tmContext.fillText(n,1,e.startingHeight+e.height-1)})),t.tmTexture.setCanvas(t.tmCanvas),t.tmTexture.modified(),t._tmAtlas=r,n},e.computeBarSize=e=>{t.vertical=t.boxSize[1]>t.boxSize[0];const n=2*e.tickHeight/t.lastSize[1],r=[1,1];if(t.vertical){const o=2*(e.tickWidth+t.tickLabelPixelOffset)/t.lastSize[0];if(t.topTitle){const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0]-o,t.barSize[1]=t.boxSize[1]-n}else{const n=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[0];t.barSize[0]=t.boxSize[0]-n-o,t.barSize[1]=t.boxSize[1]}t.barPosition[0]=t.boxPosition[0]+o,t.barPosition[1]=t.boxPosition[1],r[1]=n}else{const n=(2*e.tickWidth-8)/t.lastSize[0],o=2*(e.titleHeight+t.axisTitlePixelOffset)/t.lastSize[1];t.barSize[0]=t.boxSize[0],t.barPosition[0]=t.boxPosition[0],t.barSize[1]=t.boxSize[1]-o,t.barPosition[1]=t.boxPosition[1],r[0]=n}return r},e.recomputeBarSegments=n=>{const r=e.computeBarSize(n);t.barSegments=[];const o=[0,0],a=t.vertical?1:0,i=t.vertical?.01:.02;function s(e,n){t.barSegments.push({corners:[[...o],[o[0]+r[0],o[1]],[o[0]+r[0],o[1]+r[1]],[o[0],o[1]+r[1]]],scalars:n,title:e}),o[a]+=r[a]+i}t.renderable.getDrawNanAnnotation()&&t.renderable.getScalarsToColors().getNanColor()&&s("NaN",[NaN,NaN,NaN,NaN]),t.renderable.getDrawBelowRangeSwatch()&&t.renderable.getScalarsToColors().getUseBelowRangeColor?.()&&s("Below",[-.1,-.1,-.1,-.1]);const l=t.renderable.getScalarsToColors().getUseAboveRangeColor?.();o[a]+=i;const c=r[a];r[a]=l?1-2*i-r[a]-o[a]:1-i-o[a],s("ticks",t.vertical?[0,0,.995,.995]:[0,.995,.995,0]),t.renderable.getDrawAboveRangeSwatch()&&l&&(r[a]=c,o[a]+=i,s("Above",[1.1,1.1,1.1,1.1]))};const n=new Float64Array(3);e.createPolyDataForOneLabel=(e,r,o,a,i,s)=>{const l=t._tmAtlas.get(e);if(!l)return;let c=s.ptIdx,u=s.cellIdx;n[0]=(.5*r[0]+.5)*t.lastSize[0],n[1]=(.5*r[1]+.5)*t.lastSize[1],n[2]=r[2],n[0]+=i[0],n[1]+=i[1];const d=[],p="vertical"===a?[1,0]:[0,1];"vertical"===a?(d[0]=l.width,d[1]=-l.height,"middle"===o[0]?n[1]-=l.width/2:"right"===o[0]&&(n[1]-=l.width),"middle"===o[1]?n[0]+=l.height/2:"top"===o[1]&&(n[0]+=l.height)):(d[0]=l.width,d[1]=l.height,"middle"===o[0]?n[0]-=l.width/2:"right"===o[0]&&(n[0]-=l.width),"middle"===o[1]?n[1]-=l.height/2:"top"===o[1]&&(n[1]-=l.height)),s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[0],s.tcoords[2*c+1]=l.tcoords[1],c++,n[p[0]]+=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[2],s.tcoords[2*c+1]=l.tcoords[3],c++,n[p[1]]+=d[1],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[4],s.tcoords[2*c+1]=l.tcoords[5],c++,n[p[0]]-=d[0],s.points[3*c]=n[0],s.points[3*c+1]=n[1],s.points[3*c+2]=n[2],s.tcoords[2*c]=l.tcoords[6],s.tcoords[2*c+1]=l.tcoords[7],c++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-3,s.polys[4*u+3]=c-2,u++,s.polys[4*u]=3,s.polys[4*u+1]=c-4,s.polys[4*u+2]=c-2,s.polys[4*u+3]=c-1,s.ptIdx+=4,s.cellIdx+=2};const r=new Float64Array(3);e.updatePolyDataForLabels=()=>{const n=e.getTickStrings().length+t.barSegments.length,o=4*n,a=2*n,i=new Float64Array(3*o),s=new Uint16Array(4*a),l=new Float32Array(2*o),c={ptIdx:0,cellIdx:0,polys:s,points:i,tcoords:l},u=t.vertical?0:1,d=t.vertical?1:0;r[2]=-.99;const p=t.vertical?["right","middle"]:["middle","bottom"];let f=[0,1];const g=[0,0];t.vertical?(g[0]=-t.tickLabelPixelOffset,t.topTitle?(r[0]=t.boxPosition[0]+.5*t.boxSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,["middle","bottom"],"horizontal",[0,t.axisTitlePixelOffset],c)):(r[0]=t.barPosition[0]+t.barSize[0],r[1]=t.barPosition[1]+.5*t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,["middle","top"],"vertical",[t.axisTitlePixelOffset,0],c)),f=[-1,0]):(g[1]=t.tickLabelPixelOffset,r[0]=t.barPosition[0]+.5*t.barSize[0],r[1]=t.barPosition[1]+t.barSize[1],e.createPolyDataForOneLabel(t.renderable.getAxisLabel(),r,["middle","bottom"],"horizontal",[0,t.axisTitlePixelOffset],c)),r[u]=t.barPosition[u]+(.5*f[u]+.5)*t.barSize[u],r[d]=t.barPosition[d]+.5*t.barSize[d];let m=null;for(let n=0;n{const e=t.renderable.getScalarsToColors();let n=0;t.renderable.getDrawNanAnnotation()&&e.getNanColor()&&(n+=1),t.renderable.getDrawBelowRangeSwatch()&&e.getUseBelowRangeColor?.()&&(n+=1),t.renderable.getDrawAboveRangeSwatch()&&e.getUseAboveRangeColor?.()&&(n+=1);const o=4*(1+n),a=o;let i=1;e.getVectorMode()===pp.COMPONENT&&(i=e.getVectorComponent()+1);const s=new Float64Array(3*o),l=new Uint16Array(5*a),c=new Float32Array(o*i);let u=0,d=0;for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{renderable:null};Object.assign(t,{},n),Wt.obj(e,t),Wt.setGet(e,t,["axisTitlePixelOffset","tickLabelPixelOffset","renderable","topTitle","ticks","tickStrings"]),Wt.get(e,t,["lastSize","lastAspectRatio","lastTickBounds","axisTextStyle","tickTextStyle","barActor","tmActor"]),Wt.getArray(e,t,["boxPosition","boxSize"]),Wt.setArray(e,t,["boxPosition","boxSize"],2),t.forceUpdate=!1,t.lastRebuildTime={},Wt.obj(t.lastRebuildTime,{mtime:0}),t.lastSize=[-1,-1],t.tmCanvas=document.createElement("canvas"),t.tmContext=t.tmCanvas.getContext("2d"),t._tmAtlas=new Map,t.barMapper=Zl.newInstance(),t.barMapper.setInterpolateScalarsBeforeMapping(!0),t.barMapper.setUseLookupTableScalarRange(!0),t.polyData=uu.newInstance(),t.barMapper.setInputData(t.polyData),t.barActor=cs.newInstance(),t.barActor.setMapper(t.barMapper),t.tmPolyData=uu.newInstance(),t.tmMapper=Zl.newInstance(),t.tmMapper.setInputData(t.tmPolyData),t.tmTexture=mu.newInstance({resizable:!0}),t.tmTexture.setInterpolate(!1),t.tmActor=cs.newInstance({parentProp:e}),t.tmActor.setMapper(t.tmMapper),t.tmActor.addTexture(t.tmTexture),t.barPosition=[0,0],t.barSize=[0,0],t.boxPosition=[.88,-.92],t.boxSize=[.1,1.1],t.lastTickBounds=[],hp(e,t)}),"vtkScalarBarActorHelper");function bp(e,t){t.classHierarchy.push("vtkScalarBarActor"),e.setTickTextStyle=n=>{t.tickTextStyle={...t.tickTextStyle,...n},e.modified()},e.setAxisTextStyle=n=>{t.axisTextStyle={...t.axisTextStyle,...n},e.modified()},e.resetAutoLayoutToDefault=()=>{e.setAutoLayout(gp(0,t))},e.resetGenerateTicksToDefault=()=>{e.setGenerateTicks(mp())}}function yp(e){return{automated:!0,autoLayout:null,axisLabel:"Scalar Value",barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif"},tickLabelPixelOffset:14,tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif"},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0,...e}}function Tp(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yp(n)),t.autoLayout||(t.autoLayout=gp(0,t)),t.generateTicks||(t.generateTicks=mp()),cs.extend(e,t,n),e.getProperty().setDiffuse(0),e.getProperty().setAmbient(1),Wt.setGet(e,t,["automated","autoLayout","axisTitlePixelOffset","axisLabel","scalarsToColors","tickLabelPixelOffset","generateTicks","drawNanAnnotation","drawBelowRangeSwatch","drawAboveRangeSwatch"]),Wt.get(e,t,["axisTextStyle","tickTextStyle"]),Wt.getArray(e,t,["barPosition","barSize","boxPosition","boxSize"]),Wt.setArray(e,t,["barPosition","barSize","boxPosition","boxSize"],2),bp(e,t)}var xp={newInstance:Wt.newInstance(Tp,"vtkScalarBarActor"),extend:Tp,newScalarBarActorHelper:vp};function Sp(e,t){t.classHierarchy.push("vtkOpenGLScalarBarActor"),e.buildPass=n=>{n&&(t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=>{if(e){const e=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,n=t._openGLRenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t._openGLRenderWindow.getRenderable())}}}const Cp={};const Ap=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cp,n),Xt.extend(e,t,n),t.scalarBarActorHelper=xp.newScalarBarActorHelper(),Sp(e,t)}),"vtkOpenGLScalarBarActor");tn("vtkScalarBarActor",Ap);const{vtkErrorMacro:wp}=Ht;function Pp(e,t){t.classHierarchy.push("vtkOpenGLSkybox"),e.buildPass=n=>{if(n){t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getParent(),t.context=t._openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t._openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t._openGLRenderWindow);const n=t._openGLRenderer.getRenderable();t.openGLCamera=t._openGLRenderer.getViewNodeFor(n.getActiveCamera())}},e.queryPass=(e,n)=>{if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=(n,r)=>{if(n&&!t._openGLRenderer.getSelector()){e.updateBufferObjects(),t.context.depthMask(!0),t._openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t._openGLRenderWindow);const n=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi("sbtexture",n);const r=t._openGLRenderer.getRenderable(),o=t.openGLCamera.getKeyMatrices(r),a=new Float64Array(16);if(g(a,o.wcpc),t.tris.getProgram().setUniformMatrix("IMCPCMatrix",a),"box"===t.lastFormat){const e=r.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f("camPos",e[0],e[1],e[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=()=>{if(!t.tris.getCABO().getElementCount()){const e=new Float32Array(12);for(let t=0;t<4;t++)e[3*t]=t%2*2-1,e[3*t+1]=t>1?1:-1,e[3*t+2]=1;const n=ws.newInstance({numberOfComponents:3,values:e});n.setName("points");const r=new Uint16Array(8);r[0]=3,r[1]=0,r[2]=1,r[3]=3,r[4]=3,r[5]=0,r[6]=3,r[7]=2;const o=ws.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(o,"polys",Yi.SURFACE,{points:n,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&&(t.lastFormat=t.renderable.getFormat(),"box"===t.lastFormat&&t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec3 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = wpos.xyz/wpos.w;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec3 TexCoords;\n uniform samplerCube sbtexture;\n uniform vec3 camPos;\n void main () {\n // skybox looks from inside out\n // which means we have to adjust\n // our tcoords. Otherwise text would\n // be flipped\n vec3 tc = normalize(TexCoords - camPos);\n if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))\n {\n tc = vec3(1.0, 1.0, -1.0) * tc;\n }\n else\n {\n tc = vec3(-1.0, 1.0, 1.0) * tc;\n }\n gl_FragData[0] = textureCube(sbtexture, tc);\n }","")),"background"===t.lastFormat&&t.tris.setProgram(t._openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec2 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec2 TexCoords;\n uniform sampler2D sbtexture;\n void main () {\n gl_FragData[0] = texture2D(sbtexture, TexCoords);\n }","")),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),"vertexMC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||wp("Error setting vertexMC in shader VAO."));const e=t.renderable.getTextures();e.length||wp("vtkSkybox requires a texture map"),t.openGLTexture.getRenderable()!==e[0]&&(t.openGLTexture.releaseGraphicsResources(t._openGLRenderWindow),t.openGLTexture.setRenderable(e[0]))}}const Ip={context:null};const Op=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ip,n),Xt.extend(e,t,n),t.openGLTexture=Dd.newInstance(),t.tris=md.newInstance(),t.keyMatrixTime={},ht(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:ue(new Float64Array(9)),mcwc:p(new Float64Array(16))},St(e,t,["context"]),bt(e,t,["activeTextures"]),Pp(e,t)}));tn("vtkSkybox",Op);const{vtkDebugMacro:Ep}=Ht;function Mp(e,t){t.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),e.opaquePass=(n,r)=>{t._openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t._openGLRenderWindow=t._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow");const o=t._openGLRenderer.getAspectRatio(),a=t._openGLRenderer?t._openGLRenderer.getRenderable().getActiveCamera():null,i=t._openGLRenderer.getTiledSizeAndOrigin();let s=null;if(t.renderable.getUseZValues()){const e=r.getZBufferTexture(),n=Math.floor(e.getWidth()),o=Math.floor(e.getHeight()),a=t._openGLRenderWindow.getContext();e.bind();const i=r.getFramebuffer();i?i.saveCurrentBindingsAndBuffers():Ep("No framebuffer to save/restore");const l=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,l),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e.getHandle(),0),a.checkFramebufferStatus(a.FRAMEBUFFER)===a.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(n*o*4),a.viewport(0,0,n,o),a.readPixels(0,0,n,o,a.RGBA,a.UNSIGNED_BYTE,s)),i&&i.restorePreviousBindingsAndBuffers(),a.deleteFramebuffer(l)}t.renderable.invokeCallback(t.renderable.getInputData(),a,o,i,s)},e.queryPass=(e,n)=>{e&&t.renderable.getUseZValues()&&n.requestDepth()}}const Rp={};const Dp=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rp,n),Xt.extend(e,t,n),Mp(e,t)}),"vtkOpenGLPixelSpaceCallbackMapper");tn("vtkPixelSpaceCallbackMapper",Dp);const Bp=Object.create(null);function Lp(e,t){Bp[e]=t}function Vp(e,t){t.classHierarchy.push("vtkWebGPUViewNodeFactory")}const _p={};function Np(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,_p,n),t.overrides=Bp,Jt.extend(e,t,n),Vp(0,t)}var Fp={newInstance:Wt.newInstance(Np,"vtkWebGPUViewNodeFactory"),extend:Np};function kp(e,t){t.classHierarchy.push("vtkWebGPUCamera"),e.getProjectionMatrix=(e,n,r,o)=>{if(p(e),t.renderable.getParallelProjection()){const a=t.renderable.getParallelScale(),i=a*n,s=a,l=(o[0]-1)*i,c=(o[0]+1)*i,u=(o[1]-1)*s,d=(o[1]+1)*s,p=1/(c-l),f=1/(d-u);e[0]=2*p,e[5]=2*f,e[10]=1/(r[1]-r[0]),e[12]=(c+l)*p,e[13]=(d+u)*f,e[14]=r[1]/(r[1]-r[0])}else{const a=Math.tan(Math.PI*t.renderable.getViewAngle()/360);let i,s;!0===t.renderable.getUseHorizontalViewAngle()?(i=r[0]*a,s=r[0]*a/n):(i=r[0]*a*n,s=r[0]*a);const l=(o[0]-1)*i,c=(o[0]+1)*i,u=(o[1]-1)*s,d=(o[1]+1)*s;e[0]=2*r[0]/(c-l),e[5]=2*r[0]/(d-u),e[12]=(l+c)/(c-l),e[13]=(u+d)/(d-u),e[10]=0,e[14]=r[0],e[11]=-1,e[15]=0}},e.convertToOpenGLDepth=e=>{if(t.renderable.getParallelProjection())return 1-e;const n=t.renderable.getClippingRangeByReference();let r=-n[0]/e;return r=(n[0]+n[1])/(n[1]-n[0])+2*n[0]*n[1]/(r*(n[1]-n[0])),.5*r+.5},e.getKeyMatrices=n=>{const r=n.getRenderable(),o=n.getParent();if(Math.max(o.getMTime(),e.getMTime(),r.getMTime(),t.renderable.getMTime(),n.getStabilizedTime())>t.keyMatrixTime.getMTime()){const r=t.renderable.getViewMatrix();c(t.keyMatrices.normalMatrix,r),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,g(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),f(t.keyMatrices.wcvc,r);const o=n.getStabilizedCenterByReference();b(t.keyMatrices.scvc,t.keyMatrices.wcvc,o);const a=n.getAspectRatio(),i=t.renderable.getClippingRangeByReference();e.getProjectionMatrix(t.keyMatrices.vcpc,a,i,t.renderable.getWindowCenterByReference()),v(t.keyMatrices.scpc,t.keyMatrices.vcpc,t.keyMatrices.scvc),g(t.keyMatrices.pcsc,t.keyMatrices.scpc),t.keyMatrixTime.modified()}return t.keyMatrices}}const Up={keyMatrixTime:null,keyMatrices:null};const Gp=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Up,n),Xt.extend(e,t,n),t.keyMatrixTime={},Wt.obj(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(16),vcpc:new Float64Array(16),pcsc:new Float64Array(16),wcvc:new Float64Array(16),scpc:new Float64Array(16),scvc:new Float64Array(16)},Wt.setGet(e,t,["keyMatrixTime"]),kp(e,t)}));function zp(e,t){t.classHierarchy.push("vtkWebGPUBindGroup"),e.setBindables=n=>{if(t.bindables.length===n.length){let e=!0;for(let r=0;r{const n=[];for(let e=0;e{let r=e.getMTime();for(let e=0;er?n:r}if(r{const n=[],r=e.getBindGroupLayoutCount(t.label);for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wp,n),Wt.obj(e,t),t.bindables=[],t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),Wt.get(e,t,["bindGroupTime","handle","sizeInBytes","usage"]),Wt.setGet(e,t,["label","device","arrayInformation"]),zp(e,t)}var jp={newInstance:Wt.newInstance(Hp),extend:Hp};function $p(e,t){t.classHierarchy.push("vtkWebGPUShaderModule"),e.initialize=(e,n)=>{t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}const Kp={device:null,handle:null};function qp(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kp,n),Wt.obj(e,t),Wt.get(e,t,["lastCameraMTime"]),Wt.setGet(e,t,["device","handle"]),$p(e,t)}var Xp={newInstance:Wt.newInstance(qp,"vtkWebGPUShaderModule"),extend:qp};function Yp(e,t){t.classHierarchy.push("vtkWebGPUShaderCache"),e.getShaderModule=e=>{const n=e.getType(),r=e.getHash(),o=t._shaderModules.keys();for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qp,n),t._shaderModules=new Map,Wt.obj(e,t),Wt.setGet(e,t,["device","window"]),Yp(e,t)}var Jp={newInstance:Wt.newInstance(Zp,"vtkWebGPUShaderCache"),extend:Zp,substitute:function(e,t,n){let r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const o=Array.isArray(n)?n.join("\n"):n;let a=!1;-1!==e.search(t)&&(a=!0);let i="";r&&(i="g");const s=new RegExp(t,i),l=e.replace(s,o);return{replace:a,result:l}}};function ef(e,t){t.classHierarchy.push("vtkWebGPUPipeline"),e.getShaderDescriptions=()=>t.shaderDescriptions,e.initialize=(e,n)=>{t.pipelineDescription=t.renderEncoder.getPipelineSettings(),t.pipelineDescription.primitive.topology=t.topology,t.pipelineDescription.vertex=t.vertexState,t.pipelineDescription.label=n;const r=[];for(let e=0;e{for(let n=0;n{e&&t.layouts.push({layout:e.getBindGroupLayout(t.device),label:e.getLabel()})},e.getBindGroupLayout=e=>t.layouts[e].layout,e.getBindGroupLayoutCount=e=>{for(let n=0;n{t.bindBuffers(e)}}const tf={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function nf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tf,n),ht(e,t),t.layouts=[],t.shaderDescriptions=[],bt(e,t,["handle","pipelineDescription"]),St(e,t,["device","renderEncoder","topology","vertexState"]),ef(e,t)}var rf={newInstance:Mt(nf,"vtkWebGPUPipeline"),extend:nf};function of(e,t){t.classHierarchy.push("vtkWebGPUShaderDescription"),e.hasOutput=e=>t.outputNames.includes(e),e.addOutput=function(e,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;t.outputTypes.push(e),t.outputNames.push(n),t.outputInterpolations.push(r)},e.addBuiltinOutput=(e,n)=>{t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=(e,n)=>{t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=(e,n)=>{const r=[];let o=[];if(n&&r.push(n.getShaderCode()),e||t.builtinInputNames.length){const n=[];if(n.push(`struct ${t.type}Input\n{`),e){const t=e.getOutputNamesByReference(),r=e.getOutputTypesByReference(),o=e.getOutputInterpolationsByReference();for(let e=0;e1&&(n.push("};"),o=n,r[r.length-1]+=",",r.push(`input: ${t.type}Input`))}if(r.length&&(t.code=Jp.substitute(t.code,"//VTK::IOStructs::Input",r).result),t.outputNames.length+t.builtinOutputNames.length){const e=[`struct ${t.type}Output\n{`];for(let n=0;n ${t.type}Output`]).result}t.code=Jp.substitute(t.code,"//VTK::IOStructs::Dec",o).result}}const af={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function sf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,af,n),t.outputNames=[],t.outputTypes=[],t.outputInterpolations=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],Wt.obj(e,t),Wt.setGet(e,t,["type","hash","code"]),Wt.getArray(e,t,["outputTypes","outputNames","outputInterpolations"]),of(e,t)}var lf={newInstance:Wt.newInstance(sf,"vtkWebGPUShaderDescription"),extend:sf};const cf={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"float"},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"float"},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"sint"},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"uint"},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:"sint"},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:"float"},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"float"},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"float"},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"uint"},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"sint"},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:"uint"},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:"sint"},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"unfilterable-float"},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:"uint"},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:"sint"},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:"float"},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"rgba8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"float"},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"uint"},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"sint"},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"bgra8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:"float"},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:"uint"},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:"sint"},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:"unfilterable-float"},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:"uint"},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:"sint"},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:"float"},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:"uint"},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:"sint"},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:"unfilterable-float"},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"depth"},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:"depth"},"depth24plus-stencil8":{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:"mixed"},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"depth"}};var uf=function(e){return!e||e.length<6?0:e in cf==1?cf[e]:(Ze(`unknown format ${e}`),null)},df=function(e){if(!e||e.length<5)return 0;let t=1;"x"===e[e.length-2]&&(t=Number(e[e.length-1]));const n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Ze(`unknown format ${e}`),0):t*(5-r/2)},pf=function(e){if(!e||e.length<5)return 0;let t=1;return"x"===e[e.length-2]&&(t=Number(e[e.length-1])),t},ff=function(e){if(!e||e.length<5)return 0;let t;if("f"===e[0])t="Float";else if("s"===e[0])t="Int";else{if("u"!==e[0])return void Ze(`unknown format ${e}`);t="Uint"}const n=e.split("x")[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+="Array",t;Ze(`unknown format ${e}`)},gf=function(e){let t;if("f"===e[0]||"n"===e[1])t="f32";else if("s"===e[0]&&"i"===e[1])t="i32";else{if("u"!==e[0]||"i"!==e[1])return void Ze(`unknown format ${e}`);t="u32"}let n=1;return"x"===e[e.length-2]&&(n=Number(e[e.length-1])),4===n?`vec4<${t}>`:3===n?`vec3<${t}>`:2===n?`vec2<${t}>`:t},mf=function(e){if(!e)return 0;let t=1;return"vec"===e.substring(0,3)?t=Number(e[3]):"mat"===e.substring(0,3)&&(t=e[3]*e[5]),4*t},hf=function(e){if(e)return e.includes("f32")?"Float32Array":e.includes("i32")?"Int32Array":e.includes("u32")?"Uint32Array":void Ze(`unknown format ${e}`)};function vf(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(let n=0;n2&&void 0!==arguments[2]?arguments[2]:"vertex",o=n;Array.isArray(o)||(o=[o]);for(let n=0;ne.names[0]t.names[0]?1:0))},e.removeBufferIfPresent=e=>{for(let n=0;n{for(let n=0;n{for(let n=0;n{for(let n=0;n{let e="",n=0;for(let r=0;r0&&(e+=",\n"),e=`${e} @location(${n}) ${t.inputs[r].names[o]} : ${i}`,n++}return e},e.getVertexInputInformation=()=>{const e={};if(t.inputs.length){const n=[];let r=0;for(let e=0;e{for(let n=0;n{},e.releaseGraphicsResources=()=>{t.created&&(t.inputs=[],t.bindingDescriptions=[],t.attributeDescriptions=[])}}const yf={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function Tf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yf,n),ht(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],St(e,t,["created","device","handle","indexBuffer"]),bf(e,t)}var xf={newInstance:Mt(Tf,"vtkWebGPUVertexInput"),extend:Tf};const Sf="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@vertex\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n // var vertex: vec4 = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",Cf="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n // var computedColor:vec4 = vec4(1.0,0.5,0.5,1.0);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";function Af(e,t){t.classHierarchy.push("vtkWebGPUSimpleMapper"),e.generateShaderDescriptions=(n,r,o)=>{const a=lf.newInstance({type:"vertex",hash:n,code:t.vertexShaderTemplate}),i=lf.newInstance({type:"fragment",hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(a),s.push(i);const l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp("//VTK::[^:]*::","g"),u=l.match(c).filter(((e,t,n)=>n.indexOf(e)===t)).map((e=>`replaceShader${e.substring(7,e.length-2)}`));for(let e=0;e{const r=t.getShaderDescription("vertex");r.replaceShaderCode(null,n),t.getShaderDescription("fragment").replaceShaderCode(r)},e.replaceShaderRenderEncoder=(e,n,r)=>{t.renderEncoder.replaceShaderCode(n)},t.shaderReplacements.set("replaceShaderRenderEncoder",e.replaceShaderRenderEncoder),e.replaceShaderRenderer=(e,n,r)=>{if(!t.WebGPURenderer)return;const o=t.WebGPURenderer.getBindGroup().getShaderCode(n),a=n.getShaderDescription("vertex");let i=a.getCode();i=Jp.substitute(i,"//VTK::Renderer::Dec",[o]).result,a.setCode(i);const s=n.getShaderDescription("fragment");i=s.getCode(),i=Jp.substitute(i,"//VTK::Renderer::Dec",[o]).result,s.setCode(i)},t.shaderReplacements.set("replaceShaderRenderer",e.replaceShaderRenderer),e.replaceShaderMapper=(e,n,r)=>{const o=t.bindGroup.getShaderCode(n),a=n.getShaderDescription("vertex");let i=a.getCode();i=Jp.substitute(i,"//VTK::Mapper::Dec",[o]).result,a.setCode(i);const s=n.getShaderDescription("fragment");s.addBuiltinInput("bool","@builtin(front_facing) frontFacing"),i=s.getCode(),i=Jp.substitute(i,"//VTK::Mapper::Dec",[o]).result,s.setCode(i)},t.shaderReplacements.set("replaceShaderMapper",e.replaceShaderMapper),e.replaceShaderPosition=(e,t,n)=>{const r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","@builtin(position) Position");let o=r.getCode();o=Jp.substitute(o,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,r.setCode(o)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderTCoord=(e,t,n)=>{t.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.addTextureView=e=>{t.textureViews.includes(e)||t.textureViews.push(e)},e.prepareToDraw=n=>{t.renderEncoder=n,e.updateInput(),e.updateBuffers(),e.updateBindings(),e.updatePipeline()},e.updateInput=()=>{},e.updateBuffers=()=>{},e.updateBindings=()=>{t.bindGroup.setBindables(e.getBindables())},e.computePipelineHash=()=>{},e.registerDrawCallback=n=>{n.registerDrawCallback(t.pipeline,e.draw)},e.prepareAndDraw=n=>{e.prepareToDraw(n),n.setPipeline(t.pipeline),e.draw(n)},e.draw=e=>{const n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),t.WebGPURenderer&&t.WebGPURenderer.bindUBO(e),n.bindVertexInput(e,t.vertexInput);const r=t.vertexInput.getIndexBuffer();r?e.drawIndexed(r.getIndexCount(),t.numberOfInstances,0,0,0):e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.getBindables=()=>{const e=[...t.additionalBindables];t.UBO&&e.push(t.UBO),t.SSBO&&e.push(t.SSBO);for(let n=0;n{e.computePipelineHash(),t.pipeline=t.device.getPipeline(t.pipelineHash),t.pipeline||(t.pipeline=rf.newInstance(),t.pipeline.setDevice(t.device),t.WebGPURenderer&&t.pipeline.addBindGroupLayout(t.WebGPURenderer.getBindGroup()),t.pipeline.addBindGroupLayout(t.bindGroup),e.generateShaderDescriptions(t.pipelineHash,t.pipeline,t.vertexInput),t.pipeline.setTopology(t.topology),t.pipeline.setRenderEncoder(t.renderEncoder),t.pipeline.setVertexState(t.vertexInput.getVertexInputInformation()),t.device.createPipeline(t.pipelineHash,t.pipeline))}}const wf={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:"triangle-list",UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function Pf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wf,n),Xt.extend(e,t,n),t.textureViews=[],t.vertexInput=xf.newInstance(),t.bindGroup=jp.newInstance({label:"mapperBG"}),t.additionalBindables=[],t.fragmentShaderTemplate=t.fragmentShaderTemplate||Cf,t.vertexShaderTemplate=t.vertexShaderTemplate||Sf,t.shaderReplacements=new Map,Wt.get(e,t,["pipeline","vertexInput"]),Wt.setGet(e,t,["additionalBindables","device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),Af(e,t)}var If={newInstance:Wt.newInstance(Pf,"vtkWebGPUSimpleMapper"),extend:Pf};function Of(e,t){t.classHierarchy.push("vtkWebGPUFullScreenQuad"),e.replaceShaderPosition=(e,t,n)=>{const r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","@builtin(position) Position"),r.addOutput("vec4","vertexVC");let o=r.getCode();o=Jp.substitute(o,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);","output.vertexVC = vec4(vertexBC, 1);"]).result,r.setCode(o)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.updateBuffers=()=>{const e=t.device.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(e,["vertexBC"]),t.numberOfVertices=6}}const Ef={};function Mf(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ef,n),If.extend(e,t,n),Of(e,t)}var Rf={newInstance:Wt.newInstance(Mf,"vtkWebGPUFullScreenQuad"),extend:Mf},Df={BufferUsage:{Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};const Bf=["getMappedRange","mapAsync","unmap"];function Lf(e,t){t.classHierarchy.push("vtkWebGPUBuffer"),e.create=(e,n)=>{t.handle=t.device.getHandle().createBuffer({size:e,usage:n,label:t.label}),t.sizeInBytes=e,t.usage=n},e.write=e=>{!function(e,t,n,r){const o=r.byteLength,a=e.createBuffer({size:o,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=a.getMappedRange(0,o);new Uint8Array(i).set(new Uint8Array(r)),a.unmap();const s=e.createCommandEncoder();s.copyBufferToBuffer(a,0,t,0,o);const l=s.finish();e.queue.submit([l]),a.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=(e,n)=>{t.handle=t.device.getHandle().createBuffer({size:e.byteLength,usage:n,mappedAtCreation:!0,label:t.label}),t.sizeInBytes=e.byteLength,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(let n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vf,n),Wt.obj(e,t),Wt.get(e,t,["handle","sizeInBytes","usage"]),Wt.setGet(e,t,["strideInBytes","device","arrayInformation","label","sourceTime"]),Lf(e,t)}var Nf={newInstance:Wt.newInstance(_f),extend:_f,...Df};const{Representation:Ff}=os,{PrimitiveTypes:kf}=Df;class Uf{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let t=0;t2)for(let a=0;a2){for(let a=0;a{const n=e.cells,r=e.primitiveType,o=e.representation,a=e.cellOffset,i=n.getData(),s=i.length,l=function(e){switch(e){case kf.Points:return"points";case kf.Lines:return"lines";case kf.Triangles:case kf.TriangleEdges:return"polys";case kf.TriangleStripEdges:case kf.TriangleStrips:return"strips";default:return""}}(r),c=e.numberOfPoints,u={provokedPointIds:new Uint8Array(c),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new Uf};let d=null;d=o===Ff.POINTS||r===kf.Points?qf.anythingToPoints:o===Ff.WIREFRAME||r===kf.Lines?qf[`${l}ToWireframe`]:qf[`${l}ToSurface`],Hf=Wf;let p=a||0;for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yf,n),Nf.extend(e,t,n),Wt.setGet(e,t,["flatIdToPointId","flatIdToCellId","flatSize","indexCount"]),Xf(e,t)}var Zf={newInstance:Wt.newInstance(Qf),extend:Qf,...Df};const{BufferUsage:Jf}=Df,{vtkErrorMacro:eg}=Ht,{VtkDataTypes:tg}=ws;function ng(e,t,n,r,o){const a={},i=e.getFlatSize();if(!i)return a;let s=[0,0,0,0];o.shift&&(o.shift.length?s=o.shift:s.fill(o.shift));let l=[1,1,1,1];o.scale&&(o.scale.length?l=o.scale:l.fill(o.scale));const c=!!Object.prototype.hasOwnProperty.call(o,"packExtra")&&o.packExtra;let u,d=0;const p=rt(r,i*(n+(c?1:0)));let f=e.getFlatIdToPointId();o.cellData&&(f=e.getFlatIdToCellId()),1===n?u=function(e){p[d++]=l[0]*t[e]+s[0]}:2===n?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1]}:3!==n||c?3===n&&c?u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=1*l[3]+s[3]}:4===n&&(u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2],p[d++]=l[3]*t[e+3]+s[3]}):u=function(e){p[d++]=l[0]*t[e]+s[0],p[d++]=l[1]*t[e+1]+s[1],p[d++]=l[2]*t[e+2]+s[2]};for(let e=0;et.device.hasCachedObject(e),e.getBuffer=e=>e.hash?t.device.getCachedObject(e.hash,n,e):n(e),e.getBufferForPointArray=(t,n)=>{const r=function(e){let t;switch(e.getDataType()){case tg.UNSIGNED_CHAR:t="uint8";break;case tg.FLOAT:t="float32";break;case tg.UNSIGNED_INT:t="uint32";break;case tg.INT:t="sint32";break;case tg.DOUBLE:t="float32";break;case tg.UNSIGNED_SHORT:t="uint16";break;case tg.SHORT:t="sin16";break;default:t="float32"}switch(e.getNumberOfComponents()){case 2:t+="x2";break;case 3:t.includes("32")||eg(`unsupported x3 type for ${t}`),t+="x3";break;case 4:t+="x4"}return t}(t),o={hash:`${t.getMTime()}I${n.getMTime()}${r}`,usage:Jf.PointArray,format:r,dataArray:t,indexBuffer:n};return e.getBuffer(o)},e.getFullScreenQuadBuffer=()=>{if(t.fullScreenQuadBuffer)return t.fullScreenQuadBuffer;t.fullScreenQuadBuffer=Nf.newInstance(),t.fullScreenQuadBuffer.setDevice(t.device);const e=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return t.fullScreenQuadBuffer.createAndWrite(e,GPUBufferUsage.VERTEX),t.fullScreenQuadBuffer.setStrideInBytes(12),t.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:"float32x3"}]),t.fullScreenQuadBuffer}}const ag={device:null,fullScreenQuadBuffer:null};function ig(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ag,n),ht(e,t),St(e,t,["device"]),og(e,t)}var sg={newInstance:Mt(ig),extend:ig,...Df};const{BufferUsage:lg}=sg,{vtkErrorMacro:cg}=Wt;function ug(e,t){t.classHierarchy.push("vtkWebGPUStorageBuffer"),e.addEntry=(e,n)=>{if(t._bufferEntryNames.has(e))return void cg(`entry named ${e} already exists`);t._bufferEntryNames.set(e,t.bufferEntries.length);const r=mf(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:hf(n)}),t.sizeInBytes+=r},e.send=e=>{if(!t._buffer){const n={nativeArray:t.Float32Array,usage:lg.Storage,label:t.label};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=e=>{e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=Wt.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r,o)=>{const a=t._bufferEntryNames.get(n);if(void 0===a)return void cg(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=o},e.setArray=(n,r,o)=>{const a=t._bufferEntryNames.get(n);if(void 0===a)return void cg(`entry named ${n} not found in UBO`);const i=t.bufferEntries[a];e.createView(i.nativeType);const s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT;for(let e=0;e{const o=t._bufferEntryNames.get(n);if(void 0===o)return void cg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e{const o=t._bufferEntryNames.get(n);if(void 0===o)return void cg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType],s=r.length/t.numberOfInstances;for(let e=0;e{const o=t._bufferEntryNames.get(n);if(void 0===o)return void cg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];for(let e=0;et._sendTime.getMTime(),e.getShaderCode=(e,n)=>{const r=[`struct ${t.label}StructEntry\n{`];for(let e=0;e,\n};\n@binding(${e}) @group(${n}) var ${t.label}: ${t.label}Struct;\n`),r.join("\n")},e.getBindGroupEntry=()=>({resource:{buffer:t._buffer.getHandle()}}),e.clearData=()=>{t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}const dg={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function pg(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dg,n),Wt.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},Wt.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},Wt.get(e,t,["bindGroupTime"]),Wt.setGet(e,t,["device","bindGroupLayoutEntry","label","numberOfInstances","sizeInBytes"]),ug(e,t)}var fg={newInstance:Wt.newInstance(pg,"vtkWebGPUStorageBuffer"),extend:pg};const{BufferUsage:gg}=sg,{vtkErrorMacro:mg}=Wt;function hg(e,t){t.classHierarchy.push("vtkWebGPUUniformBuffer"),e.addEntry=(e,n)=>{t._bufferEntryNames.has(e)?mg(`entry named ${e} already exists`):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:mf(n),offset:-1,nativeType:hf(n),packed:!1}))},e.sortBufferEntries=()=>{if(!t.sortDirty)return;let e=0;const n=[];let r=4;for(let e=0;e4&&(o.packed=!0,o.offset=e,n.push(o),e+=o.sizeInBytes)}for(let r=0;r{if(!t.UBO){const n={nativeArray:t.Float32Array,usage:gg.UniformArray,label:t.label};t.UBO=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),t.sendDirty=!1}t.sendDirty&&(e.getHandle().queue.writeBuffer(t.UBO.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes),t.sendDirty=!1),t.sendTime.modified()},e.createView=e=>{e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes)),t[e]=Wt.newTypedArray(e,t.arrayBuffer))},e.setValue=(n,r)=>{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void mg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];a.lastValue!==r&&(i[a.offset/i.BYTES_PER_ELEMENT]=r,t.sendDirty=!0),a.lastValue=r},e.setArray=(n,r)=>{e.sortBufferEntries();const o=t._bufferEntryNames.get(n);if(void 0===o)return void mg(`entry named ${n} not found in UBO`);const a=t.bufferEntries[o];e.createView(a.nativeType);const i=t[a.nativeType];let s=!1;for(let e=0;e({resource:{buffer:t.UBO.getHandle()}}),e.getSendTime=()=>t.sendTime.getMTime(),e.getShaderCode=(n,r)=>{e.sortBufferEntries();const o=[`struct ${t.label}Struct\n{`];for(let e=0;e ${t.label}: ${t.label}Struct;`),o.join("\n")}}const vg={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function bg(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vg,n),Wt.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"uniform"}},t.sendTime={},Wt.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,Wt.get(e,t,["binding","bindGroupTime"]),Wt.setGet(e,t,["bindGroupLayoutEntry","device","label","sizeInBytes"]),hg(e,t)}var yg={newInstance:Wt.newInstance(bg,"vtkWebGPUUniformBuffer"),extend:bg};const{vtkDebugMacro:Tg}=Ht,xg="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = mapperUBO.BackgroundColor;\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n",Sg=new Float64Array(16),Cg=new Float64Array(16);function Ag(e,t){t.classHierarchy.push("vtkWebGPURenderer"),e.buildPass=n=>{if(n){if(!t.renderable)return;t.camera=t.renderable.getActiveCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.camera),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes(),t.webgpuCamera=e.getViewNodeFor(t.camera),e.updateStabilizedMatrix()}},e.updateStabilizedMatrix=()=>{const e=t.camera.getClippingRange(),n=t.camera.getPositionByReference(),r=[],o=[];var a,i,s,l;wn(o,t.camera.getDirectionOfProjectionByReference(),.5*(e[0]+e[1])),Cn(r,n,o),Mn(o,r,t.stabilizedCenter),i=(a=o)[0],s=a[1],l=a[2],Math.hypot(i,s,l)/(e[1]-e[0])>t.recenterThreshold&&(t.stabilizedCenter=r,t.stabilizedTime.modified())},e.updateLights=()=>{let e=0;const n=t.renderable.getLightsByReference();for(let t=0;t0&&e++;return e||(Tg("No lights are on, creating one."),t.renderable.createLight()),e},e.updateUBO=()=>{const n=t.UBO.getSendTime();if(t._parent.getMTime()>n||e.getMTime()>n||t.camera.getMTime()>n||t.renderable.getMTime()>n){const n=t.webgpuCamera.getKeyMatrices(e);t.UBO.setArray("WCVCMatrix",n.wcvc),t.UBO.setArray("SCPCMatrix",n.scpc),t.UBO.setArray("PCSCMatrix",n.pcsc),t.UBO.setArray("SCVCMatrix",n.scvc),t.UBO.setArray("VCPCMatrix",n.vcpc),t.UBO.setArray("WCVCNormals",n.normalMatrix),t.UBO.setValue("LightCount",t.renderable.getLights().length),t.UBO.setValue("MaxEnvironmentMipLevel",t.renderable.getEnvironmentTexture()?.getMipLevel()),t.UBO.setValue("BackgroundDiffuseStrength",t.renderable.getEnvironmentTextureDiffuseStrength()),t.UBO.setValue("BackgroundSpecularStrength",t.renderable.getEnvironmentTextureSpecularStrength());const r=e.getYInvertedTiledSizeAndOrigin();t.UBO.setArray("viewportSize",[r.usize,r.vsize]),t.UBO.setValue("cameraParallel",t.camera.getParallelProjection());const o=t._parent.getDevice();t.UBO.sendIfNeeded(o)}},e.updateSSBO=()=>{const n=t.renderable.getLights(),r=t.webgpuCamera.getKeyMatrices(e);let o=`${t.renderable.getMTime()}`;for(let e=0;e=90?0:2:1,s[l+1]=Math.cos(xo(n[t].getConeAngle())),s[l+2]=Math.cos(xo(n[t].getConeAngle()+n[t].getConeFalloff())),s[l+3]=0}t.SSBO.clearData(),t.SSBO.setNumberOfInstances(n.length),t.SSBO.addEntry("LightPos","vec4"),t.SSBO.addEntry("LightDir","vec4"),t.SSBO.addEntry("LightColor","vec4"),t.SSBO.addEntry("LightData","vec4"),t.SSBO.setAllInstancesFromArray("LightPos",e),t.SSBO.setAllInstancesFromArray("LightDir",o),t.SSBO.setAllInstancesFromArray("LightColor",i),t.SSBO.setAllInstancesFromArray("LightData",s);const l=t._parent.getDevice();t.SSBO.send(l)}var a;t.lightTimeString=o},e.scissorAndViewport=t=>{const n=e.getYInvertedTiledSizeAndOrigin();t.getHandle().setViewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize,0,1),t.getHandle().setScissorRect(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)},e.bindUBO=e=>{e.activateBindGroup(t.bindGroup)},e.opaquePass=n=>{n?(t.renderEncoder.begin(t._parent.getCommandEncoder()),e.updateUBO(),e.updateSSBO()):(e.scissorAndViewport(t.renderEncoder),e.clear(),t.renderEncoder.end())},e.clear=()=>{if(t.renderable.getTransparent()||t.suppressClear)return;const n=t._parent.getDevice();if(!t.clearFSQ){t.clearFSQ=Rf.newInstance(),t.clearFSQ.setDevice(n),t.clearFSQ.setPipelineHash("clearfsq"),t.clearFSQ.setFragmentShaderTemplate(xg);const e=yg.newInstance({label:"mapperUBO"});e.addEntry("FSQMatrix","mat4x4"),e.addEntry("BackgroundColor","vec4"),t.clearFSQ.setUBO(e),t.backgroundTex=t.renderable.getEnvironmentTexture()}if("clearfsqwithtexture"!==t.clearFSQ.getPipelineHash()&&t.renderable.getUseEnvironmentTextureAsBackground()&&t.backgroundTex?.getImageLoaded()){t.clearFSQ.setFragmentShaderTemplate("\nfn vecToRectCoord(dir: vec3) -> vec2 {\n var tau: f32 = 6.28318530718;\n var pi: f32 = 3.14159265359;\n var out: vec2 = vec2(0.0);\n\n out.x = atan2(dir.z, dir.x) / tau;\n out.x += 0.5;\n\n var phix: f32 = length(vec2(dir.x, dir.z));\n out.y = atan2(dir.y, phix) / pi + 0.5;\n\n return out;\n}\n\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var tcoord: vec4 = vec4(input.vertexVC.xy, -1, 1);\n var V: vec4 = normalize(mapperUBO.FSQMatrix * tcoord); // vec2((input.tcoordVS.x - 0.5) * 2, -(input.tcoordVS.y - 0.5) * 2);\n // textureSampleLevel gets rid of some ugly artifacts\n var background = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, vecToRectCoord(V.xyz), 0.0);\n var computedColor: vec4 = vec4(background.rgb, 1);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n");const e=yg.newInstance({label:"mapperUBO"});e.addEntry("FSQMatrix","mat4x4"),e.addEntry("BackgroundColor","vec4"),t.clearFSQ.setUBO(e);const r=n.getTextureManager().getTextureForVTKTexture(t.backgroundTex);if(r.getReady()){const e=r.createView("EnvironmentTexture");t.clearFSQ.setTextureViews([e]),t.backgroundTexLoaded=!0;const o=t.backgroundTex.getInterpolate()?"linear":"nearest";e.addSampler(n,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:o,magFilter:o,mipmapFilter:"linear"})}t.clearFSQ.setPipelineHash("clearfsqwithtexture")}else if("clearfsqwithtexture"===t.clearFSQ.getPipelineHash()&&!t.renderable.getUseEnvironmentTextureAsBackground()){t.clearFSQ=Rf.newInstance(),t.clearFSQ.setDevice(n),t.clearFSQ.setPipelineHash("clearfsq"),t.clearFSQ.setFragmentShaderTemplate(xg);const e=yg.newInstance({label:"mapperUBO"});e.addEntry("FSQMatrix","mat4x4"),e.addEntry("BackgroundColor","vec4"),t.clearFSQ.setUBO(e)}const r=t.webgpuCamera.getKeyMatrices(e),o=t.renderable.getBackgroundByReference();t.clearFSQ.getUBO().setArray("BackgroundColor",o),f(Cg,r.normalMatrix),ne(Sg,r.scvc,r.pcsc),ne(Sg,Cg,Sg),t.clearFSQ.getUBO().setArray("FSQMatrix",Sg),t.clearFSQ.getUBO().sendIfNeeded(n),t.clearFSQ.prepareAndDraw(t.renderEncoder)},e.translucentPass=n=>{n?t.renderEncoder.begin(t._parent.getCommandEncoder()):(e.scissorAndViewport(t.renderEncoder),t.renderEncoder.end())},e.volumeDepthRangePass=n=>{n?t.renderEncoder.begin(t._parent.getCommandEncoder()):(e.scissorAndViewport(t.renderEncoder),t.renderEncoder.end())},e.getAspectRatio=()=>{const e=t._parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.convertToOpenGLDepth=e=>t.webgpuCamera.convertToOpenGLDepth(e),e.getYInvertedTiledSizeAndOrigin=()=>{const n=e.getTiledSizeAndOrigin(),r=t._parent.getSizeByReference();return n.lowerLeftV=r[1]-n.vsize-n.lowerLeftV,n},e.getTiledSizeAndOrigin=()=>{const e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=e[0]-n[0],o=e[1]-n[1],a=t._parent.normalizedDisplayToDisplay(r,o),i=Math.round(a[0]),s=Math.round(a[1]),l=e[2]-n[0],c=e[3]-n[1],u=t._parent.normalizedDisplayToDisplay(l,c);let d=Math.round(u[0])-i,p=Math.round(u[1])-s;return d<0&&(d=0),p<0&&(p=0),{usize:d,vsize:p,lowerLeftU:i,lowerLeftV:s}},e.getPropFromID=e=>{for(let n=0;nt.stabilizedTime.getMTime(),e.releaseGraphicsResources=()=>{null!==t.selector&&t.selector.releaseGraphicsResources()}}const wg={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};const Pg=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wg,n),Xt.extend(e,t,n),t.UBO=yg.newInstance({label:"rendererUBO"}),t.UBO.addEntry("WCVCMatrix","mat4x4"),t.UBO.addEntry("SCPCMatrix","mat4x4"),t.UBO.addEntry("PCSCMatrix","mat4x4"),t.UBO.addEntry("SCVCMatrix","mat4x4"),t.UBO.addEntry("VCPCMatrix","mat4x4"),t.UBO.addEntry("WCVCNormals","mat4x4"),t.UBO.addEntry("viewportSize","vec2"),t.UBO.addEntry("LightCount","i32"),t.UBO.addEntry("MaxEnvironmentMipLevel","f32"),t.UBO.addEntry("BackgroundDiffuseStrength","f32"),t.UBO.addEntry("BackgroundSpecularStrength","f32"),t.UBO.addEntry("cameraParallel","u32"),t.SSBO=fg.newInstance({label:"rendererLightSSBO"}),t.lightTimeString="",t.bindGroup=jp.newInstance({label:"rendererBG"}),t.bindGroup.setBindables([t.UBO,t.SSBO]),t.tmpMat4=p(new Float64Array(16)),t.stabilizedTime={},ht(t.stabilizedTime,{mtime:0}),bt(e,t,["bindGroup","stabilizedTime"]),Ct(e,t,["stabilizedCenter"]),St(e,t,["renderEncoder","selector","suppressClear","UBO"]),Ag(e,t)}),"vtkWebGPURenderer");Lp("vtkRenderer",Pg);const{CoordinateSystem:Ig}=Hi;function Og(e,t){t.classHierarchy.push("vtkWebGPUActor"),e.buildPass=n=>{n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=n=>{t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=>{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.queryPass=(e,n)=>{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.getBufferShift=n=>(e.getKeyMatrices(n),t.bufferShift),e.getKeyMatrices=e=>{if(Math.max(t.renderable.getMTime(),e.getStabilizedTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();const n=t.renderable.getMatrix();t.bufferShift[0]=n[3],t.bufferShift[1]=n[7],t.bufferShift[2]=n[11];const r=e.getStabilizedCenterByReference();t.renderable.getCoordinateSystem()===Ig.WORLD&&(t.bufferShift[0]-=r[0],t.bufferShift[1]-=r[1],t.bufferShift[2]-=r[2]),f(t.keyMatrices.bcwc,n),t.renderable.getIsIdentity()?p(t.keyMatrices.normalMatrix):(c(t.keyMatrices.normalMatrix,t.keyMatrices.bcwc),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,g(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),f(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),b(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),t.renderable.getCoordinateSystem()===Ig.WORLD?b(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]):c(t.keyMatrices.bcsc,t.keyMatrices.bcwc),t.keyMatricesTime.modified()}return t.keyMatrices}}const Eg={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};const Mg=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Eg,n),Xt.extend(e,t,n),t.keyMatricesTime={},Wt.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},Wt.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],Og(e,t)}));Lp("vtkActor",Mg);const{CoordinateSystem:Rg}=Hi;function Dg(e,t){t.classHierarchy.push("vtkWebGPUActor2D"),e.buildPass=n=>{n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=n=>{t.renderable&&t.renderable.getNestedVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getNestedPickable())&&(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=n=>{!t.renderable||!t.renderable.getNestedVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getNestedPickable()||(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.queryPass=(e,n)=>{if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.getBufferShift=n=>(e.getKeyMatrices(n),t.bufferShift),e.getKeyMatrices=e=>{if(Math.max(t.renderable.getMTime(),e.getStabilizedTime())>t.keyMatricesTime.getMTime()){t.bufferShift[0]=0,t.bufferShift[1]=0,t.bufferShift[2]=0;const n=e.getStabilizedCenterByReference();t.renderable.getCoordinateSystem()===Rg.WORLD&&(t.bufferShift[0]-=n[0],t.bufferShift[1]-=n[1],t.bufferShift[2]-=n[2]),p(t.keyMatrices.bcwc),p(t.keyMatrices.normalMatrix),b(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),t.renderable.getCoordinateSystem()===Rg.WORLD?b(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-n[0],-n[1],-n[2]]):c(t.keyMatrices.bcsc,t.keyMatrices.bcwc),t.keyMatricesTime.modified()}return t.keyMatrices}}const Bg={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};const Lg=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bg,n),Xt.extend(e,t,n),t.keyMatricesTime={},Wt.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},Wt.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],Dg(e,t)}));function Vg(e,t){t.classHierarchy.push("vtkWebGPUCubeAxesActor"),e.buildPass=n=>{n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.CubeAxesActorHelper.getRenderable()||t.CubeAxesActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.CubeAxesActorHelper.getTmActor()),e.addMissingNode(t.renderable.getGridActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=>{if(e){const e=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,n=t.WebGPURenderer.getTiledSizeAndOrigin();t.CubeAxesActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t.WebGPURenderWindow.getRenderable())}}}Lp("vtkActor2D",Lg);const _g={};const Ng=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,_g,n),Xt.extend(e,t,n),t.CubeAxesActorHelper=Vu.newCubeAxesActorHelper(),Vg(e,t)}),"vtkWebGPUCubeAxesActor");Lp("vtkCubeAxesActor",Ng);const{DisplayLocation:Fg}=rp;function kg(e,t){t.classHierarchy.push("vtkProperty2D"),e.setDisplayLocationToBackground=()=>e.setDisplayLocation(Fg.BACKGROUND),e.setDisplayLocationToForeground=()=>e.setDisplayLocation(Fg.FOREGROUND),e.setRepresentationToWireframe=()=>e.setRepresentation(Yi.WIREFRAME),e.setRepresentationToSurface=()=>e.setRepresentation(Yi.SURFACE),e.setRepresentationToPoints=()=>e.setRepresentation(Yi.POINTS),e.getRepresentationAsString=()=>Wt.enumToString(Yi,t.representation)}const Ug={color:[1,1,1],opacity:1,pointSize:1,lineWidth:1,representation:Yi.SURFACE,displayLocation:Fg.FOREGROUND};function Gg(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ug,n),Wt.obj(e,t),Wt.setGet(e,t,["opacity","lineWidth","pointSize","displayLocation","representation"]),Wt.setGetArray(e,t,["color"],3),kg(e,t)}var zg={newInstance:Wt.newInstance(Gg,"vtkProperty2D"),extend:Gg,...rp};const{BufferUsage:Wg,PrimitiveTypes:Hg}=sg,{Representation:jg}=os,{ScalarMode:$g}=Zl,{CoordinateSystem:Kg}=Hi,{DisplayLocation:qg}=zg,Xg="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@vertex\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n var vertex: vec4 = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",Yg='\nstruct PBRData {\n diffuse: vec3,\n specular: vec3,\n}\n\n// Dot product with the max already in it\nfn mdot(a: vec3, b: vec3) -> f32 {\n return max(0.0, dot(a, b));\n}\n// Dot product with a max in it that does not allow for negative values\n// Physically based rendering is accurate as long as normals are accurate,\n// however this is pretty often not the case. In order to prevent negative\n// values from ruining light calculations and creating zones of zero light,\n// this remapping is used, which smoothly clamps the dot product between\n// zero and one while still maintaining a good amount of accuracy.\nfn cdot(a: vec3, b: vec3) -> f32 {\n var d: f32 = max(0.0, dot(a, b));\n d = pow((d + 1.0) / 2.0, 2.6);\n return d;\n}\n\n// Lambertian diffuse model\nfn lambertDiffuse(base: vec3, N: vec3, L: vec3) -> vec3 {\n var pi: f32 = 3.14159265359; \n var NdotL: f32 = mdot(N, L);\n NdotL = pow(NdotL, 1.5);\n return (base/pi)*NdotL;\n}\n\n// Yasuhiro Fujii improvement on the Oren-Nayar model\n// https://mimosa-pudica.net/improved-oren-nayar.html\n// p is surface color, o is roughness\nfn fujiiOrenNayar(p: vec3, o: f32, N: vec3, L: vec3, V: vec3) -> vec3 {\n var invpi: f32 = 0.31830988618; // 1/pi\n\n var o2 = o*o;\n var NdotL: f32 = mdot(N, L);\n NdotL = pow(NdotL, 1.5); // Less physically accurate, but hides the "seams" between lights better\n\n var NdotV: f32 = mdot(N, V);\n var LdotV: f32 = mdot(L, V);\n\n var s: f32 = LdotV - NdotL*NdotV;\n var t: f32 = mix(1.0, max(NdotL, NdotV), step(0.0, s)); // Mix with step is the equivalent of an if statement\n var A: vec3 = 0.5*(o2 / (o2 + 0.33)) + 0.17*p*(o2 / (o2 + 0.13));\n A = invpi*(1 - A);\n var B: f32 = 0.45*(o2 / (o2 + 0.09));\n B = invpi*B;\n\n return p*NdotL*(A + B*(s/t));\n}\n\n// Fresnel portion of BRDF (IOR only, simplified)\nfn schlickFresnelIOR(V: vec3, N: vec3, ior: f32, k: f32) -> f32 {\n var NdotV: f32 = mdot(V, N);\n var F0: f32 = (pow((ior - 1.0), 2.0) + k*k) / (pow((ior + 1.0), 2.0) + k*k); // This takes into account the roughness, which the other one does not\n return F0 + (1.0 - F0) * pow((1.0-NdotV), 5.0);\n}\n\n// Fresnel portion of BRDF (Color ior, better)\nfn schlickFresnelRGB(V: vec3, N: vec3, F0: vec3) -> vec3 {\n var NdotV: f32 = mdot(V, N);\n return F0 + (1.0 - F0) * pow((1-NdotV), 5.0);\n}\n\n// Normal portion of BRDF\n// https://learnopengl.com/PBR/Theory\n// Trowbridge-Reitz GGX functions: normal, halfway, roughness^2\nfn trGGX(N: vec3, H: vec3, a: f32) -> f32 {\n var pi: f32 = 3.14159265359; \n\n var a2: f32 = a*a;\n var NdotH = mdot(N, H);\n var NdotH2 = NdotH*NdotH;\n \n var denom: f32 = NdotH2 * (a2 - 1.0) + 1.0;\n\n return a2 / max((pi*denom*denom), 0.000001);\n}\n\n// A VERY bad approximation of anisotropy. Real anisotropic calculations require tangent and bitangent\nfn anisotrophicTrGGX(N: vec3, H: vec3, O: vec3, s: f32, a: f32) -> f32 {\n var Op: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(O) * s, 0.)).xyz;\n\n var ggx1: f32 = trGGX(N + Op*s, H, a);\n var ggx2: f32 = trGGX(N - Op*s, H, a);\n return (0.5 * ggx1 + 0.5 * ggx2);\n}\n\n// Geometry portion of BRDF\nfn schlickGGX(N: vec3, X: vec3, k: f32) -> f32 {\n var NdotX = cdot(N, X);\n return NdotX / max(0.000001, (NdotX*(1.0-k) + k));\n}\n\nfn smithSurfaceRoughness(N: vec3, V: vec3, L: vec3, k: f32) -> f32 {\n var ggx1: f32 = min(1.0, schlickGGX(N, V, k));\n var ggx2: f32 = min(1.0, schlickGGX(N, L, k));\n return ggx1*ggx2;\n}\n\n// BRDF Combination\nfn cookTorrance(D: f32, F: f32, G: f32, N: vec3, V: vec3, L: vec3) -> f32 {\n var num: f32 = D*F*G;\n var denom: f32 = 4*cdot(V, N)*cdot(L, N);\n\n return num / max(denom, 0.000001);\n}\n\n// Different lighting calculations for different light sources\nfn calcDirectionalLight(N: vec3, V: vec3, ior: f32, roughness: f32, metallic: f32, direction: vec3, color: vec3, base: vec3) -> PBRData { \n var L: vec3 = normalize(direction); // Light Vector\n var H: vec3 = normalize(L + V); // Halfway Vector\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2;\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L); // Fresnel term is replaced with 1 because it is added later\n var incoming: vec3 = color;\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5);\n\n var specular: vec3 = brdf*incoming*angle;\n // Oren-Nayar gives a clay-like effect when fully rough which some people may not want, so it might be better to give a separate\n // control property for the diffuse vs specular roughness\n var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V); \n // Stores the specular and diffuse separately to allow for finer post processing\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// TODO: find some way to reduce the number of arguments going in here\nfn calcPointLight(N: vec3, V: vec3, fragPos: vec3, ior: f32, roughness: f32, metallic: f32, position: vec3, color: vec3, base: vec3) -> PBRData {\n var L: vec3 = normalize(position - fragPos); // Light Vector\n var H: vec3 = normalize(L + V); // Halfway Vector\n var dist = distance(position, fragPos);\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L);\n var incoming: vec3 = color * (1.0 / (dist*dist));\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources\n\n var specular: vec3 = brdf*incoming*angle;\n var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V);\n\n // Stores the specular and diffuse separately to allow for finer post processing\n // Could also be done (propably more properly) with a struct\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// For a reason unknown to me, spheres dont seem to behave propperly with head-on spot lights\nfn calcSpotLight(N: vec3, V: vec3, fragPos: vec3, ior: f32, roughness: f32, metallic: f32, position: vec3, direction: vec3, cones: vec2, color: vec3, base: vec3) -> PBRData {\n var L: vec3 = normalize(position - fragPos);\n var H: vec3 = normalize(L + V); // Halfway Vector\n var dist = distance(position, fragPos);\n\n var alpha = roughness*roughness;\n var k: f32 = alpha*alpha / 2.0; // could also be pow(alpha + 1.0, 2) / 8\n\n var D: f32 = trGGX(N, H, alpha); // Distribution\n // var F: f32 = schlickFresnelIOR(V, N, ior, k); // Fresnel\n var G: f32 = smithSurfaceRoughness(N, V, L, k); // Geometry\n\n var brdf: f32 = cookTorrance(D, 1.0, G, N, V, L);\n \n // Cones.x is the inner phi and cones.y is the outer phi\n var theta: f32 = mdot(normalize(direction), L);\n var epsilon: f32 = cones.x - cones.y;\n var intensity: f32 = (theta - cones.y) / epsilon;\n intensity = clamp(intensity, 0.0, 1.0);\n intensity /= dist*dist;\n\n var incoming: vec3 = color * intensity;\n\n var angle: f32 = mdot(L, N);\n angle = pow(angle, 1.5); // Smoothing factor makes it less accurate, but reduces ugly "seams" bewteen light sources\n\n var specular: vec3 = brdf*incoming*angle;\n var diffuse: vec3 = incoming*fujiiOrenNayar(base, roughness, N, L, V);\n\n // Stores the specular and diffuse separately to allow for finer post processing\n // Could also be done (propably more properly) with a struct\n var out = PBRData(diffuse, specular);\n \n return out; // Returns angle along with color of light so the final color can be multiplied by angle as well (creates black areas)\n}\n\n// Environment mapping stuff\n// Takes in a vector and converts it to an equivalent coordinate in a rectilinear texture. Should be replaced with cubemaps at some point\nfn vecToRectCoord(dir: vec3) -> vec2 {\n var tau: f32 = 6.28318530718;\n var pi: f32 = 3.14159265359;\n var out: vec2 = vec2(0.0);\n\n out.x = atan2(dir.z, dir.x) / tau;\n out.x += 0.5;\n\n var phix: f32 = length(vec2(dir.x, dir.z));\n out.y = atan2(dir.y, phix) / pi + 0.5;\n\n return out;\n}\n\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::TCoord::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n // Temporary ambient, diffuse, and opacity\n var ambientColor: vec4 = mapperUBO.AmbientColor;\n var diffuseColor: vec4 = mapperUBO.DiffuseColor;\n var opacity: f32 = mapperUBO.Opacity;\n\n // This should be declared somewhere else\n var _diffuseMap: vec4 = vec4(1.0);\n var _roughnessMap: vec4 = vec4(1.0);\n var _metallicMap: vec4 = vec4(1.0);\n var _normalMap: vec4 = vec4(0.0, 0.0, 1.0, 0.0); // normal map was setting off the normal vector detection in fragment\n var _ambientOcclusionMap: vec4 = vec4(1.);\n var _emissionMap: vec4 = vec4(0.);\n\n //VTK::Color::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Normal::Impl\n\n var computedColor: vec4 = vec4(diffuseColor.rgb, 1.0);\n\n //VTK::Light::Impl\n\n //VTK::Select::Impl\n\n if (computedColor.a == 0.0) { discard; };\n\n //VTK::Position::Impl\n\n //VTK::RenderEncoder::Impl\n\n return output;\n}\n';function Qg(e){return e.indexOf("edge")>=0}function Zg(e,t){t.classHierarchy.push("vtkWebGPUCellArrayMapper"),e.buildPass=n=>{n&&(t.is2D?(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor2D"),t.forceZValue=!0):(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.forceZValue=!1),t.coordinateSystem=t.WebGPUActor.getRenderable().getCoordinateSystem(),t.useRendererMatrix=t.coordinateSystem!==Kg.DISPLAY,t.WebGPURenderer=t.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.device=t.WebGPURenderWindow.getDevice())},e.translucentPass=n=>{n&&(e.prepareToDraw(t.WebGPURenderer.getRenderEncoder()),t.renderEncoder.registerDrawCallback(t.pipeline,e.draw))},e.opaquePass=n=>{n&&(e.prepareToDraw(t.WebGPURenderer.getRenderEncoder()),t.renderEncoder.registerDrawCallback(t.pipeline,e.draw))},e.updateUBO=()=>{const n=t.WebGPUActor.getRenderable().getProperty(),r=t.UBO.getSendTime();if(e.getMTime()>r||n.getMTime()>r||t.renderable.getMTime()>r){const e=t.WebGPUActor.getKeyMatrices(t.WebGPURenderer);if(t.UBO.setArray("BCWCMatrix",e.bcwc),t.UBO.setArray("BCSCMatrix",e.bcsc),t.UBO.setArray("MCWCNormals",e.normalMatrix),t.is2D){t.UBO.setValue("ZValue",t.WebGPUActor.getRenderable().getProperty().getDisplayLocation()===qg.FOREGROUND?1:0);const e=n.getColorByReference();t.UBO.setValue("AmbientIntensity",1),t.UBO.setArray("DiffuseColor",[e[0],e[1],e[2],1]),t.UBO.setValue("DiffuseIntensity",0),t.UBO.setValue("SpecularIntensity",0)}else{let e=n.getAmbientColorByReference();t.UBO.setValue("AmbientIntensity",n.getAmbient()),t.UBO.setArray("AmbientColor",[e[0],e[1],e[2],1]),t.UBO.setValue("DiffuseIntensity",n.getDiffuse()),e=n.getDiffuseColorByReference(),t.UBO.setArray("DiffuseColor",[e[0],e[1],e[2],1]),t.UBO.setValue("Roughness",n.getRoughness()),t.UBO.setValue("BaseIOR",n.getBaseIOR()),t.UBO.setValue("Metallic",n.getMetallic()),t.UBO.setValue("NormalStrength",n.getNormalStrength()),t.UBO.setValue("Emission",n.getEmission()),t.UBO.setValue("SpecularIntensity",n.getSpecular()),e=n.getSpecularColorByReference(),t.UBO.setArray("SpecularColor",[e[0],e[1],e[2],1])}const r=n.getEdgeColorByReference?.();r&&t.UBO.setArray("EdgeColor",[r[0],r[1],r[2],1]),t.UBO.setValue("LineWidth",n.getLineWidth()),t.UBO.setValue("Opacity",n.getOpacity()),t.UBO.setValue("PropID",t.WebGPUActor.getPropID());const o=t.WebGPURenderWindow.getDevice();t.UBO.sendIfNeeded(o)}},e.haveWideLines=()=>{const e=t.WebGPUActor.getRenderable(),n=e.getProperty().getRepresentation();return!(e.getProperty().getLineWidth()<=1)&&t.primitiveType!==Hg.Verts&&(t.primitiveType!==Hg.Triangles&&t.primitiveType!==Hg.TriangleStrips||n===jg.WIREFRAME)},e.replaceShaderPosition=(n,r,o)=>{const a=r.getShaderDescription("vertex");a.addBuiltinOutput("vec4","@builtin(position) Position"),a.hasOutput("vertexVC")||a.addOutput("vec4","vertexVC");let i=a.getCode();t.useRendererMatrix?(i=Jp.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4 = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"," output.vertexVC = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4(vertexBC.xyz, 1.0);","//VTK::Position::Impl"]).result,t.forceZValue&&(i=Jp.substitute(i,"//VTK::Position::Impl",["pCoord = vec4(pCoord.xyz/pCoord.w, 1.0);","pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)):(i=Jp.substitute(i,"//VTK::Position::Impl",[" var pCoord: vec4 = mapperUBO.BCSCMatrix*vertexBC;"," pCoord.x = 2.0* pCoord.x / rendererUBO.viewportSize.x - 1.0;"," pCoord.y = 2.0* pCoord.y / rendererUBO.viewportSize.y - 1.0;"," pCoord.z = 0.5 - 0.5 * pCoord.z;","//VTK::Position::Impl"]).result,t.forceZValue&&(i=Jp.substitute(i,"//VTK::Position::Impl",[" pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)),e.haveWideLines()&&(a.addBuiltinInput("u32","@builtin(instance_index) instanceIndex"),i=Jp.substitute(i,"//VTK::Position::Impl",[" var tmpPos: vec4 = pCoord;"," var numSteps: f32 = ceil(mapperUBO.LineWidth - 1.0);"," var offset: f32 = (mapperUBO.LineWidth - 1.0) * (f32(input.instanceIndex / 2u) - numSteps/2.0) / numSteps;"," var tmpPos2: vec3 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * (f32(input.instanceIndex) % 2.0) * offset / rendererUBO.viewportSize.x;"," tmpPos2.y = tmpPos2.y + 2.0 * (f32(input.instanceIndex + 1u) % 2.0) * offset / rendererUBO.viewportSize.y;"," tmpPos2.z = min(1.0, tmpPos2.z + 0.00001);"," pCoord = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);","//VTK::Position::Impl"]).result),i=Jp.substitute(i,"//VTK::Position::Impl",[" output.Position = pCoord;"]).result,a.setCode(i)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderNormal=(e,n,r)=>{const o=r.getBuffer("normalMC"),a=t.WebGPUActor.getRenderable();if(o){const e=n.getShaderDescription("vertex");e.hasOutput("normalVC")||e.addOutput("vec3","normalVC",o.getArrayInformation()[0].interpolation),e.hasOutput("tangentVC")||e.addOutput("vec3","tangentVC",o.getArrayInformation()[0].interpolation),e.hasOutput("bitangentVC")||e.addOutput("vec3","bitangentVC",o.getArrayInformation()[0].interpolation);let t=e.getCode();t=Jp.substitute(t,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"," var c1: vec3 = cross(output.normalVC, vec3(0, 0, 1));"," var c2: vec3 = cross(output.normalVC, vec3(0, 1, 0));"," var tangent: vec3 = mix(c1, c2, distance(c1, c2));"," output.tangentVC = normalize(tangent);"," output.bitangentVC = normalize(cross(output.normalVC, tangent));"]).result,e.setCode(t);const r=n.getShaderDescription("fragment");t=r.getCode(),t=a.getProperty().getNormalTexture()?Jp.substitute(t,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," var tangent: vec3 = input.tangentVC;"," var bitangent: vec3 = input.bitangentVC;"," var TCVCMatrix: mat3x3 = mat3x3("," tangent.x, bitangent.x, normal.x,"," tangent.y, bitangent.y, normal.y,"," tangent.z, bitangent.z, normal.z,"," );"," var mappedNormal: vec3 = TCVCMatrix * (_normalMap.xyz * 2 - 1);"," normal = mix(normal, mappedNormal, mapperUBO.NormalStrength);"," normal = normalize(normal);"]).result:Jp.substitute(t,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," normal = normalize(normal);"]).result,r.setCode(t)}},t.shaderReplacements.set("replaceShaderNormal",e.replaceShaderNormal),e.replaceShaderLight=(e,n,r)=>{if(e.includes("sel"))return;const o=n.getShaderDescription("vertex");o.hasOutput("vertexVC")||o.addOutput("vec4","vertexVC");const a=t.WebGPURenderer.getRenderable(),i=n.getShaderDescription("fragment");let s=i.getCode();if(!s.includes("var normal:")||!t.useRendererMatrix||Qg(e)||t.is2D||e.includes("sel"))s=Jp.substitute(s,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"," computedColor = vec4(diffuse * _diffuseMap.rgb, mapperUBO.Opacity);"]).result,i.setCode(s);else{const e=[" var pi: f32 = 3.14159265359;"," var fragPos: vec3 = vec3(input.vertexVC.xyz);"," var V: vec3 = mix(normalize(-fragPos), vec3(0, 0, 1), f32(rendererUBO.cameraParallel)); // View Vector"," var baseColor: vec3 = _diffuseMap.rgb * diffuseColor.rgb;"," var roughness: f32 = max(0.000001, mapperUBO.Roughness * _roughnessMap.r);"," var metallic: f32 = mapperUBO.Metallic * _metallicMap.r;"," var alpha: f32 = roughness*roughness;"," var ior: f32 = mapperUBO.BaseIOR;"," var k: f32 = alpha*alpha / 2;"," var diffuse: vec3 = vec3(0.);"," var specular: vec3 = vec3(0.);"," var emission: vec3 = _emissionMap.rgb * mapperUBO.Emission;"," {"," var i: i32 = 0;"," loop {"," if !(i < rendererUBO.LightCount) { break; }"," switch (i32(rendererLightSSBO.values[i].LightData.x)) {"," // Point Light"," case 0 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var calculated: PBRData = calcPointLight(normal, V, fragPos, ior, roughness, metallic, pos, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Directional light"," case 1 {"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var calculated: PBRData = calcDirectionalLight(normal, V, ior, roughness, metallic, dir, color, baseColor); // diffuseColor.rgb needs to be fixed with a more dynamic diffuse color"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Spot Light"," case 2 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var cones: vec2 = vec2(rendererLightSSBO.values[i].LightData.y, rendererLightSSBO.values[i].LightData.z);"," var calculated: PBRData = calcSpotLight(normal, V, fragPos, ior, roughness, metallic, pos, dir, cones, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," default { continue; }"," }"," continuing { i++; }"," }"," }"," var fresnel: f32 = schlickFresnelIOR(V, normal, ior, k); // Fresnel"," fresnel = min(1.0, fresnel);"," // This could be controlled with its own variable (that isnt base color) for better artistic control"," var fresnelMetallic: vec3 = schlickFresnelRGB(V, normal, baseColor); // Fresnel for metal, takes color into account"," var kS: vec3 = mix(vec3(fresnel), fresnelMetallic, metallic);"," kS = min(vec3(1.0), kS);"," var kD: vec3 = (1.0 - kS) * (1.0 - metallic);"," var PBR: vec3 = mapperUBO.DiffuseIntensity*kD*diffuse + kS*specular;"," PBR += emission;"," computedColor = vec4(PBR, mapperUBO.Opacity);"];a.getEnvironmentTexture()?.getImageLoaded()&&e.push(" // To get diffuse IBL, the texture is sampled with normals in worldspace"," var diffuseIBLCoords: vec3 = (transpose(rendererUBO.WCVCNormals) * vec4(normal, 1.)).xyz;"," var diffuseCoords: vec2 = vecToRectCoord(diffuseIBLCoords);"," // To get specular IBL, the texture is sampled as the worldspace reflection between the normal and view vectors"," // Reflections are first calculated in viewspace, then converted to worldspace to sample the environment"," var VreflN: vec3 = normalize(reflect(-V, normal));"," var reflectionIBLCoords = (transpose(rendererUBO.WCVCNormals) * vec4(VreflN, 1.)).xyz;"," var specularCoords: vec2 = vecToRectCoord(reflectionIBLCoords);"," var diffuseIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, diffuseCoords, rendererUBO.MaxEnvironmentMipLevel);"," var level = roughness * rendererUBO.MaxEnvironmentMipLevel;"," var specularIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, specularCoords, level);"," var specularIBLContribution: vec3 = specularIBL.rgb*rendererUBO.BackgroundSpecularStrength;"," computedColor += vec4(specularIBLContribution*kS, 0);"," var diffuseIBLContribution: vec3 = diffuseIBL.rgb*rendererUBO.BackgroundDiffuseStrength;"," diffuseIBLContribution *= baseColor * _ambientOcclusionMap.rgb;"," computedColor += vec4(diffuseIBLContribution*kD, 0);"),s=Jp.substitute(s,"//VTK::Light::Impl",e).result,i.setCode(s)}},t.shaderReplacements.set("replaceShaderLight",e.replaceShaderLight),e.replaceShaderColor=(e,t,n)=>{if(Qg(e)){const e=t.getShaderDescription("fragment");let n=e.getCode();return n=Jp.substitute(n,"//VTK::Color::Impl",["ambientColor = mapperUBO.EdgeColor;","diffuseColor = mapperUBO.EdgeColor;"]).result,void e.setCode(n)}const r=n.getBuffer("colorVI");if(!r)return;const o=t.getShaderDescription("vertex");o.addOutput("vec4","color",r.getArrayInformation()[0].interpolation);let a=o.getCode();a=Jp.substitute(a,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,o.setCode(a);const i=t.getShaderDescription("fragment");a=i.getCode(),a=Jp.substitute(a,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,i.setCode(a)},t.shaderReplacements.set("replaceShaderColor",e.replaceShaderColor),e.replaceShaderTCoord=(e,n,r)=>{if(!r.hasAttribute("tcoord"))return;const o=n.getShaderDescription("vertex"),a=r.getBuffer("tcoord"),i=pf(a.getArrayInformation()[0].format);let s=o.getCode();o.addOutput(`vec${i}`,"tcoordVS"),s=Jp.substitute(s,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,o.setCode(s);const l=n.getShaderDescription("fragment");s=l.getCode();const c=t.WebGPUActor.getRenderable(),u=e=>!!e&&e.getDimensionality()===i,d=[];(c.getProperty().getDiffuseTexture?.()?.getImageLoaded()||c.getTextures()[0]||t.colorTexture)&&(u(c.getProperty().getDiffuseTexture?.())||u(c.getTextures()[0])||u(t.colorTexture))&&d.push("_diffuseMap = textureSample(DiffuseTexture, DiffuseTextureSampler, input.tcoordVS);"),c.getProperty().getRoughnessTexture?.()?.getImageLoaded()&&u(c.getProperty().getRoughnessTexture())&&d.push("_roughnessMap = textureSample(RoughnessTexture, RoughnessTextureSampler, input.tcoordVS);"),c.getProperty().getMetallicTexture?.()?.getImageLoaded()&&u(c.getProperty().getMetallicTexture())&&d.push("_metallicMap = textureSample(MetallicTexture, MetallicTextureSampler, input.tcoordVS);"),c.getProperty().getNormalTexture?.()?.getImageLoaded()&&u(c.getProperty().getNormalTexture())&&d.push("_normalMap = textureSample(NormalTexture, NormalTextureSampler, input.tcoordVS);"),c.getProperty().getAmbientOcclusionTexture?.()?.getImageLoaded()&&u(c.getProperty().getAmbientOcclusionTexture())&&d.push("_ambientOcclusionMap = textureSample(AmbientOcclusionTexture, AmbientOcclusionTextureSampler, input.tcoordVS);"),c.getProperty().getEmissionTexture?.()?.getImageLoaded()&&u(c.getProperty().getEmissionTexture())&&d.push("_emissionMap = textureSample(EmissionTexture, EmissionTextureSampler, input.tcoordVS);"),s=Jp.substitute(s,"//VTK::TCoord::Impl",d).result,l.setCode(s)},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.replaceShaderSelect=(e,t,n)=>{if(e.includes("sel")){const e=t.getShaderDescription("fragment");let n=e.getCode();n=Jp.substitute(n,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,e.setCode(n)}},t.shaderReplacements.set("replaceShaderSelect",e.replaceShaderSelect),e.getUsage=(e,t)=>e===jg.POINTS||t===Hg.Points?Wg.Verts:t===Hg.Lines?Wg.Lines:e===jg.WIREFRAME?t===Hg.Triangles?Wg.LinesFromTriangles:Wg.LinesFromStrips:t===Hg.Triangles?Wg.Triangles:t===Hg.TriangleStrips?Wg.Strips:t===Hg.TriangleEdges?Wg.LinesFromTriangles:Wg.LinesFromStrips,e.getHashFromUsage=e=>`pt${e}`,e.getTopologyFromUsage=e=>{switch(e){case Wg.Triangles:return"triangle-list";case Wg.Verts:return"point-list";case Wg.Lines:default:return"line-list"}},e.buildVertexInput=()=>{const n=t.currentInput,r=t.cellArray,o=t.primitiveType;let a=t.WebGPUActor.getRenderable().getProperty().getRepresentation();const i=t.WebGPURenderWindow.getDevice();let s=!1;o===Hg.TriangleEdges&&(s=!0,a=jg.WIREFRAME);const l=t.vertexInput,c=n.getPoints();let u;if(r){const e={hash:`R${a}P${o}${r.getMTime()}`,usage:Wg.Index,cells:r,numberOfPoints:c.getNumberOfPoints(),primitiveType:o,representation:a};u=i.getBufferManager().getBuffer(e),l.setIndexBuffer(u)}else l.setIndexBuffer(null);if(c){const e=t.WebGPUActor.getBufferShift(t.WebGPURenderer),n={hash:`${c.getMTime()}I${u.getMTime()}${e.join()}float32x4`,usage:Wg.PointArray,format:"float32x4",dataArray:c,indexBuffer:u,shift:e,packExtra:!0},r=i.getBufferManager().getBuffer(n);l.addBuffer(r,["vertexBC"])}else l.removeBufferIfPresent("vertexBC");const d=e.getUsage(a,o);if(t._usesCellNormals=!1,t.is2D||d!==Wg.Triangles&&d!==Wg.Strips)l.removeBufferIfPresent("normalMC");else{const e=n.getPointData().getNormals(),a={format:"snorm8x4",indexBuffer:u,packExtra:!0,shift:0,scale:127};if(e){a.hash=`${e.getMTime()}I${u.getMTime()}snorm8x4`,a.dataArray=e,a.usage=Wg.PointArray;const t=i.getBufferManager().getBuffer(a);l.addBuffer(t,["normalMC"])}else if(o===Hg.Triangles){t._usesCellNormals=!0,a.hash=`PFN${c.getMTime()}I${u.getMTime()}snorm8x4`,a.dataArray=c,a.cells=r,a.usage=Wg.NormalsFromPoints;const e=i.getBufferManager().getBuffer(a);l.addBuffer(e,["normalMC"])}else l.removeBufferIfPresent("normalMC")}let p=!1;if(t.renderable.getScalarVisibility()){const e=t.renderable.getColorMapColors();if(e&&!s){const r=t.renderable.getScalarMode();let o=!1;r!==$g.USE_CELL_DATA&&r!==$g.USE_CELL_FIELD_DATA&&r!==$g.USE_FIELD_DATA&&n.getPointData().getScalars()||r===$g.USE_POINT_FIELD_DATA||!e||(o=!0);const a={usage:Wg.PointArray,format:"unorm8x4",hash:`${o}${e.getMTime()}I${u.getMTime()}unorm8x4`,dataArray:e,indexBuffer:u,cellData:o,cellOffset:0},s=i.getBufferManager().getBuffer(a);l.addBuffer(s,["colorVI"]),p=!0}}p||l.removeBufferIfPresent("colorVI");let f=null;if(f=t.renderable.getInterpolateScalarsBeforeMapping?.()&&t.renderable.getColorCoordinates()?t.renderable.getColorCoordinates():n.getPointData().getTCoords(),f&&!s){const e=i.getBufferManager().getBufferForPointArray(f,l.getIndexBuffer());l.addBuffer(e,["tcoord"])}else l.removeBufferIfPresent("tcoord")},e.updateTextures=()=>{const e=[],n=[],r=t.renderable.getColorTextureMap?.();r&&(t.colorTexture||(t.colorTexture=mu.newInstance({label:"polyDataColor"})),t.colorTexture.setInputData(r),n.push(["Diffuse",t.colorTexture]));const o=t.WebGPUActor.getRenderable(),a=t.WebGPURenderer.getRenderable(),i=[];if(o.getProperty().getDiffuseTexture?.()){const e=["Diffuse",o.getProperty().getDiffuseTexture()];i.push(e)}if(o.getTextures()[0]){const e=["Diffuse",o.getTextures()[0]];i.push(e)}if(t.colorTexture){const e=["Diffuse",t.colorTexture];i.push(e)}if(o.getProperty().getRoughnessTexture?.()){const e=["Roughness",o.getProperty().getRoughnessTexture()];i.push(e)}if(o.getProperty().getMetallicTexture?.()){const e=["Metallic",o.getProperty().getMetallicTexture()];i.push(e)}if(o.getProperty().getNormalTexture?.()){const e=["Normal",o.getProperty().getNormalTexture()];i.push(e)}if(o.getProperty().getAmbientOcclusionTexture?.()){const e=["AmbientOcclusion",o.getProperty().getAmbientOcclusionTexture()];i.push(e)}if(o.getProperty().getEmissionTexture?.()){const e=["Emission",o.getProperty().getEmissionTexture()];i.push(e)}if(a.getEnvironmentTexture?.()){const e=["Environment",a.getEnvironmentTexture()];i.push(e)}for(let e=0;e=0;n--)e[n]||(t.textures.splice(n,1),t.textureViews.splice(n,1))},e.computePipelineHash=()=>{let n=`pd${t.useRendererMatrix?"r":""}${t.forceZValue?"z":""}`;if(t.primitiveType===Hg.TriangleEdges||t.primitiveType===Hg.TriangleStripEdges)n+="edge";else{if(t.vertexInput.hasAttribute("normalMC")&&(n+="n"),t.vertexInput.hasAttribute("colorVI")&&(n+="c"),t.vertexInput.hasAttribute("tcoord")){const e=t.vertexInput.getBuffer("tcoord");n+=`t${pf(e.getArrayInformation()[0].format)}`}t.textures.length&&(n+=`tx${t.textures.length}`)}t._usesCellNormals&&(n+="cn"),t.SSBO&&(n+="ssbo"),n+=e.getHashFromUsage(t.usage),n+=t.renderEncoder.getPipelineHash(),t.pipelineHash=n},e.updateBuffers=()=>{t.primitiveType!==Hg.TriangleEdges&&t.primitiveType!==Hg.TriangleStripEdges&&e.updateTextures();const n=t.WebGPUActor.getRenderable(),r=n.getProperty().getRepresentation();t.usage=e.getUsage(r,t.primitiveType),e.buildVertexInput();const o=t.vertexInput.getBuffer("vertexBC");if(e.setNumberOfVertices(o.getSizeInBytes()/o.getStrideInBytes()),e.setTopology(e.getTopologyFromUsage(t.usage)),e.updateUBO(),e.haveWideLines()){const t=n.getProperty();e.setNumberOfInstances(Math.ceil(2*t.getLineWidth()))}else e.setNumberOfInstances(1)}}const Jg={is2D:!1,cellArray:null,currentInput:null,cellOffset:0,primitiveType:0,colorTexture:null,renderEncoder:null,textures:null};function em(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jg,n),If.extend(e,t,n),t.fragmentShaderTemplate=Yg,t.vertexShaderTemplate=Xg,t._tmpMat3=ue(new Float64Array(9)),t._tmpMat4=p(new Float64Array(16)),t.UBO=yg.newInstance({label:"mapperUBO"}),t.UBO.addEntry("BCWCMatrix","mat4x4"),t.UBO.addEntry("BCSCMatrix","mat4x4"),t.UBO.addEntry("MCWCNormals","mat4x4"),t.UBO.addEntry("AmbientColor","vec4"),t.UBO.addEntry("DiffuseColor","vec4"),t.UBO.addEntry("EdgeColor","vec4"),t.UBO.addEntry("SpecularColor","vec4"),t.UBO.addEntry("AmbientIntensity","f32"),t.UBO.addEntry("DiffuseIntensity","f32"),t.UBO.addEntry("Roughness","f32"),t.UBO.addEntry("Metallic","f32"),t.UBO.addEntry("Ambient","f32"),t.UBO.addEntry("Normal","f32"),t.UBO.addEntry("Emission","f32"),t.UBO.addEntry("NormalStrength","f32"),t.UBO.addEntry("BaseIOR","f32"),t.UBO.addEntry("SpecularIntensity","f32"),t.UBO.addEntry("LineWidth","f32"),t.UBO.addEntry("Opacity","f32"),t.UBO.addEntry("ZValue","f32"),t.UBO.addEntry("PropID","u32"),t.UBO.addEntry("ClipNear","f32"),t.UBO.addEntry("ClipFar","f32"),t.UBO.addEntry("Time","u32"),St(e,t,["cellArray","currentInput","cellOffset","is2D","primitiveType","renderEncoder"]),t.textures=[],Zg(e,t)}var tm={newInstance:Mt(em,"vtkWebGPUCellArrayMapper"),extend:em};const{PrimitiveTypes:nm}=sg;function rm(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper"),e.createCellArrayMapper=()=>tm.newInstance(),e.buildPass=n=>{if(n){t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.renderable.getStatic()||t.renderable.update();const n=t.renderable.getInputData();t.renderable.mapScalars(n,1),e.updateCellArrayMappers(n)}},e.updateCellArrayMappers=n=>{const r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],o=[];let a=0;for(let i=nm.Points;i<=nm.Triangles;i++)if(r[i].getNumberOfValues()>0){t.primitives[i]||(t.primitives[i]=e.createCellArrayMapper());const s=t.primitives[i];s.setCellArray(r[i]),s.setCurrentInput(n),s.setCellOffset(a),s.setPrimitiveType(i),s.setRenderable(t.renderable),a+=r[i].getNumberOfCells(),o.push(s)}else t.primitives[i]=null;if(t.WebGPUActor.getRenderable().getProperty().getEdgeVisibility())for(let a=nm.TriangleEdges;a<=nm.TriangleStripEdges;a++)if(r[a-2].getNumberOfValues()>0){t.primitives[a]||(t.primitives[a]=e.createCellArrayMapper());const i=t.primitives[a];i.setCellArray(r[a-2]),i.setCurrentInput(n),i.setCellOffset(t.primitives[a-2].getCellOffset()),i.setPrimitiveType(a),i.setRenderable(t.renderable),o.push(i)}else t.primitives[a]=null;e.prepareNodes(),e.addMissingChildren(o),e.removeUnusedNodes()}}const om={primitives:null};const am=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,om,n),Xt.extend(e,t,n),t.primitives=[],rm(e,t)}),"vtkWebGPUPolyDataMapper");Lp("vtkMapper",am);const{PrimitiveTypes:im}=sg;function sm(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper2D"),e.createCellArrayMapper=()=>tm.newInstance(),e.buildPass=n=>{if(n){t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor2D"),t.renderable.getStatic()||t.renderable.update();const n=t.renderable.getInputData();t.renderable.mapScalars(n,1),e.updateCellArrayMappers(n)}},e.updateCellArrayMappers=n=>{const r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],o=[];let a=0;for(let i=im.Points;i<=im.Triangles;i++)if(r[i].getNumberOfValues()>0){t.primitives[i]||(t.primitives[i]=e.createCellArrayMapper());const s=t.primitives[i];s.setCellArray(r[i]),s.setCurrentInput(n),s.setCellOffset(a),s.setPrimitiveType(i),s.setRenderable(t.renderable),s.setIs2D(!0),a+=r[i].getNumberOfCells(),o.push(s)}else t.primitives[i]=null;e.prepareNodes(),e.addMissingChildren(o),e.removeUnusedNodes()}}function lm(e){return{primitives:[],...e}}const cm=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lm(n)),Xt.extend(e,t,n),t.primitives=[],sm(e,t)}),"vtkWebGPUPolyDataMapper2D");function um(e,t){t.classHierarchy.push("vtkWebGPUScalarBarActor"),e.buildPass=n=>{n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.scalarBarActorHelper.getRenderable()||t.scalarBarActorHelper.setRenderable(t.renderable),e.prepareNodes(),e.addMissingNode(t.scalarBarActorHelper.getBarActor()),e.addMissingNode(t.scalarBarActorHelper.getTmActor()),e.removeUnusedNodes())},e.opaquePass=(e,n)=>{if(e){const e=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,n=t.WebGPURenderer.getTiledSizeAndOrigin();t.scalarBarActorHelper.updateAPISpecificData([n.usize,n.vsize],e,t.WebGPURenderWindow.getRenderable())}}}Lp("vtkMapper2D",cm);const dm={};const pm=Mt((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dm,n),Xt.extend(e,t,n),t.scalarBarActorHelper=xp.newScalarBarActorHelper(),um(e,t)}),"vtkWebGPUScalarBarActor");function fm(e,t){t.classHierarchy.push("vtkWebGPUSampler"),e.create=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.device=e,t.options.addressModeU=n.addressModeU?n.addressModeU:"clamp-to-edge",t.options.addressModeV=n.addressModeV?n.addressModeV:"clamp-to-edge",t.options.addressModeW=n.addressModeW?n.addressModeW:"clamp-to-edge",t.options.magFilter=n.magFilter?n.magFilter:"nearest",t.options.minFilter=n.minFilter?n.minFilter:"nearest",t.options.mipmapFilter=n.mipmapFilter?n.mipmapFilter:"nearest",t.options.label=t.label,t.handle=t.device.getHandle().createSampler(t.options),t.bindGroupTime.modified()},e.getShaderCode=(e,n)=>`@binding(${e}) @group(${n}) var ${t.label}: sampler;`,e.getBindGroupEntry=()=>({resource:t.handle})}Lp("vtkScalarBarActor",pm);const gm={device:null,handle:null,label:null,options:null};function mm(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gm,n),Wt.obj(e,t),t.options={},t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),Wt.get(e,t,["bindGroupTime","handle","options"]),Wt.setGet(e,t,["bindGroupLayoutEntry","device","label"]),fm(e,t)}var hm={newInstance:Wt.newInstance(mm),extend:mm};function vm(e,t){t.classHierarchy.push("vtkWebGPUTextureView"),e.create=(e,n)=>{t.texture=e,t.options=n,t.options.dimension=t.options.dimension||"2d",t.options.label=t.label,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=uf(t.texture.getFormat());t.bindGroupLayoutEntry.texture.sampleType=r.sampleType},e.createFromTextureHandle=(e,n)=>{t.texture=null,t.options=n,t.options.dimension=t.options.dimension||"2d",t.options.label=t.label,t.textureHandle=e,t.handle=t.textureHandle.createView(t.options),t.bindGroupLayoutEntry.texture.viewDimension=t.options.dimension;const r=uf(n.format);t.bindGroupLayoutEntry.texture.sampleType=r.sampleType,t.bindGroupTime.modified()},e.getBindGroupEntry=()=>({resource:e.getHandle()}),e.getShaderCode=(e,n)=>{let r="f32";"sint"===t.bindGroupLayoutEntry.texture.sampleType?r="i32":"uint"===t.bindGroupLayoutEntry.texture.sampleType&&(r="u32");let o=`@binding(${e}) @group(${n}) var ${t.label}: texture_${t.options.dimension}<${r}>;`;return"depth"===t.bindGroupLayoutEntry.texture.sampleType&&(o=`@binding(${e}) @group(${n}) var ${t.label}: texture_depth_${t.options.dimension};`),o},e.addSampler=(n,r)=>{const o=hm.newInstance({label:`${t.label}Sampler`});o.create(n,r),e.setSampler(o)},e.getBindGroupTime=()=>(t.texture&&t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.bindGroupTime),e.getHandle=()=>(t.texture&&t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle)}const bm={texture:null,handle:null,sampler:null,label:null};function ym(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bm,n),Wt.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},t.bindGroupTime={},Wt.obj(t.bindGroupTime,{mtime:0}),Wt.get(e,t,["bindGroupTime","texture"]),Wt.setGet(e,t,["bindGroupLayoutEntry","label","sampler"]),vm(e,t)}var Tm={newInstance:Wt.newInstance(ym),extend:ym};const{BufferUsage:xm}=sg;function Sm(e,t){t.classHierarchy.push("vtkWebGPUTexture"),e.create=(e,n)=>{t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;const r=1===t.depth?"2d":"3d";t.format=n.format?n.format:"rgba8unorm",t.mipLevel=n.mipLevel?n.mipLevel:0,t.usage=n.usage?n.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label,dimension:r,mipLevelCount:t.mipLevel+1})},e.assignFromHandle=(e,n,r)=>{t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:"rgba8unorm",t.usage=r.usage?r.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},e.writeImageData=n=>{let r=[];if(n.canvas)return t.device.getHandle().queue.copyExternalImageToTexture({source:n.canvas,flipY:n.flip},{texture:t.handle,premultipliedAlpha:!0},[t.width,t.height,t.depth]),void(t.ready=!0);n.jsImageData&&!n.nativeArray&&(n.width=n.jsImageData.width,n.height=n.jsImageData.height,n.depth=1,n.format="rgba8unorm",n.flip=!0,n.nativeArray=n.jsImageData.data);const o=uf(t.format);let a=t.width*o.stride;const i=(e,t,n)=>{const r=e.length/(t*n)*e.BYTES_PER_ELEMENT,a=2===o.elementSize&&"float"===o.sampleType;if(a||r%256){const i=e,s=r/i.BYTES_PER_ELEMENT,l=o.elementSize,c=256*Math.floor((s*l+255)/256),u=c/l,d=Wt.newTypedArray(a?"Uint16Array":i.constructor.name,u*t*n);for(let e=0;e{const e=uf(t.format);return 2===e.elementSize&&"float"===e.sampleType?1:255},e.getNumberOfComponents=()=>uf(t.format).numComponents,e.getDimensionality=()=>{let e=0;return t.width>1&&e++,t.height>1&&e++,t.depth>1&&e++,e},e.resizeToMatch=e=>{e.getWidth()===t.width&&e.getHeight()===t.height&&e.getDepth()===t.depth||(t.width=e.getWidth(),t.height=e.getHeight(),t.depth=e.getDepth(),t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.resize=function(e,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;e===t.width&&n===t.height&&r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,label:t.label}))},e.createView=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r.dimension||(r.dimension=1===t.depth?"2d":"3d");const o=Tm.newInstance({label:n});return o.create(e,r),o}}const Cm={device:null,handle:null,buffer:null,ready:!1,label:null};function Am(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cm,n),Wt.obj(e,t),Wt.get(e,t,["handle","ready","width","height","depth","format","usage"]),Wt.setGet(e,t,["device","label"]),Sm(e,t)}var wm={newInstance:Wt.newInstance(Am),extend:Am};function Pm(e,t){t.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),e.opaquePass=(n,r)=>{t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent();const o=t.WebGPURenderer.getAspectRatio(),a=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,i=t.WebGPURenderer.getTiledSizeAndOrigin();t.renderable.getUseZValues(),t.renderable.invokeCallback(t.renderable.getInputData(),a,o,i,null)}}const Im={};const Om=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Im,n),Xt.extend(e,t,n),Pm(e,t)}),"vtkWebGPUPixelSpaceCallbackMapper");function Em(){const e=new ArrayBuffer(4),t=new Uint8Array(e),n=new Uint32Array(e);return t[0]=161,t[1]=178,t[2]=195,t[3]=212,3569595041===n[0]?"LittleEndian":2712847316===n[0]?"BigEndian":null}Lp("vtkPixelSpaceCallbackMapper",Om);var Mm=Em(),Rm=function(e,t){if(t<2)return;const n=new Int8Array(e),r=n.length,o=[];for(let e=0;e0&&void 0!==arguments[0]?arguments[0]:"http",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Dm[e](t)};const{vtkErrorMacro:_m,vtkDebugMacro:Nm}=Wt,Fm=()=>(_m("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead."),Promise.reject(new Error("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead.")));let km=0;function Um(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=new XMLHttpRequest;return r.open(e,t,!0),n.headers&&Object.entries(n.headers).forEach((e=>{let[t,n]=e;return r.setRequestHeader(t,n)})),n.progressCallback&&r.addEventListener("progress",n.progressCallback),r}const Gm={fetchArray:function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return r&&r.compression?Fm():n.ref&&!n.ref.pending?new Promise(((o,a)=>{const i=Um("GET",[t,n.ref.basepath,n.ref.id].join("/"),r);i.onreadystatechange=t=>{1===i.readyState&&(n.ref.pending=!0,1==++km&&e?.invokeBusy&&e.invokeBusy(!0)),4===i.readyState&&(n.ref.pending=!1,200===i.status||0===i.status?(n.buffer=i.response,"JSON"===n.ref.encode?n.values=JSON.parse(n.buffer):(Mm!==n.ref.encode&&Mm&&(Nm(`Swap bytes of ${n.name}`),Rm(n.buffer,us[n.dataType])),n.values=Wt.newTypedArray(n.dataType,n.buffer)),n.values.length!==n.size&&_m(`Error in FetchArray: ${n.name}, does not have the proper array size. Got ${n.values.length}, instead of ${n.size}`),delete n.ref,0==--km&&e?.invokeBusy&&e.invokeBusy(!1),e?.modified&&e.modified(),o(n)):a({xhr:i,e:t}))},i.responseType="string"!==n.dataType?"arraybuffer":"text",i.send()})):Promise.resolve(n)},fetchJSON:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n&&n.compression?Fm():new Promise(((r,o)=>{const a=Um("GET",t,n);a.onreadystatechange=t=>{1===a.readyState&&1==++km&&e?.invokeBusy&&e.invokeBusy(!0),4===a.readyState&&(0==--km&&e?.invokeBusy&&e.invokeBusy(!1),200===a.status||0===a.status?r(JSON.parse(a.responseText)):o({xhr:a,e:t}))},a.responseType="text",a.send()}))},fetchText:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n&&n.compression?Fm():new Promise(((r,o)=>{const a=Um("GET",t,n);a.onreadystatechange=t=>{1===a.readyState&&1==++km&&e?.invokeBusy&&e.invokeBusy(!0),4===a.readyState&&(0==--km&&e?.invokeBusy&&e.invokeBusy(!1),200===a.status||0===a.status?r(a.responseText):o({xhr:a,e:t}))},a.responseType="text",a.send()}))},fetchBinary:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((n,r)=>{const o=Um("GET",e,t);o.onreadystatechange=e=>{4===o.readyState&&(200===o.status||0===o.status?n(o.response):r({xhr:o,e:e}))},o.responseType="arraybuffer",o.send()}))},fetchImage:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((e,r)=>{const o=new Image;n.crossOrigin&&(o.crossOrigin=n.crossOrigin),o.onload=()=>e(o),o.onerror=r,o.src=t}))}};Bm("http")||Lm("http",(e=>Gm));const{vtkDebugMacro:zm}=Wt;function Wm(e,t){t.classHierarchy.push("vtkCamera");const n=new Float64Array(3),r=new Float64Array([0,0,-1]),o=new Float64Array([0,1,0]),a=p(new Float64Array(16)),i=p(new Float64Array(16)),s=new Float64Array(3),l=new Float64Array(3),u=new Float64Array(3),d=p(new Float64Array(16)),m=p(new Float64Array(16)),h=new Float64Array(3),x=new Float64Array(3);function S(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=()=>{const n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=(n,r,o)=>{n===t.position[0]&&r===t.position[1]&&o===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=o,e.computeDistance(),e.modified())},e.setFocalPoint=(n,r,o)=>{n===t.focalPoint[0]&&r===t.focalPoint[1]&&o===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=o,e.computeDistance(),e.modified())},e.setDistance=n=>{if(t.distance===n)return;t.distance=n,t.distance<1e-20&&(t.distance=1e-20,zm("Distance is set to minimum."));const r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()},e.computeDistance=()=>{const e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance<1e-20){t.distance=1e-20,zm("Distance is set to minimum.");const e=t.directionOfProjection;t.focalPoint[0]=t.position[0]+e[0]*t.distance,t.focalPoint[1]=t.position[1]+e[1]*t.distance,t.focalPoint[2]=t.position[2]+e[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,S()},e.dolly=n=>{if(n<=0)return;const r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])},e.roll=n=>{const r=t.position,o=t.focalPoint,a=t.viewUp,i=new Float64Array([a[0],a[1],a[2],0]);p(d);const s=new Float64Array([o[0]-r[0],o[1]-r[1],o[2]-r[2]]);T(d,d,xo(n),s),Ri(i,i,d),t.viewUp[0]=i[0],t.viewUp[1]=i[1],t.viewUp[2]=i[2],e.modified()},e.azimuth=n=>{const r=t.focalPoint;p(m),b(m,m,r),T(m,m,xo(n),t.viewUp),b(m,m,[-r[0],-r[1],-r[2]]),In(h,t.position,m),e.setPosition(h[0],h[1],h[2])},e.yaw=n=>{const r=t.position;p(m),b(m,m,r),T(m,m,xo(n),t.viewUp),b(m,m,[-r[0],-r[1],-r[2]]),In(x,t.focalPoint,m),e.setFocalPoint(x[0],x[1],x[2])},e.elevation=n=>{const r=t.focalPoint,o=e.getViewMatrix(),a=[-o[0],-o[1],-o[2]];p(m),b(m,m,r),T(m,m,xo(n),a),b(m,m,[-r[0],-r[1],-r[2]]),In(h,t.position,m),e.setPosition(h[0],h[1],h[2])},e.pitch=n=>{const r=t.position,o=e.getViewMatrix(),a=[o[0],o[1],o[2]];p(m),b(m,m,r),T(m,m,xo(n),a),b(m,m,[-r[0],-r[1],-r[2]]),In(x,t.focalPoint,m),e.setFocalPoint(...x)},e.zoom=n=>{n<=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=(n,r,o)=>{const a=[n,r,o];Bo(t.position,a,t.position),Bo(t.focalPoint,a,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=n=>{const r=[...t.viewUp,1],o=[],a=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],Ri(o,[...t.position,1],n),Ri(a,[...t.focalPoint,1],n),Ri(i,r,n),i[0]-=o[0],i[1]-=o[1],i[2]-=o[2],e.setPosition(...o.slice(0,3)),e.setFocalPoint(...a.slice(0,3)),e.setViewUp(...i.slice(0,3))},e.getThickness=()=>t.clippingRange[1]-t.clippingRange[0],e.setThickness=n=>{let r=n;r<1e-20&&(r=1e-20,zm("Thickness is set to minimum.")),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=n=>{let r=n;r<1e-20&&(r=1e-20,zm("Thickness is set to minimum.")),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=e=>{},e.getRoll=()=>{},e.setObliqueAngles=(e,t)=>{},e.getOrientation=()=>{},e.getOrientationWXYZ=()=>{},e.getFrustumPlanes=e=>{},e.getCameraLightTransformMatrix=e=>(c(e,t.cameraLightTransform),e),e.computeCameraLightTransform=()=>{c(a,e.getViewMatrix()),g(a,a),w(i,[t.distance,t.distance,t.distance]),v(a,a,i),p(t.cameraLightTransform),b(t.cameraLightTransform,a,[0,0,-1])},e.deepCopy=e=>{},e.physicalOrientationToWorldDirection=e=>{const t=Ni(e[0],e[1],e[2],e[3]),n=Di(),r=Ni(0,0,1,0);var o,a;return a=t,(o=n)[0]=-a[0],o[1]=-a[1],o[2]=-a[2],o[3]=a[3],Vi(r,t,r),Vi(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=t=>{e.getWorldToPhysicalMatrix(t),g(t,t)},e.getWorldToPhysicalMatrix=e=>{p(e);const n=[3];ko(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],f(e,e),Sn(s,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),y(e,e,s),b(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=i=>{g(a,i),In(s,n,a),e.computeDistance();const c=t.distance;e.setPosition(s[0],s[1],s[2]),In(l,r,a),An(l,l,s),Pn(l,l),e.setDirectionOfProjection(l[0],l[1],l[2]),In(u,o,a),An(u,u,s),Pn(u,u),e.setViewUp(u[0],u[1],u[2]),e.setDistance(c)},e.computeViewParametersFromPhysicalMatrix=t=>{e.getWorldToPhysicalMatrix(a),v(a,t,a),e.computeViewParametersFromViewMatrix(a)},e.setViewMatrix=n=>{t.viewMatrix=n,t.viewMatrix&&(c(a,t.viewMatrix),e.computeViewParametersFromViewMatrix(a),f(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=()=>{if(t.viewMatrix)return t.viewMatrix;$(a,t.position,t.focalPoint,t.viewUp),f(a,a);const e=new Float64Array(16);return c(e,a),e},e.setProjectionMatrix=e=>{t.projectionMatrix=e},e.getProjectionMatrix=(e,n,r)=>{const o=new Float64Array(16);if(p(o),t.projectionMatrix){const e=1/t.physicalScale;return Sn(s,e,e,e),c(o,t.projectionMatrix),y(o,o,s),f(o,o),o}p(a);const i=t.clippingRange[1]-t.clippingRange[0],l=[t.clippingRange[0]+(n+1)*i/2,t.clippingRange[0]+(r+1)*i/2];if(t.parallelProjection){const n=t.parallelScale*e,r=t.parallelScale,o=(t.windowCenter[0]-1)*n,i=(t.windowCenter[0]+1)*n,s=(t.windowCenter[1]-1)*r,c=(t.windowCenter[1]+1)*r;H(a,o,i,s,c,l[0],l[1]),f(a,a)}else{if(t.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const n=Math.tan(xo(t.viewAngle)/2);let r,o;!0===t.useHorizontalViewAngle?(r=t.clippingRange[0]*n,o=t.clippingRange[0]*n/e):(r=t.clippingRange[0]*n*e,o=t.clippingRange[0]*n);const i=(t.windowCenter[0]-1)*r,s=(t.windowCenter[0]+1)*r,c=(t.windowCenter[1]-1)*o,u=(t.windowCenter[1]+1)*o,d=l[0],p=l[1];a[0]=2*d/(s-i),a[5]=2*d/(u-c),a[2]=(i+s)/(s-i),a[6]=(c+u)/(u-c),a[10]=-(d+p)/(p-d),a[14]=-1,a[11]=-2*d*p/(p-d),a[15]=0}}return c(o,a),o},e.getCompositeProjectionMatrix=(t,n,r)=>{const o=e.getViewMatrix(),a=e.getProjectionMatrix(t,n,r);return v(a,o,a),a},e.setDirectionOfProjection=(e,n,r)=>{if(t.directionOfProjection[0]===e&&t.directionOfProjection[1]===n&&t.directionOfProjection[2]===r)return;t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;const o=t.directionOfProjection;t.focalPoint[0]=t.position[0]+o[0]*t.distance,t.focalPoint[1]=t.position[1]+o[1]*t.distance,t.focalPoint[2]=t.position[2]+o[2]*t.distance,S()},e.setDeviceAngles=(n,r,o,a)=>{const i=[3];ko(t.physicalViewNorth,t.physicalViewUp,i);const s=p(new Float64Array(16));T(s,s,xo(n),t.physicalViewUp),T(s,s,xo(r),i),T(s,s,xo(o),t.physicalViewNorth),T(s,s,xo(-a),t.physicalViewUp);const l=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),c=new Float64Array(t.physicalViewNorth);In(l,l,s),In(c,c,s),e.setDirectionOfProjection(l[0],l[1],l[2]),e.setViewUp(c[0],c[1],c[2]),e.modified()},e.setOrientationWXYZ=(t,n,r,o)=>{const a=p(new Float64Array(16));if(0!==t&&(0!==n||0!==r||0!==o)){const e=xo(t),i=Di();Bi(i,[n,r,o],e),N(a,i)}const i=new Float64Array(3);In(i,[0,0,-1],a);const s=new Float64Array(3);In(s,[0,1,0],a),e.setDirectionOfProjection(...i),e.setViewUp(...s),e.modified()},e.computeClippingRange=e=>{let n=null,r=null;n=t.viewPlaneNormal,r=t.position;const o=-n[0],a=-n[1],i=-n[2],s=-(o*r[0]+a*r[1]+i*r[2]),l=[o*e[0]+a*e[2]+i*e[4]+s,1e-18];for(let t=0;t<2;t++)for(let n=0;n<2;n++)for(let r=0;r<2;r++){const c=o*e[r]+a*e[2+n]+i*e[4+t]+s;l[0]=cl[1]?c:l[1]}return l}}const Hm={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,cameraLightTransform:s(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function jm(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hm,n),Wt.obj(e,t),Wt.get(e,t,["distance"]),Wt.setGet(e,t,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),Wt.getArray(e,t,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),Wt.setGetArray(e,t,["clippingRange","windowCenter"],2),Wt.setGetArray(e,t,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),Wm(e,t)}var $m={newInstance:Wt.newInstance(jm,"vtkCamera"),extend:jm};function Km(e,t){t.classHierarchy.push("vtkLight");const n=new Float64Array(3);e.getTransformedPosition=()=>(t.transformMatrix?In(n,t.position,t.transformMatrix):Sn(n,t.position[0],t.position[1],t.position[2]),n),e.getTransformedFocalPoint=()=>(t.transformMatrix?In(n,t.focalPoint,t.transformMatrix):Sn(n,t.focalPoint[0],t.focalPoint[1],t.focalPoint[2]),n),e.getDirection=()=>(t.directionMTime{const n=new Float64Array(3);Mn(n,t.position,e),t.focalPoint=n},e.setDirectionAngle=(t,n)=>{const r=xo(t),o=xo(n);e.setPosition(Math.cos(r)*Math.sin(o),Math.sin(r),Math.cos(r)*Math.cos(o)),e.setFocalPoint(0,0,0),e.setPositional(0)},e.setLightTypeToHeadLight=()=>{e.setLightType("HeadLight")},e.setLightTypeToCameraLight=()=>{e.setLightType("CameraLight")},e.setLightTypeToSceneLight=()=>{e.setTransformMatrix(null),e.setLightType("SceneLight")},e.lightTypeIsHeadLight=()=>"HeadLight"===t.lightType,e.lightTypeIsSceneLight=()=>"SceneLight"===t.lightType,e.lightTypeIsCameraLight=()=>"CameraLight"===t.lightType}const qm={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function Xm(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qm,n),Wt.obj(e,t),Wt.setGet(e,t,["intensity","switch","positional","exponent","coneAngle","coneFalloff","transformMatrix","lightType","shadowAttenuation","attenuationValues"]),Wt.setGetArray(e,t,["color","position","focalPoint","attenuationValues"],3),Km(e,t)}var Ym={newInstance:Wt.newInstance(Xm,"vtkLight"),extend:Xm,LIGHT_TYPES:["HeadLight","CameraLight","SceneLight"]};const{vtkErrorMacro:Qm}=Wt;function Zm(e,t){function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];t.push(e);const r=e.getNestedProps();if(r&&r.length)for(let e=0;et.props,e.hasViewProp=e=>t.props.includes(e),e.addViewProp=n=>{n&&!e.hasViewProp(n)&&t.props.push(n)},e.removeViewProp=e=>{const n=t.props.filter((t=>t!==e));t.props.length!==n.length&&(t.props=n)},e.removeAllViewProps=()=>{t.props=[]},e.getViewPropsWithNestedProps=()=>{const e=[];for(let r=0;r{e.removeViewProp(t)},e.getActors2D=()=>(t.actors2D=[],t.props.forEach((e=>{t.actors2D=t.actors2D.concat(e.getActors2D())})),t.actors2D),e.displayToView=()=>Qm("call displayToView on your view instead"),e.viewToDisplay=()=>Qm("callviewtodisplay on your view instead"),e.getSize=()=>Qm("call getSize on your View instead"),e.normalizedDisplayToProjection=(t,n,r)=>{const o=e.normalizedDisplayToNormalizedViewport(t,n,r);return e.normalizedViewportToProjection(o[0],o[1],o[2])},e.normalizedDisplayToNormalizedViewport=(e,n,r)=>{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[(e-t.viewport[0])/o[0],(n-t.viewport[1])/o[1],r]},e.normalizedViewportToProjection=(e,t,n)=>[2*e-1,2*t-1,2*n-1],e.projectionToNormalizedDisplay=(t,n,r)=>{const o=e.projectionToNormalizedViewport(t,n,r);return e.normalizedViewportToNormalizedDisplay(o[0],o[1],o[2])},e.normalizedViewportToNormalizedDisplay=(e,n,r)=>{const o=[t.viewport[2]-t.viewport[0],t.viewport[3]-t.viewport[1]];return[e*o[0]+t.viewport[0],n*o[1]+t.viewport[1],r]},e.projectionToNormalizedViewport=(e,t,n)=>[.5*(e+1),.5*(t+1),.5*(n+1)],e.PickPropFrom=("PickPropFrom",()=>Qm("vtkViewport::PickPropFrom - NOT IMPLEMENTED"))}const Jm={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function eh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jm,n),Wt.obj(e,t),Wt.event(e,t,"event"),Wt.setGetArray(e,t,["viewport"],4),Wt.setGetArray(e,t,["background","background2"],3),Zm(e,t)}var th={newInstance:Wt.newInstance(eh,"vtkViewport"),extend:eh};const{vtkDebugMacro:nh,vtkErrorMacro:rh,vtkWarningMacro:oh}=Ht;function ah(e){return()=>rh(`vtkRenderer::${e} - NOT IMPLEMENTED`)}function ih(e,t){t.classHierarchy.push("vtkRenderer");const n={type:"ComputeVisiblePropBoundsEvent",renderer:e},r={type:"ResetCameraClippingRangeEvent",renderer:e},o={type:"ResetCameraEvent",renderer:e};e.updateCamera=()=>(t.activeCamera||(nh("No cameras are on, creating one."),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0),e.updateLightsGeometryToFollowCamera=()=>{const n=e.getActiveCameraAndResetIfCreated();t.lights.forEach((e=>{e.lightTypeIsSceneLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):e.lightTypeIsCameraLight()?e.setTransformMatrix(n.getCameraLightTransformMatrix(s())):rh("light has unknown light type",e.get()))}))},e.updateLightGeometry=()=>!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera(),e.allocateTime=ah("allocateTime"),e.updateGeometry=ah("updateGeometry"),e.getVTKWindow=()=>t._renderWindow,e.setLayer=n=>{nh(e.getClassName(),e,"setting Layer to ",n),t.layer!==n&&(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=n=>t.activeCamera!==n&&(t.activeCamera=n,e.modified(),e.invokeEvent({type:"ActiveCameraEvent",camera:n}),!0),e.makeCamera=()=>{const t=$m.newInstance();return e.invokeEvent({type:"CreateCameraEvent",camera:t}),t},e.getActiveCamera=()=>(t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera),e.getActiveCameraAndResetIfCreated=()=>(t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera),e.getActors=()=>(t.actors=[],t.props.forEach((e=>{t.actors=t.actors.concat(e.getActors())})),t.actors),e.addActor=e.addViewProp,e.removeActor=n=>{t.actors=t.actors.filter((e=>e!==n)),e.removeViewProp(n),e.modified()},e.removeAllActors=()=>{e.getActors().forEach((t=>{e.removeViewProp(t)})),t.actors=[],e.modified()},e.getVolumes=()=>(t.volumes=[],t.props.forEach((e=>{t.volumes=t.volumes.concat(e.getVolumes())})),t.volumes),e.addVolume=e.addViewProp,e.removeVolume=n=>{t.volumes=t.volumes.filter((e=>e!==n)),e.removeViewProp(n),e.modified()},e.removeAllVolumes=()=>{e.getVolumes().forEach((t=>{e.removeViewProp(t)})),t.volumes=[],e.modified()},e.hasLight=e=>t.lights.includes(e),e.addLight=n=>{n&&!e.hasLight(n)&&(t.lights.push(n),e.modified())},e.removeLight=n=>{t.lights=t.lights.filter((e=>e!==n)),e.modified()},e.removeAllLights=()=>{t.lights=[],e.modified()},e.setLightCollection=n=>{t.lights=n,e.modified()},e.makeLight=Ym.newInstance,e.createLight=()=>{t.automaticLightCreation&&(t._createdLight&&(e.removeLight(t._createdLight),t._createdLight.delete(),t._createdLight=null),t._createdLight=e.makeLight(),e.addLight(t._createdLight),t._createdLight.setLightTypeToHeadLight(),t._createdLight.setPosition(e.getActiveCamera().getPosition()),t._createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=(t,n,r,o)=>{let a=e.normalizedDisplayToProjection(t,n,r);return a=e.projectionToView(a[0],a[1],a[2],o),e.viewToWorld(a[0],a[1],a[2])},e.worldToNormalizedDisplay=(t,n,r,o)=>{let a=e.worldToView(t,n,r);return a=e.viewToProjection(a[0],a[1],a[2],o),e.projectionToNormalizedDisplay(a[0],a[1],a[2])},e.viewToWorld=(e,n,r)=>{if(null===t.activeCamera)return rh("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const o=t.activeCamera.getViewMatrix();g(o,o),f(o,o);const a=new Float64Array([e,n,r]);return In(a,a,o),a},e.projectionToView=(e,n,r,o)=>{if(null===t.activeCamera)return rh("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);g(a,a),f(a,a);const i=new Float64Array([e,n,r]);return In(i,i,a),i},e.worldToView=(e,n,r)=>{if(null===t.activeCamera)return rh("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const o=t.activeCamera.getViewMatrix();f(o,o);const a=new Float64Array([e,n,r]);return In(a,a,o),a},e.viewToProjection=(e,n,r,o)=>{if(null===t.activeCamera)return rh("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];const a=t.activeCamera.getProjectionMatrix(o,-1,1);f(a,a);const i=new Float64Array([e,n,r]);return In(i,i,a),i},e.computeVisiblePropBounds=()=>{t.allBounds[0]=Mi.INIT_BOUNDS[0],t.allBounds[1]=Mi.INIT_BOUNDS[1],t.allBounds[2]=Mi.INIT_BOUNDS[2],t.allBounds[3]=Mi.INIT_BOUNDS[3],t.allBounds[4]=Mi.INIT_BOUNDS[4],t.allBounds[5]=Mi.INIT_BOUNDS[5];let r=!0;e.invokeEvent(n);for(let e=0;et.allBounds[1]&&(t.allBounds[1]=e[1]),e[2]t.allBounds[3]&&(t.allBounds[3]=e[3]),e[4]t.allBounds[5]&&(t.allBounds[5]=e[5]))}}return r&&(va(t.allBounds),nh("Can't compute bounds, no 3D props are visible")),t.allBounds},e.resetCamera=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const r=n||e.computeVisiblePropBounds(),a=[0,0,0];if(!ba(r))return nh("Cannot reset camera!"),!1;let i=null;if(!e.getActiveCamera())return rh("Trying to reset non-existent camera"),!1;i=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),a[0]=(r[0]+r[1])/2,a[1]=(r[2]+r[3])/2,a[2]=(r[4]+r[5])/2;let s=r[1]-r[0],l=r[3]-r[2],c=r[5]-r[4];s*=s,l*=l,c*=c;let u=s+l+c;u=0===u?1:u,u=.5*Math.sqrt(u);const d=xo(t.activeCamera.getViewAngle()),p=u,f=u/Math.sin(.5*d),g=t.activeCamera.getViewUp();return Math.abs(Fo(g,i))>.999&&(oh("Resetting view-up since view plane normal is parallel"),t.activeCamera.setViewUp(-g[2],g[0],g[1])),t.activeCamera.setFocalPoint(a[0],a[1],a[2]),t.activeCamera.setPosition(a[0]+f*i[0],a[1]+f*i[1],a[2]+f*i[2]),e.resetCameraClippingRange(r),t.activeCamera.setParallelScale(p),t.activeCamera.setPhysicalScale(u),t.activeCamera.setPhysicalTranslation(-a[0],-a[1],-a[2]),e.invokeEvent(o),!0},e.resetCameraClippingRange=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const o=n||e.computeVisiblePropBounds();if(!ba(o))return nh("Cannot reset camera clipping range!"),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return rh("Trying to reset clipping range of non-existent camera"),!1;const a=t.activeCamera.computeClippingRange(o);let i=0;if(t.activeCamera.getParallelProjection())i=.2*t.activeCamera.getParallelScale();else{const e=xo(t.activeCamera.getViewAngle());i=.2*Math.tan(e/2)*a[1]}return a[1]-a[0]=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]{e!==t._renderWindow&&(t._vtkWindow=e,t._renderWindow=e)},e.visibleActorCount=()=>t.props.filter((e=>e.getVisibility())).length,e.visibleVolumeCount=e.visibleActorCount,e.getMTime=()=>{let e=t.mtime;const n=t.activeCamera?t.activeCamera.getMTime():0;n>e&&(e=n);const r=t._createdLight?t._createdLight.getMTime():0;return r>e&&(e=r),e},e.getTransparent=()=>!!t.preserveColorBuffer,e.isActiveCameraCreated=()=>!!t.activeCamera}const sh={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:Pa(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function lh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};for(Object.assign(t,sh,n),th.extend(e,t,n),t.background||(t.background=[0,0,0,1]);t.background.length<3;)t.background.push(0);3===t.background.length&&t.background.push(1),bt(e,t,["_renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),St(e,t,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","environmentTexture","environmentTextureDiffuseStrength","environmentTextureSpecularStrength","useEnvironmentTextureAsBackground","useShadows","pass"]),Ct(e,t,["actors","volumes","lights"]),wt(e,t,["background"],4,1),Pt(0,t,["renderWindow"]),ih(e,t)}var ch={newInstance:Mt(lh,"vtkRenderer"),extend:lh};const uh=Object.create(null);function dh(e,t){uh[e]=t}function ph(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return uh[e]&&uh[e](t)}function fh(e,t){t.classHierarchy.push("vtkRenderWindow"),e.addRenderer=n=>{e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=n=>{t.renderers=t.renderers.filter((e=>e!==n)),e.modified()},e.hasRenderer=e=>-1!==t.renderers.indexOf(e),e.newAPISpecificView=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ph(e||t.defaultViewAPI,n)},e.addView=n=>{e.hasView(n)||(n.setRenderable(e),t._views.push(n),e.modified())},e.removeView=n=>{t._views=t._views.filter((e=>e!==n)),e.modified()},e.hasView=e=>-1!==t._views.indexOf(e),e.preRender=()=>{t.renderers.forEach((e=>{e.isActiveCameraCreated()||e.resetCamera()}))},e.render=()=>{e.preRender(),t.interactor?t.interactor.render():t._views.forEach((e=>e.traverseAllPasses()))},e.getStatistics=()=>{const e={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return t._views.forEach((t=>{t.getGraphicsMemoryInfo&&(e.gpuMemoryMB+=t.getGraphicsMemoryInfo()/1e6)})),t.renderers.forEach((n=>{const r=n.getViewProps(),o=t._views[0].getViewNodeFor(n);r.forEach((t=>{if(t.getVisibility()){e.propCount+=1;const n=t.getMapper&&t.getMapper();if(n&&n.getPrimitiveCount){const t=o.getViewNodeFor(n);if(t){t.getAllocatedGPUMemoryInBytes&&(e.gpuMemoryMB+=t.getAllocatedGPUMemoryInBytes()/1e6);const r=n.getPrimitiveCount();Object.keys(r).forEach((t=>{e[t]||(e[t]=0),e[t]+=r[t]}))}}}else e.invisiblePropCount+=1}))})),e.str=Object.keys(e).map((t=>`${t}: ${e[t]}`)).join("\n"),e},e.captureImages=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Wt.setImmediate(e.render),t._views.map((e=>e.captureNextImage?e.captureNextImage(n,r):void 0)).filter((e=>!!e))},e.addRenderWindow=n=>!t.childRenderWindows.includes(n)&&(t.childRenderWindows.push(n),e.modified(),!0),e.removeRenderWindow=n=>{const r=t.childRenderWindows.findIndex((e=>e===n));return!(r<0||(t.childRenderWindows.splice(r,1),e.modified(),0))}}const gh={defaultViewAPI:"WebGL",renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1,childRenderWindows:[]};function mh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gh,n),Wt.obj(e,t),Wt.setGet(e,t,["interactor","numberOfLayers","_views","defaultViewAPI"]),Wt.get(e,t,["neverRendered"]),Wt.getArray(e,t,["renderers","childRenderWindows"]),Wt.moveToProtected(e,t,["views"]),Wt.event(e,t,"completion"),fh(e,t)}var hh={newInstance:Wt.newInstance(mh,"vtkRenderWindow"),extend:mh,registerViewConstructor:dh,listViewAPIs:function(){return Object.keys(uh)},newAPISpecificView:ph};const vh={Unknown:0,LeftController:1,RightController:2},bh={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7};var yh={Device:vh,Input:bh,Axis:{Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4}};const{Device:Th,Input:xh}=yh,{vtkWarningMacro:Sh,vtkErrorMacro:Ch,normalizeWheel:Ah,vtkOnceErrorMacro:wh}=Wt,Ph={ctrlKey:!1,altKey:!1,shiftKey:!1},Ih={"xr-standard":[xh.Trigger,xh.Grip,xh.TrackPad,xh.Thumbstick,xh.A,xh.B]},Oh=["StartAnimation","Animation","EndAnimation","PointerEnter","PointerLeave","MouseEnter","MouseLeave","StartMouseMove","MouseMove","EndMouseMove","LeftButtonPress","LeftButtonRelease","MiddleButtonPress","MiddleButtonRelease","RightButtonPress","RightButtonRelease","KeyPress","KeyDown","KeyUp","StartMouseWheel","MouseWheel","EndMouseWheel","StartPinch","Pinch","EndPinch","StartPan","Pan","EndPan","StartRotate","Rotate","EndRotate","Button3D","Move3D","StartPointerLock","EndPointerLock","StartInteraction","Interaction","EndInteraction","AnimationFrameRateUpdate"];function Eh(e){e.cancelable&&e.preventDefault()}function Mh(e){const t=Object.create(null);return e.forEach((e=>{let{pointerId:n,position:r}=e;t[n]=r})),t}function Rh(e,t){t.classHierarchy.push("vtkRenderWindowInteractor");const n={...e},r=new Set,o=new Map;let a=1;function i(n,r){t._forcedRenderer||(t.currentRenderer=e.findPokedRenderer(n,r))}e.start=()=>{(t.initialized||(e.initialize(),t.initialized))&&e.startEventLoop()},e.setRenderWindow=e=>{Ch("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},e.setInteractorStyle=n=>{t.interactorStyle!==n&&(null!=t.interactorStyle&&t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&&t.interactorStyle.getInteractor()!==e&&t.interactorStyle.setInteractor(e))},e.initialize=()=>{t.initialized=!0,e.enable(),e.render()},e.enable=()=>e.setEnabled(!0),e.disable=()=>e.setEnabled(!1),e.startEventLoop=()=>Sh("empty event loop"),e.getCurrentRenderer=()=>(t.currentRenderer||i(0,0),t.currentRenderer);const s=t._getScreenEventPositionFor||function(e){const n=t._view.getCanvas(),r=n.getBoundingClientRect(),a=n.width/r.width,s=n.height/r.height,l={x:a*(e.clientX-r.left),y:s*(r.height-e.clientY+r.top),z:0};return(o.size<=1||!t.currentRenderer)&&i(l.x,l.y),l};function l(e){return{controlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey}}function c(e){const t=l(e);return{key:e.key,keyCode:e.charCode,...t}}function u(e){return e.pointerType||""}const d=()=>{if(null===t.container)return;const{container:n}=t;n.addEventListener("contextmenu",Eh),n.addEventListener("wheel",e.handleWheel),n.addEventListener("DOMMouseScroll",e.handleWheel),n.addEventListener("pointerenter",e.handlePointerEnter),n.addEventListener("pointerleave",e.handlePointerLeave),n.addEventListener("pointermove",e.handlePointerMove,{passive:!1}),n.addEventListener("pointerdown",e.handlePointerDown,{passive:!1}),n.addEventListener("pointerup",e.handlePointerUp),n.addEventListener("pointercancel",e.handlePointerCancel),document.addEventListener("keypress",e.handleKeyPress),document.addEventListener("keydown",e.handleKeyDown),document.addEventListener("keyup",e.handleKeyUp),document.addEventListener("pointerlockchange",e.handlePointerLockChange),n.style.touchAction="none",n.style.userSelect="none",n.style.webkitTapHighlightColor="rgba(0,0,0,0)"};e.bindEvents=e=>{null!==e&&n.setContainer(e)&&d()};const p=()=>{clearTimeout(t.moveTimeoutID),clearTimeout(t.wheelTimeoutID),t.moveTimeoutID=0,t.wheelTimeoutID=0,a=1;const{container:n}=t;n&&(n.removeEventListener("contextmenu",Eh),n.removeEventListener("wheel",e.handleWheel),n.removeEventListener("DOMMouseScroll",e.handleWheel),n.removeEventListener("pointerenter",e.handlePointerEnter),n.removeEventListener("pointerleave",e.handlePointerLeave),n.removeEventListener("pointermove",e.handlePointerMove,{passive:!1}),n.removeEventListener("pointerdown",e.handlePointerDown,{passive:!1}),n.removeEventListener("pointerup",e.handlePointerUp),n.removeEventListener("pointercancel",e.handlePointerCancel)),document.removeEventListener("keypress",e.handleKeyPress),document.removeEventListener("keydown",e.handleKeyDown),document.removeEventListener("keyup",e.handleKeyUp),document.removeEventListener("pointerlockchange",e.handlePointerLockChange),o.clear()};function f(){t._view&&t.enabled&&t.enableRender&&(t.inRender=!0,t._view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.unbindEvents=()=>{p(),n.setContainer(null)},e.handleKeyPress=t=>{const n=c(t);e.keyPressEvent(n)},e.handleKeyDown=t=>{const n=c(t);e.keyDownEvent(n)},e.handleKeyUp=t=>{const n=c(t);e.keyUpEvent(n)},e.handlePointerEnter=t=>{const n={...l(t),position:s(t),deviceType:u(t)};e.pointerEnterEvent(n),"mouse"===n.deviceType&&e.mouseEnterEvent(n)},e.handlePointerLeave=t=>{const n={...l(t),position:s(t),deviceType:u(t)};e.pointerLeaveEvent(n),"mouse"===n.deviceType&&e.mouseLeaveEvent(n)},e.handlePointerDown=n=>{if(!(n.button>2||e.isPointerLocked()))switch(t.preventDefaultOnPointerDown&&Eh(n),n.target.hasPointerCapture(n.pointerId)&&n.target.releasePointerCapture(n.pointerId),t.container.setPointerCapture(n.pointerId),o.has(n.pointerId)&&Sh("[RenderWindowInteractor] duplicate pointerId detected"),o.set(n.pointerId,{pointerId:n.pointerId,position:s(n)}),n.pointerType){case"pen":case"touch":e.handleTouchStart(n);break;default:e.handleMouseDown(n)}},e.handlePointerUp=n=>{if(o.has(n.pointerId))switch(t.preventDefaultOnPointerUp&&Eh(n),o.delete(n.pointerId),t.container.releasePointerCapture(n.pointerId),n.pointerType){case"pen":case"touch":e.handleTouchEnd(n);break;default:e.handleMouseUp(n)}},e.handlePointerCancel=t=>{if(o.has(t.pointerId))switch(o.delete(t.pointerId),t.pointerType){case"pen":case"touch":e.handleTouchEnd(t);break;default:e.handleMouseUp(t)}},e.handlePointerMove=t=>{switch(o.has(t.pointerId)&&(o.get(t.pointerId).position=s(t)),t.pointerType){case"pen":case"touch":e.handleTouchMove(t);break;default:e.handleMouseMove(t)}},e.handleMouseDown=t=>{const n={...l(t),position:s(t),deviceType:u(t)};switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Ch(`Unknown mouse button pressed: ${t.button}`)}},e.requestPointerLock=()=>{t.container&&t.container.requestPointerLock()},e.exitPointerLock=()=>document.exitPointerLock?.(),e.isPointerLocked=()=>!!t.container&&document.pointerLockElement===t.container,e.handlePointerLockChange=()=>{e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=n=>{void 0!==n?r.has(n)?Sh("requester is already registered for animating"):(r.add(n),t.animationRequest||1!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Ch("undefined requester, can not start animating")},e.extendAnimation=n=>{const o=Date.now()+n;t._animationExtendedEnd=Math.max(t._animationExtendedEnd,o),t.animationRequest||0!==r.size||t.xrAnimation||(t._animationStartTime=Date.now(),t._animationFrameCount=0,t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())},e.isAnimating=()=>t.xrAnimation||null!==t.animationRequest,e.cancelAnimation=function(n){let o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r.has(n))r.delete(n),t.animationRequest&&0===r.size&&Date.now()>t._animationExtendedEnd&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!o){const e=n&&n.getClassName?n.getClassName():n;Sh(`${e} did not request an animation`)}},e.switchToXRAnimation=()=>{t.animationRequest&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.xrAnimation=!0},e.returnFromXRAnimation=()=>{t.xrAnimation=!1,0!==r.size&&(t.recentAnimationFrameRate=10,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateXRGamepads=(n,r,o)=>{n.inputSources.forEach((n=>{const a=null==n.gripSpace?null:r.getPose(n.gripSpace,o),i=null==n.gripSpace?null:r.getPose(n.targetRaySpace,o),s=n.gamepad,l=n.handedness;if(s){s.index in t.lastGamepadValues||(t.lastGamepadValues[s.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let r=0;r{const r={...l(n),position:s(n),deviceType:u(n)};0===t.moveTimeoutID?e.startMouseMoveEvent(r):(e.mouseMoveEvent(r),clearTimeout(t.moveTimeoutID)),t.moveTimeoutID=setTimeout((()=>{e.endMouseMoveEvent(),t.moveTimeoutID=0}),200)},e.handleAnimation=()=>{const n=Date.now();t._animationFrameCount++,n-t._animationStartTime>1e3&&t._animationFrameCount>1&&(t.recentAnimationFrameRate=1e3*(t._animationFrameCount-1)/(n-t._animationStartTime),t.lastFrameTime=1/t.recentAnimationFrameRate,e.animationFrameRateUpdateEvent(),t._animationStartTime=n,t._animationFrameCount=1),e.animationEvent(),f(),r.size>0||Date.now(){Eh(n);const r={...Ah(n),...l(n),position:s(n),deviceType:u(n)};0===t.wheelTimeoutID&&(a=Math.abs(r.spinY)>=.3?Math.abs(r.spinY):1),r.spinY/=a,0===t.wheelTimeoutID?(e.startMouseWheelEvent(r),e.mouseWheelEvent(r)):(e.mouseWheelEvent(r),clearTimeout(t.wheelTimeoutID)),t.mouseScrollDebounceByPass?(e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0):t.wheelTimeoutID=setTimeout((()=>{e.extendAnimation(600),e.endMouseWheelEvent(),t.wheelTimeoutID=0}),200)},e.handleMouseUp=t=>{const n={...l(t),position:s(t),deviceType:u(t)};switch(t.button){case 0:e.leftButtonReleaseEvent(n);break;case 1:e.middleButtonReleaseEvent(n);break;case 2:e.rightButtonReleaseEvent(n);break;default:Ch(`Unknown mouse button released: ${t.button}`)}},e.handleTouchStart=n=>{const r=[...o.values()];if(t.recognizeGestures&&r.length>1){const t=Mh(o);if(2===r.length){const t={...l(Ph),position:r[0].position,deviceType:u(n)};e.leftButtonReleaseEvent(t)}e.recognizeGesture("TouchStart",t)}else if(1===r.length){const t={...l(Ph),position:s(n),deviceType:u(n)};e.leftButtonPressEvent(t)}},e.handleTouchMove=n=>{const r=[...o.values()];if(t.recognizeGestures&&r.length>1){const t=Mh(o);e.recognizeGesture("TouchMove",t)}else if(1===r.length){const t={...l(Ph),position:r[0].position,deviceType:u(n)};e.mouseMoveEvent(t)}},e.handleTouchEnd=n=>{const r=[...o.values()];if(t.recognizeGestures)if(0===r.length){const t={...l(Ph),position:s(n),deviceType:u(n)};e.leftButtonReleaseEvent(t)}else if(1===r.length){const t=Mh(o);e.recognizeGesture("TouchEnd",t);const a={...l(Ph),position:r[0].position,deviceType:u(n)};e.leftButtonPressEvent(a)}else{const t=Mh(o);e.recognizeGesture("TouchMove",t)}else if(1===r.length){const t={...l(Ph),position:r[0].position,deviceType:u(n)};e.leftButtonReleaseEvent(t)}},e.setView=n=>{t._view!==n&&(t._view=n,t._view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=()=>t._view?.getRenderable()?.getRenderersByReference()?.[0],e.findPokedRenderer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t._view)return null;const r=t._view?.getRenderable()?.getRenderers();if(!r||0===r.length)return null;r.sort(((e,t)=>e.getLayer()-t.getLayer()));let o=null,a=null,i=null,s=r.length;for(;s--;){const l=r[s];if(t._view.isInViewport(e,n,l)&&l.getInteractive()){i=l;break}null===o&&l.getInteractive()&&(o=l),null===a&&t._view.isInViewport(e,n,l)&&(a=l)}return null===i&&(i=o),null===i&&(i=a),null==i&&(i=r[0]),i},e.render=()=>{e.isAnimating()||t.inRender||f()},Oh.forEach((n=>{const r=n.charAt(0).toLowerCase()+n.slice(1);e[`${r}Event`]=r=>{if(!t.enabled)return;if(!e.getCurrentRenderer())return void wh("\n Can not forward events without a current renderer on the interactor.\n ");const o={type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer(),...r};e[`invoke${n}`](o)}})),e.recognizeGesture=(n,r)=>{if(Object.keys(r).length>2)return;if(t.startingEventPositions||(t.startingEventPositions={}),"TouchStart"===n)return Object.keys(r).forEach((e=>{t.startingEventPositions[e]=r[e]})),void(t.currentGesture="Start");if("TouchEnd"===n)return"Pinch"===t.currentGesture&&(e.render(),e.endPinchEvent()),"Rotate"===t.currentGesture&&(e.render(),e.endRotateEvent()),"Pan"===t.currentGesture&&(e.render(),e.endPanEvent()),t.currentGesture="Start",void(t.startingEventPositions={});let o=0;const a=[],i=[];Object.keys(r).forEach((e=>{a[o]=r[e],i[o]=t.startingEventPositions[e],o++}));const s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((a[0].x-a[1].x)*(a[0].x-a[1].x)+(a[0].y-a[1].y)*(a[0].y-a[1].y));let c=So(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=So(Math.atan2(a[1].y-a[0].y,a[1].x-a[0].x)),d=u-c;u=u+180>=360?u-180:u+180,c=c+180>=360?c-180:c+180,Math.abs(u-c)n&&o>a&&o>i){t.currentGesture="Pinch";const n={scale:1,touches:r};e.startPinchEvent(n)}else if(a>n&&a>i){t.currentGesture="Rotate";const n={rotation:0,touches:r};e.startRotateEvent(n)}else if(i>n){t.currentGesture="Pan";const n={translation:[0,0],touches:r};e.startPanEvent(n)}}else{if("Rotate"===t.currentGesture){const t={rotation:d,touches:r};e.rotateEvent(t)}if("Pinch"===t.currentGesture){const t={scale:l/s,touches:r};e.pinchEvent(t)}if("Pan"===t.currentGesture){const t={translation:p,touches:r};e.panEvent(t)}}},e.handleVisibilityChange=()=>{t._animationStartTime=Date.now(),t._animationFrameCount=0},e.setCurrentRenderer=e=>{t._forcedRenderer=!!e,t.currentRenderer=e},e.setContainer=e=>{p();const t=n.setContainer(e??null);return t&&d(),t},e.delete=()=>{for(;r.size;)e.cancelAnimation(r.values().next().value);void 0!==document.hidden&&document.removeEventListener("visibilitychange",e.handleVisibilityChange),t.container&&e.setContainer(null),n.delete()},void 0!==document.hidden&&document.addEventListener("visibilitychange",e.handleVisibilityChange,!1)}const Dh={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:"Start",animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function Bh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Dh,n),Wt.obj(e,t),t._animationExtendedEnd=0,Wt.event(e,t,"RenderEvent"),Oh.forEach((n=>Wt.event(e,t,n))),Wt.get(e,t,["initialized","interactorStyle","lastFrameTime","recentAnimationFrameRate","_view"]),Wt.setGet(e,t,["container","lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker","preventDefaultOnPointerDown","preventDefaultOnPointerUp","mouseScrollDebounceByPass"]),Wt.moveToProtected(e,t,["view"]),Rh(e,t)}var Lh={newInstance:Wt.newInstance(Bh,"vtkRenderWindowInteractor"),extend:Bh,handledEvents:Oh,...yh};const{vtkErrorMacro:Vh,VOID:_h}=Wt;function Nh(e,t){t.classHierarchy.push("vtkInteractorObserver");const n={...e};function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function o(){Lh.handledEvents.forEach((n=>{e[`handle${n}`]&&t.subscribedEvents.push(t._interactor[`on${n}`]((r=>t.processEvents?e[`handle${n}`](r):_h),t.priority))}))}e.setInteractor=n=>{n!==t._interactor&&(r(),t._interactor=n,n&&t.enabled&&o(),e.modified())},e.setEnabled=n=>{n!==t.enabled&&(r(),n&&(t._interactor?o():Vh("\n The interactor must be set before subscribing to events\n ")),t.enabled=n,e.modified())},e.computeDisplayToWorld=(e,n,r,o)=>e?t._interactor.getView().displayToWorld(n,r,o,e):null,e.computeWorldToDisplay=(e,n,r,o)=>e?t._interactor.getView().worldToDisplay(n,r,o,e):null,e.setPriority=e=>{n.setPriority(e)&&t._interactor&&(r(),o())}}const Fh={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function kh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fh,n),Wt.obj(e,t),Wt.event(e,t,"InteractionEvent"),Wt.event(e,t,"StartInteractionEvent"),Wt.event(e,t,"EndInteractionEvent"),Wt.get(e,t,["_interactor","enabled"]),Wt.setGet(e,t,["priority","processEvents"]),Wt.moveToProtected(e,t,["interactor"]),Nh(e,t)}var Uh={newInstance:Wt.newInstance(kh,"vtkInteractorObserver"),extend:kh,computeWorldToDisplay:function(e,t,n,r){return e.getRenderWindow().getViews()[0].worldToDisplay(t,n,r,e)},computeDisplayToWorld:function(e,t,n,r){return e.getRenderWindow().getViews()[0].displayToWorld(t,n,r,e)}},Gh={States:{IS_START:0,IS_NONE:0,IS_ROTATE:1,IS_PAN:2,IS_SPIN:3,IS_DOLLY:4,IS_CAMERA_POSE:11,IS_WINDOW_LEVEL:1024,IS_SLICE:1025}};const{States:zh}=Gh,Wh={Rotate:zh.IS_ROTATE,Pan:zh.IS_PAN,Spin:zh.IS_SPIN,Dolly:zh.IS_DOLLY,CameraPose:zh.IS_CAMERA_POSE,WindowLevel:zh.IS_WINDOW_LEVEL,Slice:zh.IS_SLICE};function Hh(e,t){t.classHierarchy.push("vtkInteractorStyle"),Object.keys(Wh).forEach((n=>{Wt.event(e,t,`Start${n}Event`),e[`start${n}`]=()=>{t.state===zh.IS_NONE&&(t.state=Wh[n],t._interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:"StartInteractionEvent"}),e[`invokeStart${n}Event`]({type:`Start${n}Event`}))},Wt.event(e,t,`End${n}Event`),e[`end${n}`]=()=>{t.state===Wh[n]&&(t.state=zh.IS_NONE,t._interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:"EndInteractionEvent"}),e[`invokeEnd${n}Event`]({type:`End${n}Event`}),t._interactor.render())}})),t.getRenderer=e=>t.focusedRenderer||e.pokedRenderer,e.handleKeyPress=e=>{const n=t._interactor;let r=null;switch(e.key){case"r":case"R":t.getRenderer(e).resetCamera(),n.render();break;case"w":case"W":r=t.getRenderer(e).getActors(),r.forEach((e=>{const t=e.getProperty();t.setRepresentationToWireframe&&t.setRepresentationToWireframe()})),n.render();break;case"s":case"S":r=t.getRenderer(e).getActors(),r.forEach((e=>{const t=e.getProperty();t.setRepresentationToSurface&&t.setRepresentationToSurface()})),n.render();break;case"v":case"V":r=t.getRenderer(e).getActors(),r.forEach((e=>{const t=e.getProperty();t.setRepresentationToPoints&&t.setRepresentationToPoints()})),n.render()}}}const jh={state:zh.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function $h(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,jh,n),Uh.extend(e,t,n),Wt.setGet(e,t,["focusedRenderer"]),Hh(e,t)}var Kh={newInstance:Wt.newInstance($h,"vtkInteractorStyle"),extend:$h,...Gh};const{States:qh}=Gh;function Xh(e,t){t.classHierarchy.push("vtkInteractorStyleTrackballCamera"),e.handleMouseMove=n=>{const r=n.position,o=t.getRenderer(n);switch(t.state){case qh.IS_ROTATE:e.handleMouseRotate(o,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case qh.IS_PAN:e.handleMousePan(o,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case qh.IS_DOLLY:e.handleMouseDolly(o,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case qh.IS_SPIN:e.handleMouseSpin(o,r),e.invokeInteractionEvent({type:"InteractionEvent"})}t.previousPosition=r},e.handleButton3D=n=>{!n||!n.pressed||n.device!==vh.RightController||n.input!==bh.Trigger&&n.input!==bh.TrackPad?!n||n.pressed||n.device!==vh.RightController||n.input!==bh.Trigger&&n.input!==bh.TrackPad||t.state!==qh.IS_CAMERA_POSE||e.endCameraPose():e.startCameraPose()},e.handleMove3D=n=>{t.state===qh.IS_CAMERA_POSE&&e.updateCameraPose(n)},e.updateCameraPose=e=>{const n=t.getRenderer(e).getActiveCamera(),r=n.getPhysicalTranslation(),o=.025*n.getPhysicalScale(),a=n.physicalOrientationToWorldDirection([e.orientation.x,e.orientation.y,e.orientation.z,e.orientation.w]);n.setPhysicalTranslation(r[0]+a[0]*o,r[1]+a[1]*o,r[2]+a[2]*o)},e.handleLeftButtonPress=n=>{const r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=()=>{switch(t.state){case qh.IS_DOLLY:e.endDolly();break;case qh.IS_PAN:e.endPan();break;case qh.IS_SPIN:e.endSpin();break;case qh.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=()=>{e.startDolly()},e.handleEndMouseWheel=()=>{e.endDolly()},e.handleStartPinch=n=>{t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=()=>{e.endDolly()},e.handleStartRotate=n=>{t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=()=>{e.endRotate()},e.handleStartPan=n=>{t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=()=>{e.endPan()},e.handlePinch=n=>{e.dollyByFactor(t.getRenderer(n),n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=n=>{const r=t.getRenderer(n).getActiveCamera();let o=r.getFocalPoint();o=e.computeWorldToDisplay(t.getRenderer(n),o[0],o[1],o[2]);const a=o[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(t.getRenderer(n),o[0]+i[0]-s[0],o[1]+i[1]-s[1],a),c=e.computeDisplayToWorld(t.getRenderer(n),o[0],o[1],a),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],o=r.getFocalPoint();const d=r.getPosition();r.setFocalPoint(u[0]+o[0],u[1]+o[1],u[2]+o[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t._interactor.getLightFollowCamera()&&t.getRenderer(n).updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=e=>{const n=t.getRenderer(e).getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=(e,n)=>{if(!t.previousPosition)return;const r=t._interactor,o=n.x-t.previousPosition.x,a=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e);let s=-.1,l=-.1;i[0]&&i[1]&&(s=-20/i[1],l=-20/i[0]);const c=o*l*t.motionFactor,u=a*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange(),r.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=(e,n)=>{if(!t.previousPosition)return;const r=t._interactor,o=e.getActiveCamera(),a=r.getView().getViewportCenter(e),i=So(Math.atan2(t.previousPosition.y-a[1],t.previousPosition.x-a[0])),s=So(Math.atan2(n.y-a[1],n.x-a[0]))-i;Number.isNaN(s)||(o.roll(s),o.orthogonalizeViewUp())},e.handleMousePan=(n,r)=>{if(!t.previousPosition)return;const o=n.getActiveCamera();let a=o.getFocalPoint();a=e.computeWorldToDisplay(n,a[0],a[1],a[2]);const i=a[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],a=o.getFocalPoint();const u=o.getPosition();o.setFocalPoint(c[0]+a[0],c[1]+a[1],c[2]+a[2]),o.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t._interactor.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=(n,r)=>{if(!t.previousPosition)return;const o=r.y-t.previousPosition.y,a=t._interactor.getView().getViewportCenter(n),i=t.motionFactor*o/a[1];e.dollyByFactor(n,1.1**i)},e.handleMouseWheel=n=>{const r=1-n.spinY/t.zoomFactor;e.dollyByFactor(t.getRenderer(n),r)},e.dollyByFactor=(e,n)=>{if(Number.isNaN(n))return;const r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange()),t._interactor.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()}}const Yh={motionFactor:10,zoomFactor:10};function Qh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yh,n),Kh.extend(e,t,n),Wt.setGet(e,t,["motionFactor","zoomFactor"]),Xh(e,t)}var Zh={newInstance:Wt.newInstance(Qh,"vtkInteractorStyleTrackballCamera"),extend:Qh};function Jh(e){return e}function ev(e){return null===e||"null"===e?null:"true"===e||"false"!==e&&(void 0!==e&&"undefined"!==e?"["===e[0]&&"]"===e[e.length-1]?e.substring(1,e.length-1).split(",").map((e=>ev(e.trim()))):""===e||Number.isNaN(Number(e))?e:Number(e):void 0)}var tv=function(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.location.search;const n={},r=e?ev:Jh,o=(t||"").replace(/#.*/,"").replace("?","").split("&");return o.forEach((e=>{const[t,o]=e.split("=").map((e=>decodeURIComponent(e)));t&&(n[t]=!o||r(o))})),n};function nv(e,t){t.classHierarchy.push("vtkFramebuffer"),e.getBothMode=()=>t.context.FRAMEBUFFER,e.saveCurrentBindingsAndBuffers=t=>{const n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=e=>{if(!t.context)return void Ze("you must set the OpenGLRenderWindow before calling saveCurrentBindings");const n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t._openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=e=>{},e.restorePreviousBindingsAndBuffers=t=>{const n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=e=>{if(!t.context)return void Ze("you must set the OpenGLRenderWindow before calling restorePreviousBindings");const n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t._openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=e=>{},e.bind=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=n;null===r&&(r=t.context.FRAMEBUFFER),t.context.bindFramebuffer(r,t.glFramebuffer);for(let e=0;e{t.context?(t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n):Ze("you must set the OpenGLRenderWindow before calling create")},e.setColorBuffer=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const r=t.context;if(!r)return void Ze("you must set the OpenGLRenderWindow before calling setColorBuffer");let o=r.COLOR_ATTACHMENT0;if(n>0){if(!t._openGLRenderWindow.getWebgl2())return void Ze("Using multiple framebuffer attachments requires WebGL 2");o+=n}t.colorBuffers[n]=e,r.framebufferTexture2D(r.FRAMEBUFFER,o,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const n=t.context;if(!n)return void Ze("you must set the OpenGLRenderWindow before calling removeColorBuffer");let r=n.COLOR_ATTACHMENT0;if(e>0){if(!t._openGLRenderWindow.getWebgl2())return void Ze("Using multiple framebuffer attachments requires WebGL 2");r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0),t.colorBuffers=t.colorBuffers.splice(e,1)},e.setDepthBuffer=e=>{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else Ze("Attaching depth buffer textures to fbo requires WebGL 2");else Ze("you must set the OpenGLRenderWindow before calling setDepthBuffer")},e.removeDepthBuffer=()=>{if(t.context)if(t._openGLRenderWindow.getWebgl2()){const e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else Ze("Attaching depth buffer textures to framebuffers requires WebGL 2");else Ze("you must set the OpenGLRenderWindow before calling removeDepthBuffer")},e.getGLFramebuffer=()=>t.glFramebuffer,e.setOpenGLRenderWindow=n=>{t._openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t._openGLRenderWindow=n,t.context=null,n&&(t.context=t._openGLRenderWindow.getContext()))},e.releaseGraphicsResources=()=>{t.glFramebuffer&&t.context.deleteFramebuffer(t.glFramebuffer)},e.getSize=()=>null==t.glFramebuffer?null:[t.glFramebuffer.width,t.glFramebuffer.height],e.populateFramebuffer=()=>{if(!t.context)return void Ze("you must set the OpenGLRenderWindow before calling populateFrameBuffer");e.bind();const n=t.context,r=Dd.newInstance();r.setOpenGLRenderWindow(t._openGLRenderWindow),r.setMinificationFilter(hd.LINEAR),r.setMagnificationFilter(hd.LINEAR),r.create2DFromRaw(t.glFramebuffer.width,t.glFramebuffer.height,4,ds.UNSIGNED_CHAR,null),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)},e.getColorTexture=()=>t.colorBuffers[0]}const rv={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function ov(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rv,n),ht(e,t),t.colorBuffers&&Ze("you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead."),t.colorBuffers=[],Ct(e,t,["colorBuffers"]),nv(e,t)}var av={newInstance:Mt(ov,"vtkFramebuffer"),extend:ov};function iv(e,t){t.classHierarchy.push("vtkRenderPass"),e.getOperation=()=>t.currentOperation,e.setCurrentOperation=e=>{t.currentOperation=e,t.currentTraverseOperation=`traverse${Wt.capitalize(t.currentOperation)}`},e.getTraverseOperation=()=>t.currentTraverseOperation,e.traverse=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t.deleted||(t._currentParent=r,t.preDelegateOperations.forEach((t=>{e.setCurrentOperation(t),n.traverse(e)})),t.delegates.forEach((t=>{t.traverse(n,e)})),t.postDelegateOperations.forEach((t=>{e.setCurrentOperation(t),n.traverse(e)})))}}const sv={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function lv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,sv,n),Wt.obj(e,t),Wt.get(e,t,["currentOperation"]),Wt.setGet(e,t,["delegates","_currentParent","preDelegateOperations","postDelegateOperations"]),Wt.moveToProtected(e,t,["currentParent"]),iv(e,t)}var cv={newInstance:Wt.newInstance(lv,"vtkRenderPass"),extend:lv};const{Representation:uv}=os,{vtkErrorMacro:dv}=Wt;function pv(e){const t=id.substitute(e.Fragment,"//VTK::RenderPassFragmentShader::Impl","\n float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0);\n gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a);\n gl_FragData[1].r = weight;\n ",!1);e.Fragment=t.result}function fv(e,t){t.classHierarchy.push("vtkOpenGLOrderIndependentTranslucentPass"),e.createVertexBuffer=()=>{const e=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),n=new Float32Array([0,0,1,0,0,1,1,1]),r=new Uint16Array([4,0,1,3,2]),o=ws.newInstance({numberOfComponents:3,values:e});o.setName("points");const a=ws.newInstance({numberOfComponents:2,values:n});a.setName("tcoords");const i=ws.newInstance({numberOfComponents:1,values:r});t.tris.getCABO().createVBO(i,"polys",uv.SURFACE,{points:o,tcoords:a,cellOffset:0}),t.VBOBuildTime.modified()},e.createFramebuffer=e=>{const n=e.getSize(),r=e.getContext();t.framebuffer=av.newInstance(),t.framebuffer.setOpenGLRenderWindow(e),t.framebuffer.create(...n),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind(),t.translucentRGBATexture=Dd.newInstance(),t.translucentRGBATexture.setInternalFormat(r.RGBA16F),t.translucentRGBATexture.setFormat(r.RGBA),t.translucentRGBATexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRGBATexture.setOpenGLRenderWindow(e),t.translucentRGBATexture.create2DFromRaw(n[0],n[1],4,"Float32Array",null),t.translucentRTexture=Dd.newInstance(),t.translucentRTexture.setInternalFormat(r.R16F),t.translucentRTexture.setFormat(r.RED),t.translucentRTexture.setOpenGLDataType(r.HALF_FLOAT),t.translucentRTexture.setOpenGLRenderWindow(e),t.translucentRTexture.create2DFromRaw(n[0],n[1],1,"Float32Array",null),t.translucentZTexture=Dd.newInstance(),t.translucentZTexture.setOpenGLRenderWindow(e),t.translucentZTexture.createDepthFromRaw(n[0],n[1],"Float32Array",null),t.framebuffer.setColorBuffer(t.translucentRGBATexture,0),t.framebuffer.setColorBuffer(t.translucentRTexture,1),t.framebuffer.setDepthBuffer(t.translucentZTexture)},e.createCopyShader=e=>{t.copyShader=e.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","attribute vec2 tcoordTC;","varying vec2 tcoord;","void main() { tcoord = tcoordTC; gl_Position = vertexDC; }"].join("\n"),"//VTK::System::Dec\n\nin vec2 tcoord;\n\nuniform sampler2D translucentRTexture;\nuniform sampler2D translucentRGBATexture;\n\n// the output of this shader\n//VTK::Output::Dec\n\nvoid main()\n{\n vec4 t1Color = texture(translucentRGBATexture, tcoord);\n float t2Color = texture(translucentRTexture, tcoord).r;\n gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a);\n}\n","")},e.createVBO=n=>{const r=n.getContext();t.tris.setOpenGLRenderWindow(n),e.createVertexBuffer();const o=t.copyShader;t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),"vertexDC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),r.FLOAT,3,r.FALSE)||dv("Error setting vertexDC in copy shader VAO."),t.copyVAO.addAttributeArray(o,t.tris.getCABO(),"tcoordTC",t.tris.getCABO().getTCoordOffset(),t.tris.getCABO().getStride(),r.FLOAT,2,r.FALSE)||dv("Error setting vertexDC in copy shader VAO.")},e.traverse=(n,r,o)=>{if(t.deleted)return;const a=n.getSize(),i=n.getContext();if(t._supported=!1,r.getSelector()||!i||!n.getWebgl2()||!i.getExtension("EXT_color_buffer_half_float")&&!i.getExtension("EXT_color_buffer_float"))return e.setCurrentOperation("translucentPass"),void r.traverse(e);if(t._supported=!0,null===t.framebuffer)e.createFramebuffer(n);else{const r=t.framebuffer.getSize();null===r||r[0]!==a[0]||r[1]!==a[1]?(t.framebuffer.releaseGraphicsResources(),t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRTexture.releaseGraphicsResources(n),t.translucentZTexture.releaseGraphicsResources(n),e.createFramebuffer(n)):(t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.bind())}i.drawBuffers([i.COLOR_ATTACHMENT0]),i.clearBufferfv(i.COLOR,0,[0,0,0,0]),i.clearBufferfv(i.DEPTH,0,[1]),i.colorMask(!1,!1,!1,!1),o.getOpaqueActorCount()>0&&(o.setCurrentOperation("opaqueZBufferPass"),r.traverse(o)),i.colorMask(!0,!0,!0,!0),i.drawBuffers([i.COLOR_ATTACHMENT0,i.COLOR_ATTACHMENT1]),i.viewport(0,0,a[0],a[1]),i.scissor(0,0,a[0],a[1]),i.clearBufferfv(i.COLOR,0,[0,0,0,1]),i.clearBufferfv(i.COLOR,1,[0,0,0,0]),i.enable(i.DEPTH_TEST),i.enable(i.BLEND),i.blendFuncSeparate(i.ONE,i.ONE,i.ZERO,i.ONE_MINUS_SRC_ALPHA),e.setCurrentOperation("translucentPass"),r.traverse(e),i.drawBuffers([i.NONE]),t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader?e.createCopyShader(n):n.getShaderCache().readyShaderProgram(t.copyShader),t.copyVAO||(t.copyVAO=ud.newInstance(),t.copyVAO.setOpenGLRenderWindow(n)),t.copyVAO.bind(),t.VBOBuildTime.getMTime()t._supported?pv:null,e.releaseGraphicsResources=n=>{t.framebuffer&&(t.framebuffer.releaseGraphicsResources(n),t.framebuffer=null),t.translucentRGBATexture&&(t.translucentRGBATexture.releaseGraphicsResources(n),t.translucentRGBATexture=null),t.translucentRTexture&&(t.translucentRTexture.releaseGraphicsResources(n),t.translucentRTexture=null),t.translucentZTexture&&(t.translucentZTexture.releaseGraphicsResources(n),t.translucentZTexture=null),t.copyVAO&&(t.copyVAO.releaseGraphicsResources(n),t.copyVAO=null),t.copyShader&&(t.copyShader.releaseGraphicsResources(n),t.copyShader=null),t.tris&&(t.tris.releaseGraphicsResources(n),t.tris=null),e.modified()}}const gv={framebuffer:null,copyShader:null,tris:null};function mv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gv,n),cv.extend(e,t,n),t.VBOBuildTime={},Wt.obj(t.VBOBuildTime,{mtime:0}),t.tris=md.newInstance(),Wt.get(e,t,["framebuffer"]),fv(e,t)}var hv={newInstance:Wt.newInstance(mv,"vtkOpenGLOrderIndependentTranslucentPass"),extend:mv};function vv(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(t.deleted)return;t._currentParent=r,e.setCurrentOperation("buildPass"),n.traverse(e);const o=n.getRenderable().getNumberOfLayers(),a=n.getRenderable().getRenderersByReference();for(let r=0;r0||t.translucentActorCount>0)&&t.volumeCount>0||t.depthRequested){const r=n.getFramebufferSize();null===t.framebuffer&&(t.framebuffer=av.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();const o=t.framebuffer.getSize();null!==o&&o[0]===r[0]&&o[1]===r[1]||(t.framebuffer.create(r[0],r[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation("zBufferPass"),s.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation("cameraPass"),s.traverse(e),t.opaqueActorCount>0&&(e.setCurrentOperation("opaquePass"),s.traverse(e)),t.translucentActorCount>0&&(t.translucentPass||(t.translucentPass=hv.newInstance()),t.translucentPass.traverse(n,s,e)),t.volumeCount>0&&(e.setCurrentOperation("volumePass"),s.traverse(e)),t.overlayActorCount>0&&(e.setCurrentOperation("overlayPass"),s.traverse(e))}}},e.getZBufferTexture=()=>t.framebuffer?t.framebuffer.getColorTexture():null,e.requestDepth=()=>{t.depthRequested=!0},e.incrementOpaqueActorCount=()=>t.opaqueActorCount++,e.incrementTranslucentActorCount=()=>t.translucentActorCount++,e.incrementVolumeCount=()=>t.volumeCount++,e.incrementOverlayActorCount=()=>t.overlayActorCount++}const bv={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function yv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bv,n),cv.extend(e,t,n),Wt.get(e,t,["framebuffer","opaqueActorCount","translucentActorCount","volumeCount"]),vv(e,t)}var Tv={newInstance:Wt.newInstance(yv,"vtkForwardPass"),extend:yv};const{FieldAssociations:xv}=Ys;function Sv(e,t){t.classHierarchy.push("vtkHardwareSelector"),e.getSourceDataAsync=async(e,t,n,r,o)=>{},e.selectAsync=async(t,n,r,o,a)=>{const i=await e.getSourceDataAsync(t,n,r,o,a);return i?i.generateSelection(n,r,o,a):[]}}const Cv={fieldAssociation:xv.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function Av(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cv,n),Wt.obj(e,t),Wt.setGet(e,t,["fieldAssociation","captureZValues"]),Sv(e,t)}var wv={newInstance:Wt.newInstance(Av,"vtkHardwareSelector"),extend:Av};function Pv(e,t){t.classHierarchy.push("vtkSelectionNode"),e.getBounds=()=>t.points.getBounds()}const Iv={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Ov(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Iv,n),Wt.obj(e,t),t.properties={},Wt.setGet(e,t,["contentType","fieldType","properties","selectionList"]),Pv(e,t)}var Ev={newInstance:Wt.newInstance(Ov,"vtkSelectionNode"),extend:Ov,SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};const{PassTypes:Mv}=_l,{SelectionContent:Rv,SelectionField:Dv}=Ev,{FieldAssociations:Bv}=Ys,{vtkErrorMacro:Lv}=Wt;function Vv(e){return`${e.propID} ${e.compositeID}`}function _v(e,t,n,r){return n?n[4*(t*(r[2]-r[0]+1)+e)+3]:0}function Nv(e,t,n,r){if(!n)return 0;const o=4*(t*(r[2]-r[0]+1)+e),a=n[o],i=n[o+1];return 256*(256*n[o+2]+i)+a}function Fv(e,t){let n=t;return n<<=24,n|=e,n}function kv(e,t,n,r){const o=n<0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]e.area[2]||t[1]e.area[3])return null;const n=[t[0]-e.area[0],t[1]-e.area[1]],o=Nv(n[0],n[1],e.pixBuffer[Mv.ACTOR_PASS],e.area);if(o<=0||o-1>=e.props.length)return null;const a={valid:!0};a.propID=o-1,a.prop=e.props[a.propID];let i=Nv(n[0],n[1],e.pixBuffer[Mv.COMPOSITE_INDEX_PASS],e.area);if((i<0||i>16777215)&&(i=0),a.compositeID=i-1,e.captureZValues){const r=4*(n[1]*(e.area[2]-e.area[0]+1)+n[0]);a.zValue=(256*e.zBuffer[r]+e.zBuffer[r+1])/65535,a.displayPosition=t}if(e.pixBuffer[Mv.ID_LOW24]&&0===_v(n[0],n[1],e.pixBuffer[Mv.ID_LOW24],e.area))return a;const s=Nv(n[0],n[1],e.pixBuffer[Mv.ID_LOW24],e.area),l=Nv(n[0],n[1],e.pixBuffer[Mv.ID_HIGH24],e.area);return a.attributeID=Fv(s,l),a}const a=[t[0],t[1]],i=[0,0];let s=kv(e,t,0,r);if(s&&s.valid)return s;for(let t=1;tt?a[1]-t:0;n<=a[1]+t;++n){if(i[1]=n,a[0]>=t&&(i[0]=a[0]-t,s=kv(e,i,0,r),s&&s.valid))return s;if(i[0]=a[0]+t,s=kv(e,i,0,r),s&&s.valid)return s}for(let n=a[0]>=t?a[0]-(t-1):0;n<=a[0]+(t-1);++n){if(i[0]=n,a[1]>=t&&(i[1]=a[1]-t,s=kv(e,i,0,r),s&&s.valid))return s;if(i[1]=a[1]+t,s=kv(e,i,0,r),s&&s.valid)return s}}return r[0]=t[0],r[1]=t[1],null}function Uv(e,t,n,r,o){const a=[];let i=0;return t.forEach(((t,s)=>{const l=Ev.newInstance();switch(l.setContentType(Rv.INDICES),e){case Bv.FIELD_ASSOCIATION_CELLS:l.setFieldType(Dv.CELL);break;case Bv.FIELD_ASSOCIATION_POINTS:l.setFieldType(Dv.POINT);break;default:Lv("Unknown field association")}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().attributeID=t.info.attributeID,l.getProperties().pixelCount=t.pixelCount,n&&(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=o.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),a[i]=l,i++})),a}function Gv(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t<=l;t++)for(let n=a;n<=s;n++){const r=kv(e,[n,t],0,u);if(r&&r.valid){const t=Vv(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&&r.zValue{t.rawPixBuffer=[],t.pixBuffer=[],t.zBuffer=null},e.beginSelection=()=>{t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer),t.maxAttributeId=0;const n=t._openGLRenderWindow.getSize();if(t.framebuffer){t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers();const e=t.framebuffer.getSize();e&&e[0]===n[0]&&e[1]===n[1]?t.framebuffer.bind():(t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer())}else t.framebuffer=av.newInstance(),t.framebuffer.setOpenGLRenderWindow(t._openGLRenderWindow),t.framebuffer.saveCurrentBindingsAndBuffers(),t.framebuffer.create(n[0],n[1]),t.framebuffer.populateFramebuffer();if(t._openGLRenderer.clear(),t._openGLRenderer.setSelector(e),t.hitProps={},t.propPixels={},t.props=[],e.releasePixBuffers(),t.fieldAssociation===Bv.FIELD_ASSOCIATION_POINTS){const e=t._openGLRenderWindow.getContext(),n=e.isEnabled(e.BLEND);e.disable(e.BLEND),t._openGLRenderWindow.traverseAllPasses(),n&&e.enable(e.BLEND)}},e.endSelection=()=>{t.hitProps={},t._openGLRenderer.setSelector(null),t.framebuffer.restorePreviousBindingsAndBuffers()},e.preCapturePass=()=>{const e=t._openGLRenderWindow.getContext();t.originalBlending=e.isEnabled(e.BLEND),e.disable(e.BLEND)},e.postCapturePass=()=>{const e=t._openGLRenderWindow.getContext();t.originalBlending&&e.enable(e.BLEND)},e.select=()=>{let n=null;return e.captureBuffers()&&(n=e.generateSelection(t.area[0],t.area[1],t.area[2],t.area[3]),e.releasePixBuffers()),n},e.getSourceDataAsync=async(n,r,o,a,i)=>{if(t._renderer=n,void 0===r){const n=t._openGLRenderWindow.getSize();e.setArea(0,0,n[0]-1,n[1]-1)}else e.setArea(r,o,a,i);if(!e.captureBuffers())return!1;const s={area:[...t.area],pixBuffer:[...t.pixBuffer],captureZValues:t.captureZValues,zBuffer:t.zBuffer,props:[...t.props],fieldAssociation:t.fieldAssociation,renderer:n,openGLRenderWindow:t._openGLRenderWindow,generateSelection:function(){for(var e=arguments.length,t=new Array(e),n=0;n{if(!t._renderer||!t._openGLRenderWindow)return Lv("Renderer and view must be set before calling Select."),!1;t._openGLRenderer=t._openGLRenderWindow.getViewNodeFor(t._renderer),t._openGLRenderWindow.getRenderable().preRender(),e.invokeEvent({type:"StartEvent"}),t.originalBackground=t._renderer.getBackgroundByReference(),t._renderer.setBackground(0,0,0,0);const n=t._openGLRenderWindow.getRenderPasses();e.beginSelection();const r=[];for(t.currentPass=Mv.MIN_KNOWN_PASS;t.currentPass<=Mv.MAX_KNOWN_PASS;t.currentPass++)e.passRequired(t.currentPass)&&(e.preCapturePass(t.currentPass),t.captureZValues&&t.currentPass===Mv.ACTOR_PASS&&"function"==typeof n[0].requestDepth&&"function"==typeof n[0].getFramebuffer?(n[0].requestDepth(),t._openGLRenderWindow.traverseAllPasses()):t._openGLRenderWindow.traverseAllPasses(),e.postCapturePass(t.currentPass),e.savePixelBuffer(t.currentPass),r.push(t.currentPass));return r.forEach((n=>{t.currentPass=n,e.processPixelBuffers()})),t.currentPass=Mv.MAX_KNOWN_PASS,e.endSelection(),t._renderer.setBackground(t.originalBackground),e.invokeEvent({type:"EndEvent"}),!0},e.processPixelBuffers=()=>{t.props.forEach(((n,r)=>{e.isPropHit(r)&&n.processSelectorPixelBuffers(e,t.propPixels[r])}))},e.passRequired=e=>{if(e===Mv.ID_HIGH24){if(t.fieldAssociation===Bv.FIELD_ASSOCIATION_POINTS)return t.maximumPointId>16777215;if(t.fieldAssociation===Bv.FIELD_ASSOCIATION_CELLS)return t.maximumCellId>16777215}return!0},e.savePixelBuffer=n=>{if(t.pixBuffer[n]=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),!t.rawPixBuffer[n]){const e=(t.area[2]-t.area[0]+1)*(t.area[3]-t.area[1]+1)*4;t.rawPixBuffer[n]=new Uint8Array(e),t.rawPixBuffer[n].set(t.pixBuffer[n])}if(n===Mv.ACTOR_PASS){if(t.captureZValues){const e=t._openGLRenderWindow.getRenderPasses();if("function"==typeof e[0].requestDepth&&"function"==typeof e[0].getFramebuffer){const n=e[0].getFramebuffer();n.saveCurrentBindingsAndBuffers(),n.bind(),t.zBuffer=t._openGLRenderWindow.getPixelData(t.area[0],t.area[1],t.area[2],t.area[3]),n.restorePreviousBindingsAndBuffers()}}e.buildPropHitList(t.rawPixBuffer[n])}},e.buildPropHitList=e=>{let n=0;for(let r=0;r<=t.area[3]-t.area[1];r++)for(let o=0;o<=t.area[2]-t.area[0];o++){let a=Nv(o,r,e,t.area);a>0&&(a--,a in t.hitProps||(t.hitProps[a]=!0,t.propPixels[a]=[]),t.propPixels[a].push(4*n)),++n}},e.renderProp=n=>{t.currentPass===Mv.ACTOR_PASS&&(e.setPropColorValueFromInt(t.props.length+1),t.props.push(n))},e.renderCompositeIndex=n=>{t.currentPass===Mv.COMPOSITE_INDEX_PASS&&e.setPropColorValueFromInt(n+1)},e.renderAttributeId=e=>{e<0||(t.maxAttributeId=e>t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=e=>Wt.enumToString(Mv,e),e.isPropHit=e=>Boolean(t.hitProps[e]),e.setPropColorValueFromInt=e=>{t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=(n,r,o)=>{const a=r<0?0:r;if(0===a){if(o[0]=n[0],o[1]=n[1],n[0]t.area[2]||n[1]t.area[3])return null;const e=[n[0]-t.area[0],n[1]-t.area[1]],r=Nv(e[0],e[1],t.pixBuffer[Mv.ACTOR_PASS],t.area);if(r<=0||r-1>=t.props.length)return null;const a={valid:!0};a.propID=r-1,a.prop=t.props[a.propID];let i=Nv(e[0],e[1],t.pixBuffer[Mv.COMPOSITE_INDEX_PASS],t.area);if((i<0||i>16777215)&&(i=0),a.compositeID=i-1,t.captureZValues){const r=4*(e[1]*(t.area[2]-t.area[0]+1)+e[0]);a.zValue=(256*t.zBuffer[r]+t.zBuffer[r+1])/65535,a.displayPosition=n}if(t.pixBuffer[Mv.ID_LOW24]&&0===_v(e[0],e[1],t.pixBuffer[Mv.ID_LOW24],t.area))return a;const s=Nv(e[0],e[1],t.pixBuffer[Mv.ID_LOW24],t.area),l=Nv(e[0],e[1],t.pixBuffer[Mv.ID_HIGH24],t.area);return a.attributeID=Fv(s,l),a}const i=[n[0],n[1]],s=[0,0];let l=e.getPixelInformation(n,0,o);if(l&&l.valid)return l;for(let t=1;tt?i[1]-t:0;n<=i[1]+t;++n){if(s[1]=n,i[0]>=t&&(s[0]=i[0]-t,l=e.getPixelInformation(s,0,o),l&&l.valid))return l;if(s[0]=i[0]+t,l=e.getPixelInformation(s,0,o),l&&l.valid)return l}for(let n=i[0]>=t?i[0]-(t-1):0;n<=i[0]+(t-1);++n){if(s[0]=n,i[1]>=t&&(s[1]=i[1]-t,l=e.getPixelInformation(s,0,o),l&&l.valid))return l;if(s[1]=i[1]+t,l=e.getPixelInformation(s,0,o),l&&l.valid)return l}}return o[0]=n[0],o[1]=n[1],null},e.generateSelection=(n,r,o,a)=>{const i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=Math.floor(a),u=new Map,d=[0,0];for(let n=s;n<=c;n++)for(let r=i;r<=l;r++){const o=[r,n],a=e.getPixelInformation(o,0,d);if(a&&a.valid){const e=Vv(a);if(u.has(e)){const n=u.get(e);n.pixelCount++,t.captureZValues&&a.zValuet.rawPixBuffer[e],e.getPixelBuffer=e=>t.pixBuffer[e],e.attach=(e,n)=>{t._openGLRenderWindow=e,t._renderer=n};const n=e.setArea;e.setArea=function(){return!!n(...arguments)&&(t.area[0]=Math.floor(t.area[0]),t.area[1]=Math.floor(t.area[1]),t.area[2]=Math.floor(t.area[2]),t.area[3]=Math.floor(t.area[3]),!0)}}const Wv={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function Hv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wv,n),wv.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),Wt.setGetArray(e,t,["area"],4),Wt.setGet(e,t,["_renderer","currentPass","_openGLRenderWindow","maximumPointId","maximumCellId"]),Wt.setGetArray(e,t,["propColorValue"],3),Wt.moveToProtected(e,t,["renderer","openGLRenderWindow"]),Wt.event(e,t,"event"),zv(e,t)}var jv={newInstance:Wt.newInstance(Hv,"vtkOpenGLHardwareSelector"),extend:Hv,..._l},$v=n(594),Kv=n.n($v);const qv=["lastShaderProgramBound","context","_openGLRenderWindow"];function Xv(e,t){t.classHierarchy.push("vtkShaderCache"),e.replaceShaderValues=(e,n,r)=>{let o=n;r.length>0&&(o=id.substitute(o,"VSOut","GSOut").result);const a=t._openGLRenderWindow.getWebgl2();let i="\n",s="#version 100\n";a?s="#version 300 es\n#define attribute in\n#define textureCube texture\n#define texture2D texture\n#define textureCubeLod textureLod\n#define texture2DLod textureLod\n":(t.context.getExtension("OES_standard_derivatives"),t.context.getExtension("EXT_frag_depth")&&(i="#extension GL_EXT_frag_depth : enable\n"),t.context.getExtension("EXT_shader_texture_lod")&&(i+="#extension GL_EXT_shader_texture_lod : enable\n#define textureCubeLod textureCubeLodEXT\n#define texture2DLod texture2DLodEXT")),o=id.substitute(o,"//VTK::System::Dec",[`${s}\n`,a?"":"#extension GL_OES_standard_derivatives : enable\n",i,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;let l=id.substitute(e,"//VTK::System::Dec",[`${s}\n`,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;if(a){l=id.substitute(l,"varying","out").result,o=id.substitute(o,"varying","in").result;let e="",t=0;for(;o.includes(`gl_FragData[${t}]`);)o=id.substitute(o,`gl_FragData\\[${t}\\]`,`fragOutput${t}`).result,e+=`layout(location = ${t}) out vec4 fragOutput${t};\n`,t++;o=id.substitute(o,"//VTK::Output::Dec",e).result}return{VSSource:l,FSSource:o,GSSource:id.substitute(r,"//VTK::System::Dec",s).result}},e.readyShaderProgramArray=(t,n,r)=>{const o=e.replaceShaderValues(t,n,r),a=e.getShaderProgram(o.VSSource,o.FSSource,o.GSSource);return e.readyShaderProgram(a)},e.readyShaderProgram=t=>t&&(t.getCompiled()||t.compileShader())&&e.bindShaderProgram(t)?t:null,e.getShaderProgram=(e,n,r)=>{const o=`${e}${n}${r}`,a=Kv().hash(o);if(!(a in t.shaderPrograms)){const o=id.newInstance();return o.setContext(t.context),o.getVertexShader().setSource(e),o.getFragmentShader().setSource(n),r&&o.getGeometryShader().setSource(r),o.setMd5Hash(a),t.shaderPrograms[a]=o,o}return t.shaderPrograms[a]},e.releaseGraphicsResources=n=>{e.releaseCurrentShaderProgram(),Object.keys(t.shaderPrograms).map((e=>t.shaderPrograms[e])).forEach((e=>e.cleanup())),t.shaderPrograms={}},e.releaseCurrentShaderProgram=()=>{t.lastShaderProgramBound&&(t.lastShaderProgramBound.cleanup(),t.lastShaderProgramBound=null)},e.bindShaderProgram=e=>(t.lastShaderProgramBound===e||(t.lastShaderProgramBound&&t.lastShaderProgramBound.release(),e.bind(),t.lastShaderProgramBound=e),1)}const Yv={lastShaderProgramBound:null,shaderPrograms:null,context:null};function Qv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yv,n),t.shaderPrograms={},Wt.obj(e,t),Wt.setGet(e,t,qv),Wt.moveToProtected(e,t,["openGLRenderWindow"]),Xv(e,t)}var Zv={newInstance:Wt.newInstance(Qv,"vtkShaderCache"),extend:Qv};const{vtkErrorMacro:Jv}=Wt;function eb(e,t){t.classHierarchy.push("vtkOpenGLTextureUnitManager"),e.deleteTable=()=>{for(let e=0;e{if(t.context!==n){if(0!==t.context&&e.deleteTable(),t.context=n,t.context){t.numberOfTextureUnits=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS);for(let e=0;e{for(let n=0;ne.isAllocated(n)?-1:(t.textureUnits[n]=!0,n),e.isAllocated=e=>t.textureUnits[e],e.free=e=>{t.textureUnits[e]=!1},e.freeAll=()=>{for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tb,n),Wt.obj(e,t),t.textureUnits=[],Wt.get(e,t,["numberOfTextureUnits"]),Wt.setGet(e,t,["context"]),eb(e,t)}var rb={newInstance:Wt.newInstance(nb,"vtkOpenGLTextureUnitManager"),extend:nb};function ob(e,t){t.classHierarchy.push("vtkRenderWindowViewNode"),e.getViewNodeFactory=()=>null,e.getAspectRatio=()=>t.size[0]/t.size[1],e.getAspectRatioForRenderer=e=>{const n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=(t,n,r)=>{const o=r.getViewportByReference(),a=e.getFramebufferSize();return o[0]*a[0]<=t&&o[2]*a[0]>=t&&o[1]*a[1]<=n&&o[3]*a[1]>=n},e.getViewportSize=t=>{const n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=t=>{const n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=(t,n,r)=>{const o=e.getFramebufferSize();return[t/o[0],n/o[1],r]},e.normalizedDisplayToDisplay=(t,n,r)=>{const o=e.getFramebufferSize();return[t*o[0],n*o[1],r]},e.worldToView=(e,t,n,r)=>r.worldToView(e,t,n),e.viewToWorld=(e,t,n,r)=>r.viewToWorld(e,t,n),e.worldToDisplay=(t,n,r,o)=>{const a=o.worldToView(t,n,r),i=e.getViewportSize(o),s=o.viewToProjection(a[0],a[1],a[2],i[0]/i[1]),l=o.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=(t,n,r,o)=>{const a=e.displayToNormalizedDisplay(t,n,r),i=o.normalizedDisplayToProjection(a[0],a[1],a[2]),s=e.getViewportSize(o),l=o.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return o.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=(t,n,r,o)=>{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-a[0]-.5,i[1]-a[1]-.5,r]},e.viewportToNormalizedViewport=(t,n,r,o)=>{const a=e.getViewportSize(o);return a&&0!==a[0]&&0!==a[1]?[t/(a[0]-1),n/(a[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=(t,n,r,o)=>{const a=e.getViewportSize(o);return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=(t,n,r)=>[t,e.getFramebufferSize()[1]-n-1,r],e.viewportToNormalizedDisplay=(t,n,r,o)=>{let a=o.getViewportByReference();a=e.normalizedDisplayToDisplay(a[0],a[1],0);const i=t+a[0]+.5,s=n+a[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getComputedDevicePixelRatio=()=>t.size[0]/e.getContainerSize()[0],e.getContainerSize=()=>{Wt.vtkErrorMacro("not implemented")},e.getPixelData=(e,t,n,r)=>{Wt.vtkErrorMacro("not implemented")},e.createSelector=()=>{Wt.vtkErrorMacro("not implemented")}}const ab={size:void 0,selector:void 0};function ib(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ab,n),t.size||(t.size=[300,300]),Wt.getArray(e,t,["size"],2),Wt.get(e,t,["selector"]),Xt.extend(e,t,n),ob(e,t)}var sb={newInstance:Wt.newInstance(ib,"vtkRenderWindowViewNode"),extend:ib};const{vtkDebugMacro:lb,vtkErrorMacro:cb}=Wt,ub={position:"absolute",top:0,left:0,width:"100%",height:"100%"},db=["activateTexture","deactivateTexture","disableCullFace","enableCullFace","get3DContext","getActiveFramebuffer","getContext","getDefaultTextureByteSize","getDefaultTextureInternalFormat","getDefaultToWebgl2","getGLInformations","getGraphicsMemoryInfo","getGraphicsResourceForObject","getHardwareMaximumLineWidth","getPixelData","getShaderCache","getTextureUnitForTexture","getTextureUnitManager","getWebgl2","makeCurrent","releaseGraphicsResources","registerGraphicsResourceUser","unregisterGraphicsResourceUser","restoreContext","setActiveFramebuffer","setContext","setDefaultToWebgl2","setGraphicsResourceForObject"];function pb(e,t,n){const r=e.createFramebuffer(),o=e.createTexture();e.bindTexture(e.TEXTURE_2D,o),e.texImage2D(e.TEXTURE_2D,0,t,2,2,0,t,n,null),e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,o,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindTexture(e.TEXTURE_2D,null),a===e.FRAMEBUFFER_COMPLETE}let fb=0;const gb=[];function mb(e){e.preventDefault()}function hb(e,t){let n;function r(){return n||(n=function(){const e=new Map,t={apply:(t,n,r)=>e.has(r[0])?e.get(r[0]):t.apply(n,r)},n=Object.create(null);return n.getParameter=(e,n,r,o)=>new Proxy(o.bind(e),t),n.depthMask=(t,n,r,o)=>{return new Proxy(o.bind(t),(a=t.DEPTH_WRITEMASK,{apply:(t,n,r)=>(e.set(a,r[0]),t.apply(n,r))}));var a},{get(e,t,r){if("__getUnderlyingContext"===t)return()=>e;let o=Reflect.get(e,t,e);o instanceof Function&&(o=o.bind(e));const a=n[t];return a?a(e,t,r,o):o}}}()),n}t.classHierarchy.push("vtkOpenGLRenderWindow"),e.getViewNodeFactory=()=>t.myFactory,t.canvas.addEventListener("webglcontextlost",mb,!1),t.canvas.addEventListener("webglcontextrestored",e.restoreContext,!1);const o=[0,0];let a;e.onModified((function(){t.renderable&&(t.size[0]===o[0]&&t.size[1]===o[1]||(o[0]=t.size[0],o[1]=t.size[1],t.canvas.setAttribute("width",t.size[0]),t.canvas.setAttribute("height",t.size[1]))),t.viewStream&&t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?"none":"block",t.el&&(t.el.style.cursor=t.cursorVisibility?t.cursor:"none"),t.containerSize=null})),e.buildPass=n=>{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.addMissingNodes(t.renderable.getChildRenderWindowsByReference()),e.removeUnusedNodes(),e.initialize(),t.children.forEach((t=>{t.setOpenGLRenderWindow?.(e)}))}},e.initialize=()=>{if(!t.initialized){if(t.rootOpenGLRenderWindow=e.getLastAncestorOfType("vtkOpenGLRenderWindow"),t.rootOpenGLRenderWindow)t.context2D=e.get2DContext();else{t.context=e.get3DContext(),e.resizeFromChildRenderWindows(),t.context&&(fb++,gb.forEach((e=>e(fb)))),t.textureUnitManager=rb.newInstance(),t.textureUnitManager.setContext(t.context),t.shaderCache.setContext(t.context);const n=t.context;n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA),n.depthFunc(n.LEQUAL),n.enable(n.BLEND)}t.initialized=!0}},e.makeCurrent=()=>{t.context.makeCurrent()},e.setContainer=n=>{t.el&&t.el!==n&&(t.canvas.parentNode!==t.el&&cb("Error: canvas parent node does not match container"),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)),t.el!==n&&(t.el=n,t.el&&(t.el.appendChild(t.canvas),t.useBackgroundImage&&t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=>t.el,e.getContainerSize=()=>{if(!t.containerSize&&t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=>{const e=t.activeFramebuffer?.getSize();return e||t.size},e.getPixelData=(e,n,r,o)=>{const a=new Uint8Array((r-e+1)*(o-n+1)*4);return t.context.readPixels(e,n,r-e+1,o-n+1,t.context.RGBA,t.context.UNSIGNED_BYTE,a),a},e.get3DContext=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:"high-performance"},n=null;const o="undefined"!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&&o&&(n=t.canvas.getContext("webgl2",e),n&&(t.webgl2=!0,lb("using webgl2"))),n||(lb("using webgl1"),n=t.canvas.getContext("webgl",e)||t.canvas.getContext("experimental-webgl",e)),new Proxy(n,r())},e.get2DContext=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t.canvas.getContext("2d",e)},e.restoreContext=()=>{const t=cv.newInstance();t.setCurrentOperation("Release"),t.traverse(e,null)},e.activateTexture=n=>{const r=t._textureResourceIds.get(n);if(void 0!==r)return void t.context.activeTexture(t.context.TEXTURE0+r);const o=e.getTextureUnitManager().allocate();o<0?cb("Hardware does not support the number of textures defined."):(t._textureResourceIds.set(n,o),t.context.activeTexture(t.context.TEXTURE0+o))},e.deactivateTexture=n=>{const r=t._textureResourceIds.get(n);void 0!==r&&(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=e=>{const n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureByteSize=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(t.webgl2)switch(e){case ds.CHAR:case ds.SIGNED_CHAR:case ds.UNSIGNED_CHAR:return 1;case n:case r:case ds.UNSIGNED_SHORT:case ds.SHORT:case ds.VOID:return 2;default:return 4}return 1},e.getDefaultTextureInternalFormat=function(e,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(t.webgl2)switch(e){case ds.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;default:return t.context.RGBA8}case r&&!o&&ds.UNSIGNED_SHORT:switch(n){case 1:return r.R16_EXT;case 2:return r.RG16_EXT;case 3:return r.RGB16_EXT;default:return r.RGBA16_EXT}case r&&!o&&ds.SHORT:switch(n){case 1:return r.R16_SNORM_EXT;case 2:return r.RG16_SNORM_EXT;case 3:return r.RGB16_SNORM_EXT;default:return r.RGBA16_SNORM_EXT}default:switch(n){case 1:return o?t.context.R16F:t.context.R32F;case 2:return o?t.context.RG16F:t.context.RG32F;case 3:return o?t.context.RGB16F:t.context.RGB32F;default:return o?t.context.RGBA16F:t.context.RGBA32F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;default:return t.context.RGBA}},e.setBackgroundImage=e=>{t.bgImage.src=e.src},e.setUseBackgroundImage=e=>{t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",{resetCamera:r=!1,size:o=null,scale:a=1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=>e*a)):null},new Promise(((n,o)=>{const a=e.onImageReady((o=>{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach((e=>{let{restoreParamsFn:t,arg:n}=e;return t(n)})),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement("img");if(n.style=ub,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t.rootOpenGLRenderWindow?.resizeFromChildRenderWindows(),t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=>{const n=t.getActiveCamera(),o=n.get("focalPoint","position","parallelScale");return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((e=>{let{resetCameraFn:t,resetCameraArgs:n}=e;return t(n)}))}e.traverseAllPasses()}}))}))},e.getHardwareMaximumLineWidth=()=>{if(null!=a)return a;const t=e.get3DContext(),n=t.getParameter(t.ALIASED_LINE_WIDTH_RANGE);return a=n[1],n[1]},e.getGLInformations=()=>{if(t._glInformation)return t._glInformation;const n=e.get3DContext(),r=n.getExtension("OES_texture_float"),o=n.getExtension("OES_texture_half_float"),a=n.getExtension("WEBGL_debug_renderer_info"),i=n.getExtension("WEBGL_draw_buffers"),s=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),l=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",n.getParameter(n.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",n.getParameter(n.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",n.getParameter(n.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",s&&n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",n.getParameter(n.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",n.getParameter(n.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",n.getParameter(n.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",n.getParameter(n.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",n.getParameter(n.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",n.getParameter(n.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",n.getParameter(n.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",n.getParameter(n.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",n.getParameter(n.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",n.getParameter(n.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",n.getParameter(n.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[r&&pb(n,n.RGBA,n.UNSIGNED_BYTE)?"RGBA":"",r&&pb(n,n.RGB,n.UNSIGNED_BYTE)?"RGB":"",r&&pb(n,n.LUMINANCE,n.UNSIGNED_BYTE)?"LUMINANCE":"",r&&pb(n,n.ALPHA,n.UNSIGNED_BYTE)?"ALPHA":"",r&&pb(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[o&&pb(n,n.RGBA,o.HALF_FLOAT_OES)?"RGBA":"",o&&pb(n,n.RGB,o.HALF_FLOAT_OES)?"RGB":"",o&&pb(n,n.LUMINANCE,o.HALF_FLOAT_OES)?"LUMINANCE":"",o&&pb(n,n.ALPHA,o.HALF_FLOAT_OES)?"ALPHA":"",o&&pb(n,n.LUMINANCE_ALPHA,o.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[r&&pb(n,n.RGBA,n.FLOAT)?"RGBA":"",r&&pb(n,n.RGB,n.FLOAT)?"RGB":"",r&&pb(n,n.LUMINANCE,n.FLOAT)?"LUMINANCE":"",r&&pb(n,n.ALPHA,n.FLOAT)?"ALPHA":"",r&&pb(n,n.LUMINANCE_ALPHA,n.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",n.getSupportedExtensions().join("
\t\t\t\t\t ")],["WebGL Renderer","RENDERER",n.getParameter(n.RENDERER)],["WebGL Vendor","VENDOR",n.getParameter(n.VENDOR)],["WebGL Version","VERSION",n.getParameter(n.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",n.getParameter(n.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",a&&n.getParameter(a.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",a&&n.getParameter(a.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",t.webgl2?2:1]],c={};for(;l.length;){const[e,t,n]=l.pop();t&&(c[t]={label:e,value:n})}return t._glInformation=c,c},e.traverseAllPasses=()=>{if(t.renderPasses)for(let n=0;n0&&void 0!==arguments[0]?arguments[0]:t.imageFormat;const r=document.createElement("canvas"),o=r.getContext("2d");r.width=t.canvas.width,r.height=t.canvas.height,o.drawImage(t.canvas,0,0);const a=t.canvas.getBoundingClientRect(),i=t.renderable;i.getRenderers().forEach((e=>{e.getViewProps().forEach((e=>{if(e.getContainer){const t=e.getContainer().getElementsByTagName("canvas");for(let e=0;e{const e=t.rootOpenGLRenderWindow;if(!e||!t.context2D||t.children.some((e=>!!e.getSelector?.())))return;const n=e.getCanvas(),r=t.canvas;t.context2D.drawImage(n,0,n.height-r.height,r.width,r.height,0,0,r.width,r.height)},e.resizeFromChildRenderWindows=()=>{const n=t.renderable.getChildRenderWindowsByReference();if(n.length>0){const t=[0,0];for(let r=0;rt[0]?o[0]:t[0],t[1]=o[1]>t[1]?o[1]:t[1])}e.setSize(...t)}},e.disableCullFace=()=>{t.cullFaceEnabled&&(t.context.disable(t.context.CULL_FACE),t.cullFaceEnabled=!1)},e.enableCullFace=()=>{t.cullFaceEnabled||(t.context.enable(t.context.CULL_FACE),t.cullFaceEnabled=!0)},e.setViewStream=n=>t.viewStream!==n&&(t.subscription&&(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream&&(t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=>e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()),!0),e.createSelector=()=>{const t=jv.newInstance();return t.setOpenGLRenderWindow(e),t},e.delete=Wt.chain((()=>{t.context&&(fb--,gb.forEach((e=>e(fb)))),e.setContainer(),e.setViewStream()}),(function(){t.canvas.removeEventListener("webglcontextlost",mb),t.canvas.removeEventListener("webglcontextrestored",e.restoreContext)}),e.delete),e.setActiveFramebuffer=e=>{t.activeFramebuffer=e};const i=e.setSize;e.setSize=(t,n)=>{const r=i(t,n);return r&&e.invokeWindowResizeEvent({width:t,height:n}),r},e.registerGraphicsResourceUser=(n,r)=>{t._graphicsResources.has(n)||e.setGraphicsResourceForObject(n,null,null),t._graphicsResources.get(n)?.users.add(r)},e.unregisterGraphicsResourceUser=(n,r)=>{const o=t._graphicsResources.get(n);o&&(o.users.delete(r),o.users.size||(o.oglObject?.releaseGraphicsResources(e),t._graphicsResources.delete(n)))},e.getGraphicsResourceForObject=e=>t._graphicsResources.get(e),e.setGraphicsResourceForObject=(n,r,o)=>{if(!n)return;const a=t._graphicsResources.get(n);a?.oglObject?.releaseGraphicsResources(e),t._graphicsResources.set(n,{coreObject:n,oglObject:r,hash:o,users:a?.users??new Set})},e.getGraphicsMemoryInfo=()=>{let e=0;return t._graphicsResources.forEach((t=>{let{oglObject:n}=t;e+=n.getAllocatedGPUMemoryInBytes()})),e},e.releaseGraphicsResources=()=>{null!==t.shaderCache&&t.shaderCache.releaseGraphicsResources(e),t._graphicsResources.forEach((t=>{let{oglObject:n}=t;n.releaseGraphicsResources(e)})),t._graphicsResources.clear(),null!==t.textureUnitManager&&t.textureUnitManager.freeAll(),t.renderable.getRenderersByReference().forEach((t=>{e.getViewNodeFor(t)?.releaseGraphicsResources()}))};const s={...e};db.forEach((n=>{e[n]=function(){return t.rootOpenGLRenderWindow?t.rootOpenGLRenderWindow[n](...arguments):s[n](...arguments)}}))}const vb={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,context2D:null,canvas:null,cursorVisibility:!0,cursor:"pointer",textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1};const bb=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vb,n),sb.extend(e,t,n),t.canvas||(t.canvas=document.createElement("canvas"),t.canvas.style.width="100%"),t.selector||(t.selector=jv.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",t._textureResourceIds=new Map,t._graphicsResources=new Map,t._glInformation=null,t.myFactory=an.newInstance(),t.shaderCache=Zv.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=Tv.newInstance(),Wt.get(e,t,["shaderCache","textureUnitManager","webgl2","useBackgroundImage","activeFramebuffer","rootOpenGLRenderWindow"]),Wt.setGet(e,t,["initialized","context","context2D","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","useOffScreen"]),Wt.setGetArray(e,t,["size"],2),Wt.event(e,t,"imageReady"),Wt.event(e,t,"windowResizeEvent"),hb(e,t)}),"vtkOpenGLRenderWindow");dh("WebGL",bb),tn("vtkRenderWindow",bb);const yb=["setBindGroup","setIndexBuffer","setVertexBuffer","draw","drawIndexed"];function Tb(e,t){t.classHierarchy.push("vtkWebGPURenderEncoder"),e.begin=e=>{t.drawCallbacks=[],t.handle=e.beginRenderPass(t.description),t.label&&t.handle.pushDebugGroup(t.label)},e.end=()=>{for(let n=0;n{if(t.boundPipeline===e)return;t.handle.setPipeline(e.getHandle());const n=e.getPipelineDescription();if(t.colorTextureViews.length!==n.fragment.targets.length)console.log(`mismatched attachment counts on pipeline ${n.fragment.targets.length} while encoder has ${t.colorTextureViews.length}`),console.trace();else for(let e=0;e{t.replaceShaderCodeFunction(e)},e.setColorTextureView=(e,n)=>{t.colorTextureViews[e]!==n&&(t.colorTextureViews[e]=n)},e.activateBindGroup=e=>{const n=t.boundPipeline.getDevice(),r=t.boundPipeline.getBindGroupLayoutCount(e.getLabel());t.handle.setBindGroup(r,e.getBindGroup(n));const o=n.getBindGroupLayoutDescription(e.getBindGroupLayout(n)),a=n.getBindGroupLayoutDescription(t.boundPipeline.getBindGroupLayout(r));o!==a&&(console.log(`renderEncoder ${t.pipelineHash} mismatched bind group layouts bind group has\n${o}\n versus pipeline\n${a}\n`),console.trace())},e.attachTextureViews=()=>{for(let e=0;e{for(let r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xb,n),ht(e,t),t.description={colorAttachments:[{view:void 0,loadOp:"load",storeOp:"store"}],depthStencilAttachment:{view:void 0,depthLoadOp:"clear",depthClearValue:0,depthStoreOp:"store"}},t.replaceShaderCodeFunction=e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor = computedColor;"]).result,t.setCode(n)},t.pipelineSettings={primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!0,depthCompare:"greater-equal",format:"depth32float"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}},t.colorTextureViews=[],bt(e,t,["boundPipeline","colorTextureViews"]),St(e,t,["depthTextureView","description","handle","label","pipelineHash","pipelineSettings","replaceShaderCodeFunction"]),Tb(e,t)}var Cb={newInstance:Mt(Sb,"vtkWebGPURenderEncoder"),extend:Sb};function Ab(e,t){t.classHierarchy.push("vtkWebGPUOpaquePass"),e.traverse=(n,r)=>{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.renderEncoder)t.colorTexture.resize(r.getCanvas().width,r.getCanvas().height),t.depthTexture.resize(r.getCanvas().width,r.getCanvas().height);else{e.createRenderEncoder(),t.colorTexture=wm.newInstance({label:"opaquePassColor"}),t.colorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:"rgba16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const n=t.colorTexture.createView("opaquePassColorTexture");t.renderEncoder.setColorTextureView(0,n),t.depthFormat="depth32float",t.depthTexture=wm.newInstance({label:"opaquePassDepth"}),t.depthTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:t.depthFormat,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView("opaquePassDepthTexture");t.renderEncoder.setDepthTextureView(a)}t.renderEncoder.attachTextureViews(),e.setCurrentOperation("opaquePass"),n.setRenderEncoder(t.renderEncoder),n.traverse(e)},e.getColorTextureView=()=>t.renderEncoder.getColorTextureViews()[0],e.getDepthTextureView=()=>t.renderEncoder.getDepthTextureView(),e.createRenderEncoder=()=>{t.renderEncoder=Cb.newInstance({label:"OpaquePass"}),t.renderEncoder.setPipelineHash("op")}}const wb={renderEncoder:null,colorTexture:null,depthTexture:null};function Pb(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wb,n),cv.extend(e,t,n),Wt.get(e,t,["colorTexture","depthTexture"]),Ab(e,t)}var Ib={newInstance:Wt.newInstance(Pb,"vtkWebGPUOpaquePass"),extend:Pb};function Ob(e,t){t.classHierarchy.push("vtkWebGPUOrderIndependentTranslucentPass"),e.traverse=(n,r)=>{if(t.deleted)return;t._currentParent=r;const o=r.getDevice();if(t.translucentRenderEncoder)t.translucentColorTexture.resizeToMatch(t.colorTextureView.getTexture()),t.translucentAccumulateTexture.resizeToMatch(t.colorTextureView.getTexture());else{e.createRenderEncoder(),e.createFinalEncoder(),t.translucentColorTexture=wm.newInstance({label:"translucentPassColor"}),t.translucentColorTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:"rgba16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const n=t.translucentColorTexture.createView("oitpColorTexture");t.translucentRenderEncoder.setColorTextureView(0,n),t.translucentAccumulateTexture=wm.newInstance({label:"translucentPassAccumulate"}),t.translucentAccumulateTexture.create(o,{width:r.getCanvas().width,height:r.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const a=t.translucentAccumulateTexture.createView("oitpAccumTexture");t.translucentRenderEncoder.setColorTextureView(1,a),t.fullScreenQuad=Rf.newInstance(),t.fullScreenQuad.setDevice(r.getDevice()),t.fullScreenQuad.setPipelineHash("oitpfsq"),t.fullScreenQuad.setTextureViews(t.translucentRenderEncoder.getColorTextureViews()),t.fullScreenQuad.setFragmentShaderTemplate("\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var tcoord: vec2 = vec2(i32(input.fragPos.x), i32(input.fragPos.y));\n var reveal: f32 = textureLoad(oitpAccumTexture, tcoord, 0).r;\n if (reveal == 1.0) { discard; }\n var tcolor: vec4 = textureLoad(oitpColorTexture, tcoord, 0);\n var total: f32 = max(tcolor.a, 0.01);\n var computedColor: vec4 = vec4(tcolor.r/total, tcolor.g/total, tcolor.b/total, 1.0 - reveal);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n")}t.translucentRenderEncoder.setDepthTextureView(t.depthTextureView),t.translucentRenderEncoder.attachTextureViews(),e.setCurrentOperation("translucentPass"),n.setRenderEncoder(t.translucentRenderEncoder),n.traverse(e),e.finalPass(r,n)},e.finalPass=(e,n)=>{t.translucentFinalEncoder.setColorTextureView(0,t.colorTextureView),t.translucentFinalEncoder.attachTextureViews(),t.translucentFinalEncoder.begin(e.getCommandEncoder()),n.scissorAndViewport(t.translucentFinalEncoder),t.fullScreenQuad.prepareAndDraw(t.translucentFinalEncoder),t.translucentFinalEncoder.end()},e.getTextures=()=>[t.translucentColorTexture,t.translucentAccumulateTexture],e.createRenderEncoder=()=>{t.translucentRenderEncoder=Cb.newInstance({label:"translucentRender"});const e=t.translucentRenderEncoder.getDescription();e.colorAttachments=[{view:void 0,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"},{view:void 0,clearValue:[1,0,0,0],loadOp:"clear",storeOp:"store"}],e.depthStencilAttachment={view:void 0,depthLoadOp:"load",depthStoreOp:"store"},t.translucentRenderEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor"),t.addOutput("f32","outAccum"),t.addBuiltinInput("vec4","@builtin(position) fragPos");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["var w: f32 = computedColor.a * pow(0.1 + input.fragPos.z, 2.0);","output.outColor = vec4(computedColor.rgb*w, w);","output.outAccum = computedColor.a;"]).result,t.setCode(n)})),t.translucentRenderEncoder.setPipelineHash("oitpr"),t.translucentRenderEncoder.setPipelineSettings({primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!1,depthCompare:"greater",format:"depth32float"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"one",dstFactor:"one"},alpha:{srcfactor:"one",dstFactor:"one"}}},{format:"r16float",blend:{color:{srcFactor:"zero",dstFactor:"one-minus-src"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},e.createFinalEncoder=()=>{t.translucentFinalEncoder=Cb.newInstance({label:"translucentFinal"}),t.translucentFinalEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),t.translucentFinalEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor"),t.addBuiltinInput("vec4","@builtin(position) fragPos");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(computedColor.rgb, computedColor.a);"]).result,t.setCode(n)})),t.translucentFinalEncoder.setPipelineHash("oitpf"),t.translucentFinalEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})}}const Eb={colorTextureView:null,depthTextureView:null};function Mb(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Eb,n),cv.extend(e,t,n),Wt.setGet(e,t,["colorTextureView","depthTextureView"]),Ob(e,t)}var Rb={newInstance:Wt.newInstance(Mb,"vtkWebGPUOrderIndependentTranslucentPass"),extend:Mb};const Db=0,Bb=1,Lb=2,Vb=3,_b=4,Nb="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Volume::TraverseDec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\nfn getTextureValue(vTex: texture_3d, tpos: vec4) -> f32\n{\n // todo multicomponent support\n return textureSampleLevel(vTex, clampSampler, tpos.xyz, 0.0).r;\n}\n\nfn getGradient(vTex: texture_3d, tpos: vec4, vNum: i32, scalar: f32) -> vec4\n{\n var result: vec4;\n\n var tstep: vec4 = volumeSSBO.values[vNum].tstep;\n result.x = getTextureValue(vTex, tpos + vec4(tstep.x, 0.0, 0.0, 1.0)) - scalar;\n result.y = getTextureValue(vTex, tpos + vec4(0.0, tstep.y, 0.0, 1.0)) - scalar;\n result.z = getTextureValue(vTex, tpos + vec4(0.0, 0.0, tstep.z, 1.0)) - scalar;\n result.w = 0.0;\n\n // divide by spacing as that is our delta\n result = result / volumeSSBO.values[vNum].spacing;\n // now we have a gradient in unit tcoords\n\n var grad: f32 = length(result.xyz);\n if (grad > 0.0)\n {\n // rotate to View Coords, needed for lighting and shading\n var nMat: mat4x4 = rendererUBO.SCVCMatrix * volumeSSBO.values[vNum].planeNormals;\n result = nMat * result;\n result = result / length(result);\n }\n\n // store gradient magnitude in .w\n result.w = grad;\n\n return result;\n}\n\nfn processVolume(vTex: texture_3d, vNum: i32, cNum: i32, posSC: vec4, tfunRows: f32) -> vec4\n{\n var outColor: vec4 = vec4(0.0, 0.0, 0.0, 0.0);\n\n // convert to tcoords and reject if outside the volume\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*posSC;\n if (tpos.x < 0.0 || tpos.y < 0.0 || tpos.z < 0.0 ||\n tpos.x > 1.0 || tpos.y > 1.0 || tpos.z > 1.0) { return outColor; }\n\n var scalar: f32 = getTextureValue(vTex, tpos);\n\n var coord: vec2 =\n vec2(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\n (0.5 + 2.0 * f32(vNum)) / tfunRows);\n var color: vec4 = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\n\n var gofactor: f32 = 1.0;\n var normal: vec4 = vec4(0.0,0.0,0.0,0.0);\n if (componentSSBO.values[cNum].gomin < 1.0 || volumeSSBO.values[vNum].shade[0] > 0.0)\n {\n normal = getGradient(vTex, tpos, vNum, scalar);\n if (componentSSBO.values[cNum].gomin < 1.0)\n {\n gofactor = clamp(normal.a*componentSSBO.values[cNum].goScale + componentSSBO.values[cNum].goShift,\n componentSSBO.values[cNum].gomin, componentSSBO.values[cNum].gomax);\n }\n }\n\n coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\n var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\n\n if (volumeSSBO.values[vNum].shade[0] > 0.0)\n {\n color = color*abs(normal.z);\n }\n\n outColor = vec4(color.rgb, gofactor * opacity);\n\n return outColor;\n}\n\n// adjust the start and end point of a raycast such that it intersects the unit cube.\n// This function is used to take a raycast starting point and step vector\n// and numSteps and return the startijng and ending steps for intersecting the\n// unit cube. Recall for a 3D texture, the unit cube is the range of texture coordsinates\n// that have valid values. So this funtion can be used to take a ray in texture coordinates\n// and bound it to intersecting the texture.\n//\nfn adjustBounds(tpos: vec4, tstep: vec4, numSteps: f32) -> vec2\n{\n var result: vec2 = vec2(0.0, numSteps);\n var tpos2: vec4 = tpos + tstep*numSteps;\n\n // move tpos to the start of the volume\n var adjust: f32 =\n min(\n max(tpos.x/tstep.x, (tpos.x - 1.0)/tstep.x),\n min(\n max((tpos.y - 1.0)/tstep.y, tpos.y/tstep.y),\n max((tpos.z - 1.0)/tstep.z, tpos.z/tstep.z)));\n if (adjust < 0.0)\n {\n result.x = result.x - adjust;\n }\n\n // adjust length to the end\n adjust =\n max(\n min(tpos2.x/tstep.x, (tpos2.x - 1.0)/tstep.x),\n max(\n min((tpos2.y - 1.0)/tstep.y, tpos2.y/tstep.y),\n min((tpos2.z - 1.0)/tstep.z, tpos2.z/tstep.z)));\n if (adjust > 0.0)\n {\n result.y = result.y - adjust;\n }\n\n return result;\n}\n\nfn getSimpleColor(scalar: f32, vNum: i32, cNum: i32) -> vec4\n{\n // how many rows (tfuns) do we have in our tfunTexture\n var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\n\n var coord: vec2 =\n vec2(scalar * componentSSBO.values[cNum].cScale + componentSSBO.values[cNum].cShift,\n (0.5 + 2.0 * f32(vNum)) / tfunRows);\n var color: vec4 = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);\n coord.x = (scalar * componentSSBO.values[cNum].oScale + componentSSBO.values[cNum].oShift);\n var opacity: f32 = textureSampleLevel(ofunTexture, clampSampler, coord, 0.0).r;\n return vec4(color.rgb, opacity);\n}\n\nfn traverseMax(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4)\n{\n // convert to tcoords and reject if outside the volume\n var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\n var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\n var tstep: vec4 = tpos2 - tpos;\n\n var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps);\n\n // did we hit anything\n if (rayBounds.x >= rayBounds.y)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n return;\n }\n\n tpos = tpos + tstep*rayBounds.x;\n var curDist: f32 = rayBounds.x;\n var maxVal: f32 = -1.0e37;\n loop\n {\n var scalar: f32 = getTextureValue(vTex, tpos);\n if (scalar > maxVal)\n {\n maxVal = scalar;\n }\n\n // increment position\n curDist = curDist + 1.0;\n tpos = tpos + tstep;\n\n // check if we have reached a terminating condition\n if (curDist > rayBounds.y) { break; }\n }\n\n // process to get the color and opacity\n traverseVals[vNum] = getSimpleColor(maxVal, vNum, cNum);\n}\n\nfn traverseMin(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4)\n{\n // convert to tcoords and reject if outside the volume\n var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\n var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\n var tstep: vec4 = tpos2 - tpos;\n\n var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps);\n\n // did we hit anything\n if (rayBounds.x >= rayBounds.y)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n return;\n }\n\n tpos = tpos + tstep*rayBounds.x;\n var curDist: f32 = rayBounds.x;\n var minVal: f32 = 1.0e37;\n loop\n {\n var scalar: f32 = getTextureValue(vTex, tpos);\n if (scalar < minVal)\n {\n minVal = scalar;\n }\n\n // increment position\n curDist = curDist + 1.0;\n tpos = tpos + tstep;\n\n // check if we have reached a terminating condition\n if (curDist > rayBounds.y) { break; }\n }\n\n // process to get the color and opacity\n traverseVals[vNum] = getSimpleColor(minVal, vNum, cNum);\n}\n\nfn traverseAverage(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4)\n{\n // convert to tcoords and reject if outside the volume\n var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\n var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\n var tstep: vec4 = tpos2 - tpos;\n\n var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps);\n\n // did we hit anything\n if (rayBounds.x >= rayBounds.y)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n return;\n }\n\n let ipRange: vec4 = volumeSSBO.values[vNum].ipScalarRange;\n tpos = tpos + tstep*rayBounds.x;\n var curDist: f32 = rayBounds.x;\n var avgVal: f32 = 0.0;\n var sampleCount: f32 = 0.0;\n loop\n {\n var sample: f32 = getTextureValue(vTex, tpos);\n // right now leave filtering off until WebGL changes get merged\n // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)\n // {\n avgVal = avgVal + sample;\n sampleCount = sampleCount + 1.0;\n // }\n\n // increment position\n curDist = curDist + 1.0;\n tpos = tpos + tstep;\n\n // check if we have reached a terminating condition\n if (curDist > rayBounds.y) { break; }\n }\n\n if (sampleCount <= 0.0)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n }\n\n // process to get the color and opacity\n traverseVals[vNum] = getSimpleColor(avgVal/sampleCount, vNum, cNum);\n}\n\nfn traverseAdditive(vTex: texture_3d, vNum: i32, cNum: i32, rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4)\n{\n // convert to tcoords and reject if outside the volume\n var numSteps: f32 = rayLengthSC/mapperUBO.SampleDistance;\n var tpos: vec4 = volumeSSBO.values[vNum].SCTCMatrix*minPosSC;\n var tpos2: vec4 = volumeSSBO.values[vNum].SCTCMatrix*(minPosSC + rayStepSC);\n var tstep: vec4 = tpos2 - tpos;\n\n var rayBounds: vec2 = adjustBounds(tpos, tstep, numSteps);\n\n // did we hit anything\n if (rayBounds.x >= rayBounds.y)\n {\n traverseVals[vNum] = vec4(0.0,0.0,0.0,0.0);\n return;\n }\n\n let ipRange: vec4 = volumeSSBO.values[vNum].ipScalarRange;\n tpos = tpos + tstep*rayBounds.x;\n var curDist: f32 = rayBounds.x;\n var sumVal: f32 = 0.0;\n loop\n {\n var sample: f32 = getTextureValue(vTex, tpos);\n // right now leave filtering off until WebGL changes get merged\n // if (ipRange.z == 0.0 || sample >= ipRange.x && sample <= ipRange.y)\n // {\n sumVal = sumVal + sample;\n // }\n\n // increment position\n curDist = curDist + 1.0;\n tpos = tpos + tstep;\n\n // check if we have reached a terminating condition\n if (curDist > rayBounds.y) { break; }\n }\n\n // process to get the color and opacity\n traverseVals[vNum] = getSimpleColor(sumVal, vNum, cNum);\n}\n\nfn composite(rayLengthSC: f32, minPosSC: vec4, rayStepSC: vec4) -> vec4\n{\n // initial ray position is at the beginning\n var rayPosSC: vec4 = minPosSC;\n\n // how many rows (tfuns) do we have in our tfunTexture\n var tfunRows: f32 = f32(textureDimensions(tfunTexture).y);\n\n var curDist: f32 = 0.0;\n var computedColor: vec4 = vec4(0.0, 0.0, 0.0, 0.0);\n var sampleColor: vec4;\n//VTK::Volume::TraverseCalls\n\n loop\n {\n // for each volume, sample and accumulate color\n//VTK::Volume::CompositeCalls\n\n // increment position\n curDist = curDist + mapperUBO.SampleDistance;\n rayPosSC = rayPosSC + rayStepSC;\n\n // check if we have reached a terminating condition\n if (curDist > rayLengthSC) { break; }\n if (computedColor.a > 0.98) { break; }\n }\n return computedColor;\n}\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var rayMax: f32 = textureSampleLevel(maxTexture, clampSampler, input.tcoordVS, 0.0).r;\n var rayMin: f32 = textureSampleLevel(minTexture, clampSampler, input.tcoordVS, 0.0).r;\n\n // discard empty rays\n if (rayMax <= rayMin) { discard; }\n else\n {\n // compute start and end ray positions in view coordinates\n var minPosSC: vec4 = rendererUBO.PCSCMatrix*vec4(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMax, 1.0);\n minPosSC = minPosSC * (1.0 / minPosSC.w);\n var maxPosSC: vec4 = rendererUBO.PCSCMatrix*vec4(2.0 * input.tcoordVS.x - 1.0, 1.0 - 2.0 * input.tcoordVS.y, rayMin, 1.0);\n maxPosSC = maxPosSC * (1.0 / maxPosSC.w);\n\n var rayLengthSC: f32 = distance(minPosSC.xyz, maxPosSC.xyz);\n var rayStepSC: vec4 = (maxPosSC - minPosSC)*(mapperUBO.SampleDistance/rayLengthSC);\n rayStepSC.w = 0.0;\n\n var computedColor: vec4;\n\n//VTK::Volume::Loop\n\n//VTK::RenderEncoder::Impl\n }\n\n return output;\n}\n",Fb=new Float64Array(16),kb=new Float64Array(16);function Ub(e,t){t.classHierarchy.push("vtkWebGPUVolumePassFSQ"),e.replaceShaderPosition=(e,t,n)=>{const r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","@builtin(position) Position");let o=r.getCode();o=Jp.substitute(o,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);"]).result,r.setCode(o),t.getShaderDescription("fragment").addBuiltinInput("vec4","@builtin(position) fragPos")},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderVolume=(e,n,r)=>{const o=n.getShaderDescription("fragment");let a=o.getCode();const i=[],s=[];for(let e=0;e(\n sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\n (1.0 - computedColor.a)*sampleColor.a + computedColor.a);")):(s.push(` sampleColor = traverseVals[${e}];`),s.push(" computedColor = vec4(\n sampleColor.a * sampleColor.rgb * (1.0 - computedColor.a) + computedColor.rgb,\n (1.0 - computedColor.a)*sampleColor.a + computedColor.a);"));a=Jp.substitute(a,"//VTK::Volume::CompositeCalls",i).result,a=Jp.substitute(a,"//VTK::Volume::TraverseCalls",s).result,a=Jp.substitute(a,"//VTK::Volume::TraverseDec",[`var traverseVals: array,${t.volumes.length}>;`]).result;let l=!1;for(let e=0;e{let r=e.getMTime();for(let e=0;e{let r=Math.max(e.getMTime(),t.WebGPURenderer.getStabilizedTime());for(let e=0;e"),t.SSBO.addEntry("planeNormals","mat4x4"),t.SSBO.addEntry("shade","vec4"),t.SSBO.addEntry("tstep","vec4"),t.SSBO.addEntry("spacing","vec4"),t.SSBO.addEntry("ipScalarRange","vec4"),t.SSBO.setAllInstancesFromArray("SCTCMatrix",a),t.SSBO.setAllInstancesFromArray("planeNormals",i),t.SSBO.setAllInstancesFromArray("shade",l),t.SSBO.setAllInstancesFromArray("tstep",s),t.SSBO.setAllInstancesFromArray("spacing",c),t.SSBO.setAllInstancesFromArray("ipScalarRange",u),t.SSBO.send(n),t.componentSSBO.clearData(),t.componentSSBO.setNumberOfInstances(t.numRows);const d=new Float64Array(t.numRows),m=new Float64Array(t.numRows),h=new Float64Array(t.numRows),T=new Float64Array(t.numRows),x=new Float64Array(t.numRows),S=new Float64Array(t.numRows),C=new Float64Array(t.numRows),A=new Float64Array(t.numRows);let w=0;for(let e=0;e{n();let r=t.volumes[0].getRenderable().getMapper().getSampleDistance();for(let e=0;e{t.pipelineHash="volfsq";for(let e=0;e{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r{const e=r();return e.push(t.componentSSBO),e.push(t.clampSampler),e}}const Gb={volumes:null,rowLength:1024,lastVolumeLength:0};function zb(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gb,n),Rf.extend(e,t,n),t.fragmentShaderTemplate=Nb,t.UBO=yg.newInstance({label:"mapperUBO"}),t.UBO.addEntry("SampleDistance","f32"),t.SSBO=fg.newInstance({label:"volumeSSBO"}),t.componentSSBO=fg.newInstance({label:"componentSSBO"}),t.lutBuildTime={},Wt.obj(t.lutBuildTime,{mtime:0}),Ub(e,t)}var Wb={newInstance:Wt.newInstance(zb,"vtkWebGPUVolumePassFSQ"),extend:zb};const{Representation:Hb}=os,{BufferUsage:jb,PrimitiveTypes:$b}=sg,Kb=[[0,4,6],[0,6,2],[1,3,7],[1,7,5],[0,5,4],[0,1,5],[2,6,7],[2,7,3],[0,3,1],[0,2,3],[4,5,7],[4,7,6]],qb="\n//VTK::Renderer::Dec\n\n//VTK::Select::Dec\n\n//VTK::VolumePass::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Select::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::VolumePass::Impl\n\n // use the maximum (closest) of the current value and the zbuffer\n // the blend func will then take the min to find the farthest stop value\n var stopval: f32 = max(input.fragPos.z, textureLoad(opaquePassDepthTexture, vec2(i32(input.fragPos.x), i32(input.fragPos.y)), 0));\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";function Xb(e,t){t.classHierarchy.push("vtkWebGPUVolumePass"),e.initialize=n=>{t._clearEncoder||e.createClearEncoder(n),t._mergeEncoder||e.createMergeEncoder(n),t._copyEncoder||e.createCopyEncoder(n),t._depthRangeEncoder||e.createDepthRangeEncoder(n),t.fullScreenQuad||(t.fullScreenQuad=Wb.newInstance(),t.fullScreenQuad.setDevice(n.getDevice()),t.fullScreenQuad.setTextureViews([...t._depthRangeEncoder.getColorTextureViews()])),t._volumeCopyQuad||(t._volumeCopyQuad=Rf.newInstance(),t._volumeCopyQuad.setPipelineHash("volpassfsq"),t._volumeCopyQuad.setDevice(n.getDevice()),t._volumeCopyQuad.setFragmentShaderTemplate("\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = textureSample(volumePassColorTexture,\n volumePassColorTextureSampler, mapperUBO.tscale*input.tcoordVS);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n"),t._copyUBO=yg.newInstance({label:"mapperUBO"}),t._copyUBO.addEntry("tscale","vec2"),t._volumeCopyQuad.setUBO(t._copyUBO),t._volumeCopyQuad.setTextureViews([t._colorTextureView]))},e.traverse=(n,r)=>{if(t.deleted)return;t._currentParent=r,e.initialize(r),e.computeTiming(r),e.renderDepthBounds(n,r),t._firstGroup=!0;const o=r.getDevice(),a=o.getHandle().limits.maxSampledTexturesPerShaderStage-4;if(t.volumes.length>a){const o=n.getRenderable().getActiveCamera().getPosition(),i=[];for(let e=0;ei[t]-i[e]));let l=[],c=s.length%a;for(let o=0;o=c&&(e.rayCastPass(r,n,l),l=[],c=a,t._firstGroup=!1)}else e.rayCastPass(r,n,t.volumes);if(t._volumeCopyQuad.setWebGPURenderer(n),t._useSmallViewport){const e=t._colorTextureView.getTexture().getWidth(),n=t._colorTextureView.getTexture().getHeight();t._copyUBO.setArray("tscale",[t._smallViewportWidth/e,t._smallViewportHeight/n])}else t._copyUBO.setArray("tscale",[1,1]);t._copyUBO.sendIfNeeded(o),t._copyEncoder.setColorTextureView(0,t.colorTextureView),t._copyEncoder.attachTextureViews(),t._copyEncoder.begin(r.getCommandEncoder()),n.scissorAndViewport(t._copyEncoder),t._volumeCopyQuad.prepareAndDraw(t._copyEncoder),t._copyEncoder.end()},e.delete=Wt.chain((()=>{t._animationRateSubscription&&(t._animationRateSubscription.unsubscribe(),t._animationRateSubscription=null)}),e.delete),e.computeTiming=e=>{const n=e.getRenderable().getInteractor();if(null==t._lastScale){const e=t.volumes[0].getRenderable().getMapper();t._lastScale=e.getInitialInteractionScale()||1}t._useSmallViewport=!1,n.isAnimating()&&t._lastScale>1.5&&(t._useSmallViewport=!0),t._colorTexture.resize(e.getCanvas().width,e.getCanvas().height),t._animationRateSubscription||(t._animationRateSubscription=n.onAnimationFrameRateUpdate((()=>{const e=t.volumes[0].getRenderable().getMapper();if(e.getAutoAdjustSampleDistances()){const e=n.getRecentAnimationFrameRate(),r=t._lastScale*n.getDesiredUpdateRate()/e;t._lastScale=r,t._lastScale>400&&(t._lastScale=400)}else t._lastScale=e.getImageSampleDistance()*e.getImageSampleDistance();t._lastScale<1.5&&(t._lastScale=1.5)})))},e.rayCastPass=(e,n,r)=>{const o=t._firstGroup?t._clearEncoder:t._mergeEncoder;o.attachTextureViews(),o.begin(e.getCommandEncoder());let a=t._colorTextureView.getTexture().getWidth(),i=t._colorTextureView.getTexture().getHeight();if(t._useSmallViewport){const n=e.getCanvas(),r=1/Math.sqrt(t._lastScale);t._smallViewportWidth=Math.ceil(r*n.width),t._smallViewportHeight=Math.ceil(r*n.height),a=t._smallViewportWidth,i=t._smallViewportHeight}o.getHandle().setViewport(0,0,a,i,0,1),o.getHandle().setScissorRect(0,0,a,i),t.fullScreenQuad.setWebGPURenderer(n),t.fullScreenQuad.setVolumes(r),t.fullScreenQuad.prepareAndDraw(o),o.end()},e.renderDepthBounds=(n,r)=>{e.updateDepthPolyData(n);const o=t._boundsPoly,a=o.getPoints(),i=o.getPolys();let s={hash:`vp${i.getMTime()}`,usage:jb.Index,cells:i,numberOfPoints:a.getNumberOfPoints(),primitiveType:$b.Triangles,representation:Hb.SURFACE};const l=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().setIndexBuffer(l),s={usage:jb.PointArray,format:"float32x4",hash:`vp${a.getMTime()}${i.getMTime()}`,dataArray:a,indexBuffer:l,packExtra:!0};const c=r.getDevice().getBufferManager().getBuffer(s);t._mapper.getVertexInput().addBuffer(c,["vertexBC"]),t._mapper.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),e.drawDepthRange(n,r)},e.updateDepthPolyData=e=>{let n=!1;for(let e=0;e{t._depthRangeTexture.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeTexture2.resizeToMatch(t.colorTextureView.getTexture()),t._depthRangeEncoder.attachTextureViews(),e.setCurrentOperation("volumeDepthRangePass"),n.setRenderEncoder(t._depthRangeEncoder),n.volumeDepthRangePass(!0),t._mapper.setWebGPURenderer(n),t._mapper.prepareToDraw(t._depthRangeEncoder),t._mapper.registerDrawCallback(t._depthRangeEncoder),n.volumeDepthRangePass(!1)},e.createDepthRangeEncoder=e=>{const n=e.getDevice();t._depthRangeEncoder=Cb.newInstance({label:"VolumePass DepthRange"}),t._depthRangeEncoder.setPipelineHash("volr"),t._depthRangeEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor1"),t.addOutput("vec4","outColor2");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor1 = vec4(input.fragPos.z, 0.0, 0.0, 0.0);","output.outColor2 = vec4(stopval, 0.0, 0.0, 0.0);"]).result,t.setCode(n)})),t._depthRangeEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"},{view:null,clearValue:[1,1,1,1],loadOp:"clear",storeOp:"store"}]}),t._depthRangeEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"r16float",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"max"},alpha:{srcfactor:"one",dstFactor:"one",operation:"max"}}},{format:"r16float",blend:{color:{srcFactor:"one",dstFactor:"one",operation:"min"},alpha:{srcfactor:"one",dstFactor:"one",operation:"min"}}}]}}),t._depthRangeTexture=wm.newInstance({label:"volumePassMaxDepth"}),t._depthRangeTexture.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const r=t._depthRangeTexture.createView("maxTexture");t._depthRangeEncoder.setColorTextureView(0,r),t._depthRangeTexture2=wm.newInstance({label:"volumePassDepthMin"}),t._depthRangeTexture2.create(n,{width:e.getCanvas().width,height:e.getCanvas().height,format:"r16float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const o=t._depthRangeTexture2.createView("minTexture");t._depthRangeEncoder.setColorTextureView(1,o),t._mapper.setDevice(e.getDevice()),t._mapper.setTextureViews([t.depthTextureView])},e.createClearEncoder=e=>{t._colorTexture=wm.newInstance({label:"volumePassColor"}),t._colorTexture.create(e.getDevice(),{width:e.getCanvas().width,height:e.getCanvas().height,format:"bgra8unorm",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC}),t._colorTextureView=t._colorTexture.createView("volumePassColorTexture"),t._colorTextureView.addSampler(e.getDevice(),{minFilter:"linear",magFilter:"linear"}),t._clearEncoder=Cb.newInstance({label:"VolumePass Clear"}),t._clearEncoder.setColorTextureView(0,t._colorTextureView),t._clearEncoder.setDescription({colorAttachments:[{view:null,clearValue:[0,0,0,0],loadOp:"clear",storeOp:"store"}]}),t._clearEncoder.setPipelineHash("volpf"),t._clearEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"bgra8unorm",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},e.createCopyEncoder=e=>{t._copyEncoder=Cb.newInstance({label:"volumePassCopy"}),t._copyEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),t._copyEncoder.setPipelineHash("volcopypf"),t._copyEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"rgba16float",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},e.createMergeEncoder=e=>{t._mergeEncoder=Cb.newInstance({label:"volumePassMerge"}),t._mergeEncoder.setColorTextureView(0,t._colorTextureView),t._mergeEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),t._mergeEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(computedColor.rgb, computedColor.a);"]).result,t.setCode(n)})),t._mergeEncoder.setPipelineHash("volpf"),t._mergeEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:"bgra8unorm",blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}})},e.setVolumes=n=>{if(!t.volumes||t.volumes.length!==n.length)return t.volumes=[...n],void e.modified();for(let r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Yb,n),cv.extend(e,t,n),t._mapper=If.newInstance(),t._mapper.setFragmentShaderTemplate(qb),t._mapper.getShaderReplacements().set("replaceShaderVolumePass",((e,t,n)=>{t.getShaderDescription("fragment").addBuiltinInput("vec4","@builtin(position) fragPos")})),t._boundsPoly=uu.newInstance(),t._lastMTimes=[],Wt.setGet(e,t,["colorTextureView","depthTextureView"]),Xb(e,t)}var Zb={newInstance:Wt.newInstance(Qb,"vtkWebGPUVolumePass"),extend:Qb};function Jb(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(t.deleted)return;t._currentParent=r,e.setCurrentOperation("buildPass"),n.traverse(e),t.opaquePass||(t.opaquePass=Ib.newInstance());const o=n.getRenderable().getNumberOfLayers(),a=n.getChildren();for(let r=0;r0&&(t.translucentPass||(t.translucentPass=Rb.newInstance()),t.translucentPass.setColorTextureView(t.opaquePass.getColorTextureView()),t.translucentPass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.translucentPass.traverse(i,n)),t.volumes.length>0&&(t.volumePass||(t.volumePass=Zb.newInstance()),t.volumePass.setColorTextureView(t.opaquePass.getColorTextureView()),t.volumePass.setDepthTextureView(t.opaquePass.getDepthTextureView()),t.volumePass.setVolumes(t.volumes),t.volumePass.traverse(i,n)),e.finalPass(n,i))}},e.finalPass=(n,r)=>{t._finalBlitEncoder||e.createFinalBlitEncoder(n),t._finalBlitOutputTextureView.createFromTextureHandle(n.getCurrentTexture(),{depth:1,format:n.getPresentationFormat()}),t._finalBlitEncoder.attachTextureViews(),t._finalBlitEncoder.begin(n.getCommandEncoder()),r.scissorAndViewport(t._finalBlitEncoder),t._fullScreenQuad.prepareAndDraw(t._finalBlitEncoder),t._finalBlitEncoder.end()},e.createFinalBlitEncoder=e=>{t._finalBlitEncoder=Cb.newInstance({label:"forwardPassBlit"}),t._finalBlitEncoder.setDescription({colorAttachments:[{view:null,loadOp:"load",storeOp:"store"}]}),t._finalBlitEncoder.setPipelineHash("fpf"),t._finalBlitEncoder.setPipelineSettings({primitive:{cullMode:"none"},fragment:{targets:[{format:e.getPresentationFormat(),blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcfactor:"one",dstFactor:"one-minus-src-alpha"}}}]}}),t._fsqSampler=hm.newInstance({label:"finalPassSampler"}),t._fsqSampler.create(e.getDevice(),{minFilter:"linear",magFilter:"linear"}),t._fullScreenQuad=Rf.newInstance(),t._fullScreenQuad.setDevice(e.getDevice()),t._fullScreenQuad.setPipelineHash("fpfsq"),t._fullScreenQuad.setTextureViews([t.opaquePass.getColorTextureView()]),t._fullScreenQuad.setAdditionalBindables([t._fsqSampler]),t._fullScreenQuad.setFragmentShaderTemplate("\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n@fragment\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = clamp(textureSampleLevel(opaquePassColorTexture, finalPassSampler, input.tcoordVS, 0.0),vec4(0.0),vec4(1.0));\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n"),t._finalBlitOutputTextureView=Tm.newInstance(),t._finalBlitEncoder.setColorTextureView(0,t._finalBlitOutputTextureView)},e.incrementOpaqueActorCount=()=>t.opaqueActorCount++,e.incrementTranslucentActorCount=()=>t.translucentActorCount++,e.addVolume=e=>{t.volumes.push(e)}}const ey={opaqueActorCount:0,translucentActorCount:0,volumes:null,opaqueRenderEncoder:null,translucentPass:null,volumePass:null};function ty(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ey,n),cv.extend(e,t,n),Wt.setGet(e,t,["opaquePass","translucentPass","volumePass"]),Jb(e,t)}var ny={newInstance:Wt.newInstance(ty,"vtkForwardPass"),extend:ty};const{VtkDataTypes:ry}=ws;function oy(e,t){function n(e){if(e.imageData){e.dataArray=e.imageData.getPointData().getScalars(),e.time=e.dataArray.getMTime(),e.nativeArray=e.dataArray.getData();const t=e.imageData.getDimensions();switch(e.width=t[0],e.height=t[1],e.depth=t[2],e.dataArray.getNumberOfComponents()){case 1:e.format="r";break;case 2:e.format="rg";break;default:e.format="rgba"}switch(e.dataArray.getDataType()){case ry.UNSIGNED_CHAR:e.format+="8unorm";break;case ry.FLOAT:case ry.UNSIGNED_INT:case ry.INT:case ry.DOUBLE:case ry.UNSIGNED_SHORT:case ry.SHORT:default:e.format+="16float"}}e.image&&(e.width=e.image.width,e.height=e.image.height,e.depth=1,e.format="rgba8unorm"),e.jsImageData&&(e.width=e.jsImageData.width,e.height=e.jsImageData.height,e.depth=1,e.format="rgba8unorm",e.flip=!0,e.nativeArray=e.jsImageData.data),e.canvas&&(e.width=e.canvas.width,e.height=e.canvas.height,e.depth=1,e.format="rgba8unorm",e.flip=!0,e.usage=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT)}function r(e){const n=wm.newInstance();return n.create(t.device,{width:e.width,height:e.height,depth:e.depth,format:e.format,usage:e.usage,mipLevel:e.mipLevel}),(e.nativeArray||e.image||e.canvas)&&n.writeImageData(e),n}t.classHierarchy.push("vtkWebGPUTextureManager"),e.getTexture=e=>e.hash?t.device.getCachedObject(e.hash,r,e):r(e),e.getTextureForImageData=e=>{const r={time:e.getMTime()};return r.imageData=e,n(r),r.hash=r.time+r.format+r.mipLevel,t.device.getTextureManager().getTexture(r)},e.getTextureForVTKTexture=e=>{const r={time:e.getMTime()};return e.getInputData()?r.imageData=e.getInputData():e.getImage()?r.image=e.getImage():e.getJsImageData()?r.jsImageData=e.getJsImageData():e.getCanvas()&&(r.canvas=e.getCanvas()),n(r),r.mipLevel=e.getMipLevel(),r.hash=r.time+r.format+r.mipLevel,t.device.getTextureManager().getTexture(r)}}const ay={handle:null,device:null};function iy(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ay,n),Wt.obj(e,t),Wt.setGet(e,t,["device"]),oy(e,t)}var sy={newInstance:Wt.newInstance(iy),extend:iy};class ly extends Map{constructor(){super(),this.registry=new FinalizationRegistry((e=>{const t=super.get(e);t&&t.deref&&void 0===t.deref()&&super.delete(e)}))}getValue(e){const t=super.get(e);if(t){const n=t.deref();if(void 0!==n)return n;super.delete(e)}}setValue(e,t){let n;return t&&"object"==typeof t&&(n=new WeakRef(t),this.registry.register(t,e),super.set(e,n)),n}}function cy(e,t){t.classHierarchy.push("vtkWebGPUDevice"),e.initialize=e=>{t.handle=e},e.createCommandEncoder=()=>t.handle.createCommandEncoder(),e.submitCommandEncoder=e=>{t.handle.queue.submit([e.finish()])},e.getShaderModule=e=>t.shaderCache.getShaderModule(e),e.getBindGroupLayout=e=>{if(!e.entries)return null;for(let t=0;t{for(let n=0;ne in t.pipelines?t.pipelines[e]:null,e.createPipeline=(n,r)=>{r.initialize(e,n),t.pipelines[n]=r},e.onSubmittedWorkDone=()=>t.handle.queue.onSubmittedWorkDone(),e.hasCachedObject=e=>t.objectCache.getValue(e),e.getCachedObject=function(e,n){if(!e)return vtkErrorMacro("attempt to cache an object without a hash"),null;const r=t.objectCache.getValue(e);if(r)return r;for(var o=arguments.length,a=new Array(o>2?o-2:0),i=2;i2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,uy,n),ht(e,t),St(e,t,["handle"]),bt(e,t,["bufferManager","shaderCache","textureManager"]),t.objectCache=new ly,t.shaderCache=Jp.newInstance(),t.shaderCache.setDevice(e),t.bindGroupLayouts=[],t.bufferManager=sg.newInstance(),t.bufferManager.setDevice(e),t.textureManager=sy.newInstance(),t.textureManager.setDevice(e),t.pipelines={},cy(e,t)}var py={newInstance:Mt(dy,"vtkWebGPUDevice"),extend:dy};function fy(e,t){t.classHierarchy.push("vtkWebGPUHardwareSelectionPass"),e.traverse=(n,r)=>{if(t.deleted)return;t._currentParent=null,e.setCurrentOperation("buildPass"),n.traverse(e);const o=n.getDevice();if(t.selectionRenderEncoder)t.colorTexture.resize(n.getCanvas().width,n.getCanvas().height),t.depthTexture.resizeToMatch(t.colorTexture);else{e.createRenderEncoder(),t.colorTexture=wm.newInstance({label:"hardwareSelectorColor"}),t.colorTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:"rgba32uint",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const r=t.colorTexture.createView("hardwareSelectColorTexture");t.selectionRenderEncoder.setColorTextureView(0,r),t.depthTexture=wm.newInstance({label:"hardwareSelectorDepth"}),t.depthTexture.create(o,{width:n.getCanvas().width,height:n.getCanvas().height,format:"depth32float",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});const a=t.depthTexture.createView("hardwareSelectDepthTexture");t.selectionRenderEncoder.setDepthTextureView(a)}t.selectionRenderEncoder.attachTextureViews(),r.setRenderEncoder(t.selectionRenderEncoder),e.setCurrentOperation("cameraPass"),r.traverse(e),e.setCurrentOperation("opaquePass"),r.traverse(e)},e.createRenderEncoder=()=>{t.selectionRenderEncoder=Cb.newInstance({label:"HardwareSelectionPass"}),t.selectionRenderEncoder.setPipelineHash("sel"),t.selectionRenderEncoder.setReplaceShaderCodeFunction((e=>{const t=e.getShaderDescription("fragment");t.addOutput("vec4","outColor");let n=t.getCode();n=Jp.substitute(n,"//VTK::RenderEncoder::Impl",["output.outColor = vec4(mapperUBO.PropID, compositeID, 0u, 0u);"]).result,t.setCode(n)})),t.selectionRenderEncoder.getDescription().colorAttachments[0].clearValue=[0,0,0,0],t.selectionRenderEncoder.setPipelineSettings({primitive:{cullMode:"none"},depthStencil:{depthWriteEnabled:!0,depthCompare:"greater",format:"depth32float"},fragment:{targets:[{format:"rgba32uint",blend:void 0}]}})}}const gy={selectionRenderEncoder:null,colorTexture:null,depthTexture:null};function my(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gy,n),cv.extend(e,t,n),Wt.get(e,t,["colorTexture","depthTexture"]),fy(e,t)}var hy={newInstance:Wt.newInstance(my,"vtkWebGPUHardwareSelectionPass"),extend:my};const{SelectionContent:vy,SelectionField:by}=Ev,{FieldAssociations:yy}=Ys,{vtkErrorMacro:Ty}=Wt;function xy(e){return`${e.propID} ${e.compositeID}`}function Sy(e,t,n,r){const o=4*((n.height-t-1)*n.colorBufferWidth+e)+r;return n.colorValues[o]}function Cy(e,t,n,r){const o=n<0?0:n;if(0===o){if(r[0]=t[0],r[1]=t[1],t[0]<0||t[0]>=e.width||t[1]<0||t[1]>=e.height)return null;const n=Sy(t[0],t[1],e,0);if(n<=0)return null;const o={};o.propID=n;let a=Sy(t[0],t[1],e,1);if((a<0||a>16777215)&&(a=0),o.compositeID=a,e.captureZValues){const n=(e.height-t[1]-1)*e.zbufferBufferWidth+t[0];o.zValue=e.depthValues[n],o.zValue=e.webGPURenderer.convertToOpenGLDepth(o.zValue),o.displayPosition=t}return o}const a=[t[0],t[1]],i=[0,0];let s=Cy(e,t,0,r);if(s)return s;for(let t=1;tt?a[1]-t:0;n<=a[1]+t;++n){if(i[1]=n,a[0]>=t&&(i[0]=a[0]-t,s=Cy(e,i,0,r),s))return s;if(i[0]=a[0]+t,s=Cy(e,i,0,r),s)return s}for(let n=a[0]>=t?a[0]-(t-1):0;n<=a[0]+(t-1);++n){if(i[0]=n,a[1]>=t&&(i[1]=a[1]-t,s=Cy(e,i,0,r),s))return s;if(i[1]=a[1]+t,s=Cy(e,i,0,r),s)return s}}return r[0]=t[0],r[1]=t[1],null}function Ay(e,t){t.classHierarchy.push("vtkWebGPUHardwareSelector"),e.endSelection=()=>{t.WebGPURenderer.setSelector(null)},e.getSourceDataAsync=async e=>{if(!e||!t._WebGPURenderWindow)return Ty("Renderer and view must be set before calling Select."),!1;t._WebGPURenderWindow.getRenderable().preRender(),t._WebGPURenderWindow.getInitialized()||(t._WebGPURenderWindow.initialize(),await new Promise((e=>{t._WebGPURenderWindow.onInitialized(e)})));const n=t._WebGPURenderWindow.getViewNodeFor(e);if(!n)return!1;const r=n.getSuppressClear();n.setSuppressClear(!0),t._selectionPass.traverse(t._WebGPURenderWindow,n),n.setSuppressClear(r);const o=t._WebGPURenderWindow.getDevice(),a=t._selectionPass.getColorTexture(),i=t._selectionPass.getDepthTexture(),s={area:[0,0,a.getWidth()-1,a.getHeight()-1],captureZValues:t.captureZValues,fieldAssociation:t.fieldAssociation,renderer:e,webGPURenderer:n,webGPURenderWindow:t._WebGPURenderWindow,width:a.getWidth(),height:a.getHeight()};s.colorBufferWidth=16*Math.floor((s.width+15)/16),s.colorBufferSizeInBytes=s.colorBufferWidth*s.height*4*4;const l=Nf.newInstance({label:"hardwareSelectColorBuffer"});l.setDevice(o),l.create(s.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const c=t._WebGPURenderWindow.getCommandEncoder();let u;c.copyTextureToBuffer({texture:a.getHandle()},{buffer:l.getHandle(),bytesPerRow:16*s.colorBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1}),t.captureZValues&&(s.zbufferBufferWidth=64*Math.floor((s.width+63)/64),u=Nf.newInstance({label:"hardwareSelectDepthBuffer"}),u.setDevice(o),s.zbufferSizeInBytes=s.height*s.zbufferBufferWidth*4,u.create(s.zbufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST),c.copyTextureToBuffer({texture:i.getHandle(),aspect:"depth-only"},{buffer:u.getHandle(),bytesPerRow:4*s.zbufferBufferWidth,rowsPerImage:s.height},{width:s.width,height:s.height,depthOrArrayLayers:1})),o.submitCommandEncoder(c);const d=l.mapAsync(GPUMapMode.READ);if(t.captureZValues){const e=u.mapAsync(GPUMapMode.READ);await Promise.all([d,e]),s.depthValues=new Float32Array(u.getMappedRange().slice()),u.unmap()}else await d;return s.colorValues=new Uint32Array(l.getMappedRange().slice()),l.unmap(),s.generateSelection=(e,t,n,r)=>function(e,t,n,r,o){const a=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(o),c=new Map,u=[0,0];for(let t=i;t<=l;t++)for(let n=a;n<=s;n++){const r=Cy(e,[n,t],0,u);if(r){const t=xy(r);if(c.has(t)){const n=c.get(t);n.pixelCount++,e.captureZValues&&r.zValue{const i=Ev.newInstance();switch(i.setContentType(vy.INDICES),e){case yy.FIELD_ASSOCIATION_CELLS:i.setFieldType(by.CELL);break;case yy.FIELD_ASSOCIATION_POINTS:i.setFieldType(by.POINT);break;default:Ty("Unknown field association")}i.getProperties().propID=t.info.propID;const s=n.webGPURenderer.getPropFromID(t.info.propID);i.getProperties().prop=s.getRenderable(),i.getProperties().compositeID=t.info.compositeID,i.getProperties().pixelCount=t.pixelCount,n.captureZValues&&(i.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],i.getProperties().worldPosition=n.webGPURenderWindow.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,n.renderer)),i.setSelectionList(t.attributeIDs),r[o]=i,o++})),r}(e.fieldAssociation,c,e)}(s,e,t,n,r),s}}const wy={};function Py(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wy,n),wv.extend(e,t,n),t._selectionPass=hy.newInstance(),Wt.setGet(e,t,["_WebGPURenderWindow"]),Wt.moveToProtected(e,t,["WebGPURenderWindow"]),Ay(e,t)}var Iy={newInstance:Wt.newInstance(Py,"vtkWebGPUHardwareSelector"),extend:Py};const{vtkErrorMacro:Oy}=Wt,Ey={position:"absolute",top:0,left:0,width:"100%",height:"100%"};function My(e,t){t.classHierarchy.push("vtkWebGPURenderWindow"),e.getViewNodeFactory=()=>t.myFactory;const n=[0,0];e.onModified((function(){t.renderable&&(t.size[0]===n[0]&&t.size[1]===n[1]||(n[0]=t.size[0],n[1]=t.size[1],t.canvas.setAttribute("width",t.size[0]),t.canvas.setAttribute("height",t.size[1]),e.recreateSwapChain())),t.viewStream&&t.viewStream.setSize(t.size[0],t.size[1]),t.canvas.style.display=t.useOffScreen?"none":"block",t.el&&(t.el.style.cursor=t.cursorVisibility?t.cursor:"none"),t.containerSize=null})),e.recreateSwapChain=()=>{t.context&&(t.context.unconfigure(),t.presentationFormat=navigator.gpu.getPreferredCanvasFormat(t.adapter),t.context.configure({device:t.device.getHandle(),format:t.presentationFormat,alphaMode:"premultiplied",usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_DST,width:t.size[0],height:t.size[1]}),t._configured=!0)},e.getCurrentTexture=()=>t.context.getCurrentTexture(),e.buildPass=n=>{if(n){if(!t.renderable)return;e.prepareNodes(),e.addMissingNodes(t.renderable.getRenderersByReference()),e.removeUnusedNodes(),e.initialize()}else t.initialized&&(t._configured||e.recreateSwapChain(),t.commandEncoder=t.device.createCommandEncoder())},e.initialize=()=>{if(!t.initializing){if(t.initializing=!0,!navigator.gpu)return void Oy("WebGPU is not enabled.");e.create3DContextAsync().then((()=>{t.initialized=!0,t.deleted||e.invokeInitialized()}))}},e.setContainer=n=>{t.el&&t.el!==n&&(t.canvas.parentNode!==t.el&&Oy("Error: canvas parent node does not match container"),t.el.removeChild(t.canvas),t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)),t.el!==n&&(t.el=n,t.el&&(t.el.appendChild(t.canvas),t.useBackgroundImage&&t.el.appendChild(t.bgImage)),e.modified())},e.getContainer=()=>t.el,e.getContainerSize=()=>{if(!t.containerSize&&t.el){const{width:e,height:n}=t.el.getBoundingClientRect();t.containerSize=[e,n]}return t.containerSize||t.size},e.getFramebufferSize=()=>t.size,e.create3DContextAsync=async()=>{t.adapter=await navigator.gpu.requestAdapter({powerPreference:"high-performance"}),t.deleted||(t.device=py.newInstance(),t.device.initialize(await t.adapter.requestDevice()),t.deleted?t.device=null:t.context=t.canvas.getContext("webgpu"))},e.releaseGraphicsResources=()=>{const n=cv.newInstance();n.setCurrentOperation("Release"),n.traverse(e,null),t.adapter=null,t.device=null,t.context=null,t.initialized=!1,t.initializing=!1},e.setBackgroundImage=e=>{t.bgImage.src=e.src},e.setUseBackgroundImage=e=>{t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",{resetCamera:r=!1,size:o=null,scale:a=1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t.deleted)return null;t.imageFormat=n;const i=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:o||1!==a?o||t.size.map((e=>e*a)):null},new Promise(((n,o)=>{const a=e.onImageReady((o=>{if(null===t._screenshot.size)t.notifyStartCaptureImage=i,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach((e=>{let{restoreParamsFn:t,arg:n}=e;return t(n)})),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(o);else{const n=document.createElement("img");if(n.style=Ey,n.src=o,t._screenshot.placeHolder=t.el.appendChild(n),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),r){const e=!0!==r;t._screenshot.cameras=t.renderable.getRenderers().map((t=>{const n=t.getActiveCamera(),o=n.get("focalPoint","position","parallelScale");return{resetCameraArgs:e?{renderer:t}:void 0,resetCameraFn:e?r:t.resetCamera,restoreParamsFn:n.set,arg:JSON.parse(JSON.stringify(o))}})),t._screenshot.cameras.forEach((e=>{let{resetCameraFn:t,resetCameraArgs:n}=e;return t(n)}))}e.traverseAllPasses()}}))}))},e.traverseAllPasses=()=>{if(!t.deleted)if(t.initialized){if(t.renderPasses)for(let n=0;n{!async function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.imageFormat;const r=document.createElement("canvas"),o=r.getContext("2d");r.width=t.canvas.width,r.height=t.canvas.height;const a=await e.getPixelsAsync(),i=new ImageData(a.colorValues,a.width,a.height);o.putImageData(i,0,0);const s=t.canvas.getBoundingClientRect(),l=t.renderable;l.getRenderers().forEach((e=>{e.getViewProps().forEach((e=>{if(e.getContainer){const t=e.getContainer().getElementsByTagName("canvas");for(let e=0;e{t.unsubscribe(),e.traverseAllPasses()}))}},e.setViewStream=n=>t.viewStream!==n&&(t.subscription&&(t.subscription.unsubscribe(),t.subscription=null),t.viewStream=n,t.viewStream&&(t.renderable.getRenderers()[0].getBackgroundByReference()[3]=0,e.setUseBackgroundImage(!0),t.subscription=t.viewStream.onImageReady((t=>e.setBackgroundImage(t.image))),t.viewStream.setSize(t.size[0],t.size[1]),t.viewStream.invalidateCache(),t.viewStream.render(),e.modified()),!0),e.getUniquePropID=()=>t.nextPropID++,e.getPropFromID=e=>{for(let n=0;n{const e=t.device,n=t.renderPasses[0].getOpaquePass().getColorTexture(),r={width:n.getWidth(),height:n.getHeight()};r.colorBufferWidth=32*Math.floor((r.width+31)/32),r.colorBufferSizeInBytes=r.colorBufferWidth*r.height*8;const o=Nf.newInstance();o.setDevice(e),o.create(r.colorBufferSizeInBytes,GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST);const a=t.device.createCommandEncoder();a.copyTextureToBuffer({texture:n.getHandle()},{buffer:o.getHandle(),bytesPerRow:8*r.colorBufferWidth,rowsPerImage:r.height},{width:r.width,height:r.height,depthOrArrayLayers:1}),e.submitCommandEncoder(a);const i=o.mapAsync(GPUMapMode.READ);await i,r.colorValues=new Uint16Array(o.getMappedRange().slice()),o.unmap();const s=new Uint8ClampedArray(r.height*r.width*4);for(let e=0;e{const t=Iy.newInstance();return t.setWebGPURenderWindow(e),t};const r=e.setSize;e.setSize=(t,n)=>{const o=r(t,n);return o&&e.invokeWindowResizeEvent({width:t,height:n}),o},e.delete=Wt.chain(e.delete,e.setViewStream)}const Ry={initialized:!1,context:null,adapter:null,device:null,canvas:null,cursorVisibility:!0,cursor:"pointer",containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1,nextPropID:1,xrSupported:!1,presentationFormat:null};const Dy=Wt.newInstance((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ry,n),t.canvas=document.createElement("canvas"),t.canvas.style.width="100%",t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",sb.extend(e,t,n),t.myFactory=Fp.newInstance(),t.renderPasses[0]=ny.newInstance(),t.selector||(t.selector=Iy.newInstance(),t.selector.setWebGPURenderWindow(e)),Wt.event(e,t,"imageReady"),Wt.event(e,t,"initialized"),Wt.get(e,t,["commandEncoder","device","presentationFormat","useBackgroundImage","xrSupported"]),Wt.setGet(e,t,["initialized","context","canvas","device","renderPasses","notifyStartCaptureImage","cursor","useOffScreen"]),Wt.setGetArray(e,t,["size"],2),Wt.event(e,t,"windowResizeEvent"),My(e,t)}),"vtkWebGPURenderWindow");dh("WebGPU",Dy),Lp("vtkRenderWindow",Dy);const By=tv(),Ly={margin:"0",padding:"0",position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"},Vy={position:"absolute",left:"25px",top:"25px",backgroundColor:"white",borderRadius:"5px",listStyle:"none",padding:"5px 10px",margin:"0",display:"block",border:"solid 1px black",maxWidth:"calc(100% - 70px)",maxHeight:"calc(100% - 60px)",overflow:"auto"};function _y(e,t){Object.keys(t).forEach((n=>{e.style[n]=t[n]}))}function Ny(e,t){t.classHierarchy.push("vtkFullScreenRenderWindow");const n=document.querySelector("body");function r(t){"c"===String.fromCharCode(t.charCode)&&e.toggleControllerVisibility()}t.rootContainer||(t.rootContainer=n),t.container||(t.container=document.createElement("div"),_y(t.container,t.containerStyle||Ly),t.rootContainer.appendChild(t.container)),t.rootContainer===n&&(document.documentElement.style.height="100%",n.style.height="100%",n.style.padding="0",n.style.margin="0"),t.renderWindow=hh.newInstance(),t.renderer=ch.newInstance(),t.renderWindow.addRenderer(t.renderer),t.apiSpecificRenderWindow=t.renderWindow.newAPISpecificView(By.viewAPI??t.defaultViewAPI),t.apiSpecificRenderWindow.setContainer(t.container),t.renderWindow.addView(t.apiSpecificRenderWindow),t.interactor=Lh.newInstance(),t.interactor.setInteractorStyle(Zh.newInstance()),t.interactor.setView(t.apiSpecificRenderWindow),t.interactor.initialize(),t.interactor.bindEvents(t.container),e.setBackground=t.renderer.setBackground,e.removeController=()=>{const e=t.controlContainer;e&&e.parentNode.removeChild(e)},e.setControllerVisibility=e=>{t.controllerVisibility=e,t.controlContainer&&(t.controlContainer.style.display=e?"block":"none")},e.toggleControllerVisibility=()=>{e.setControllerVisibility(!t.controllerVisibility)},e.addController=n=>{t.controlContainer=document.createElement("div"),_y(t.controlContainer,t.controlPanelStyle||Vy),t.rootContainer.appendChild(t.controlContainer),t.controlContainer.innerHTML=n,e.setControllerVisibility(t.controllerVisibility),t.rootContainer.addEventListener("keypress",r)},e.setBackground(...t.background),e.addRepresentation=e=>{e.getActors().forEach((e=>{t.renderer.addActor(e)}))},e.removeRepresentation=e=>{e.getActors().forEach((e=>t.renderer.removeActor(e)))},e.delete=Wt.chain(e.setContainer,t.apiSpecificRenderWindow.delete,(()=>{t.rootContainer?.removeEventListener("keypress",r),window.removeEventListener("resize",e.resize)}),e.delete),e.resize=()=>{const e=t.container.getBoundingClientRect(),n=window.devicePixelRatio||1;t.apiSpecificRenderWindow.setSize(Math.floor(e.width*n),Math.floor(e.height*n)),t.resizeCallback&&t.resizeCallback(e),t.renderWindow.render()},e.setResizeCallback=n=>{t.resizeCallback=n,e.resize()},t.listenWindowResize&&window.addEventListener("resize",e.resize),e.resize()}const Fy={background:[.32,.34,.43],containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0};function ky(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fy,n),Wt.obj(e,t),Wt.get(e,t,["renderWindow","renderer","apiSpecificRenderWindow","interactor","rootContainer","container","controlContainer"]),Ny(e,t)}var Uy={newInstance:Wt.newInstance(ky),extend:ky};const Gy=[];var zy=function(e){return new Promise(((t,n)=>{if(-1===Gy.indexOf(e)){Gy.push(e);const r=document.createElement("script");r.type="text/javascript",r.src=e,r.onload=t,r.onerror=n,document.body.appendChild(r)}else t(!1)}))};function Wy(e){return new TextDecoder("latin1").decode(e)}var Hy={arrayBufferToString:Wy,extractBinary:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const r=Wy(e),o=t.exec(r);if(!o)return{text:r};const a=o.index+o[0].length,i=r.substring(0,a);let s=null;const l=n?n.exec(r):null;return s=l?{text:i+r.substr(l.index),binaryBuffer:e.slice(a,l.index)}:{text:i,binaryBuffer:e.slice(a)},s}};const{vtkErrorMacro:jy}=Wt;let $y={};function Ky(e,t){const n=new $y.Decoder,r=n.GetAttribute(e,t),o=r.num_components(),a=e.num_points(),i=new $y.DracoFloat32Array;n.GetAttributeFloatForAllPoints(e,r,i);let s=a*o;const l=new Float32Array(s);for(;s--;)l[s]=i.GetValue(s);return l}function qy(e,t){function n(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{compression:o,progressCallback:a}=t;return r.binary?t.dataAccessHelper.fetchBinary(n,{compression:o,progressCallback:a}):t.dataAccessHelper.fetchText(e,n,{compression:o,progressCallback:a})}t.classHierarchy.push("vtkDracoReader"),t.dataAccessHelper||(t.dataAccessHelper=Vm("http")),e.setUrl=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{binary:!0};t.url=n;const o=n.split("/");return o.pop(),t.baseURL=o.join("/"),t.compression=r.compression,e.loadData({progressCallback:r.progressCallback,binary:!!r.binary})},e.loadData=function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=n(t.url,r);return o.then(e.parse),o},e.parse=t=>{e.parseAsArrayBuffer(t)},e.parseAsArrayBuffer=n=>{if(!n)return;if(n===t.parseData)return;e.modified(),t.parseData=n;const r=function(e){const t=new Int8Array(e),n=new $y.Decoder,r=new $y.DecoderBuffer;let o;if(r.Init(t,t.length),n.GetEncodedGeometryType(r)===$y.TRIANGULAR_MESH){o=new $y.Mesh;const e=n.DecodeBufferToMesh(r,o);e.ok()||jy(`Could not decode Draco file: ${e.error_msg()}`)}else jy("Wrong geometry type, expected mesh, got point cloud.");return $y.destroy(r),$y.destroy(n),o}(n),o=function(e){const t=new $y.Decoder,n=t.GetAttributeId(e,$y.POSITION);if(-1===n)return console.error("No position attribute found in the decoded model."),$y.destroy(t),$y.destroy(e),null;const r=Ky(e,n);let o=e.num_faces();const a=new Uint32Array(4*o),i=new $y.DracoInt32Array;for(;o--;){t.GetFaceFromMesh(e,o,i);const n=4*o;a[n]=3,a[n+1]=i.GetValue(0),a[n+2]=i.GetValue(1),a[n+3]=i.GetValue(2)}const s=ac.newInstance({values:a}),l=uu.newInstance({polys:s});l.getPoints().setData(r);const c=l.getPointData();if(-1!==t.GetAttributeId(e,$y.NORMAL)){const t=Ky(e,$y.NORMAL),n=ws.newInstance({numberOfComponents:3,values:t,name:"Normals"});c.setNormals(n)}const u=t.GetAttributeId(e,$y.TEX_COORD);if(-1!==u){const t=Ky(e,u),n=ws.newInstance({numberOfComponents:2,values:t,name:"TCoords"});c.setTCoords(n)}const d=t.GetAttributeId(e,$y.COLOR);if(-1!==d){const t=Ky(e,d),n=ws.newInstance({numberOfComponents:3,values:t,name:"Scalars"});c.setScalars(n)}return $y.destroy(t),l}(r);$y.destroy(r),t.output[0]=o},e.requestData=()=>{e.parse(t.parseData)}}const Xy={};function Yy(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xy,n),Wt.obj(e,t),Wt.get(e,t,["url","baseURL"]),Wt.setGet(e,t,["dataAccessHelper"]),Wt.algo(e,t,0,1),qy(e,t),t.compression||(t.compression=null),t.progressCallback||(t.progressCallback=null)}var Qy={extend:Yy,newInstance:Wt.newInstance(Yy,"vtkDracoReader"),setDracoDecoder:function(e){$y=e({})},setWasmBinary:function(e,t){const n={};return new Promise(((r,o)=>{n.wasmBinaryFile=t;const a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=()=>{200===a.status?(n.wasmBinary=a.response,Promise.resolve(window.DracoDecoderModule(n)).then((e=>{$y=e,r(!0)}),o)):o(Error(`WASM binary could not be loaded: ${a.statusText}`))},a.send(null)}))},getDracoDecoder:function(){return $y}};let Zy;function Jy(e,t){t.classHierarchy.push("vtkAbstractTransform","vtkHomogeneousTransform","vtkTransform"),e.transformPoint=(e,n)=>(In(n,e,t.matrix),n),e.transformPoints=(e,n)=>{const r=new Float64Array(3),o=new Float64Array(3);for(let a=0;a{e.setPreMultiplyFlag(!0)},e.postMultiply=()=>{e.setPreMultiplyFlag(!1)},e.transformMatrix=(e,n)=>(t.preMultiplyFlag?v(n,t.matrix,e):v(n,e,t.matrix),n),e.transformMatrices=(e,n)=>{const r=new Float64Array(16),o=new Float64Array(16),a=t.preMultiplyFlag?()=>v(o,t.matrix,r):()=>v(o,r,t.matrix);for(let t=0;tZy({matrix:Ea.invertMatrix(Array.from(t.matrix),[],4),preMultiplyFlag:t.preMultiplyFlag})}const eT={preMultiplyFlag:!1,matrix:[...co]};function tT(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,eT,n),Wt.obj(e,t),Wt.setGet(e,t,["preMultiplyFlag"]),Wt.setGetArray(e,t,["matrix"],16),Jy(e,t)}Zy=Wt.newInstance(tT,"vtkTransform");var nT={newInstance:Zy,extend:tT};const rT="glTF",oT={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},aT={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},iT={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},sT=9987,lT=10497,cT={magFilter:9728,minFilter:sT,wrapS:lT,wrapT:lT},uT={NORMAL:"normal",POSITION:"position",TEXCOORD_0:"texcoord0",TEXCOORD_1:"texcoord1",WEIGHTS_0:"weight",JOINTS_0:"joint",COLOR_0:"color",TANGENT:"tangent"},dT="OPAQUE";var pT,fT,gT=n(57),mT=n.n(gT),hT=(pT=function(){!function(){var e={exports:{}},t=function(){function e(e,t){for(var n=0;n1?t-1:0),r=1;r1?t-1:0),o=1;o1?n-1:0),i=1;i3&&void 0!==arguments[3]?arguments[3]:[];n([0,e,t,r],o)},h=function(e,t,r){if(!t)throw new Error("eventName is required");if("string"!=typeof t)throw new Error("eventName should be string");n([1,e,t,r])};return self.addEventListener("message",(function(e){var t=e.data;Array.isArray(t)?f.apply(void 0,s(t)):t&&t.eventName&&r.emitLocally.apply(r,[t.eventName].concat(s(t.args)))})),r},e.exports.TransferableResponse=p,(0,e.exports)((async e=>{let{imageBuffer:t,mimeType:n,channel:r}=e;const o={r:0,g:1,b:2},a=new Blob([t],{type:n}),i=await createImageBitmap(a),s=new OffscreenCanvas(i.width,i.height).getContext("2d");s.drawImage(i,0,0,i.width,i.height);const l=s.getImageData(0,0,i.width,i.height);if(r){const e=o[r];for(let t=0;t2&&void 0!==arguments[2]&&arguments[2];if(e.cache||(e.cache={}),!n&&e.cache[t])return e.cache[t];const r=new(mT())(new hT);return e.bufferView?r.postMessage({imageBuffer:e.bufferView.data,mimeType:e.mimeType,channel:t}).then((n=>(e.cache[t]=n.bitmap,n.bitmap))).finally((()=>{r.terminate()})):e.uri?(vT("Falling back to image uri",e.uri),new Promise(((n,r)=>{const o=new Image;o.crossOrigin="Anonymous",o.onload=()=>{e.cache[t]=o,n(o)},o.onerror=r,o.src=e.uri}))):null}function xT(e,t,n){const r=mu.newInstance();if(t)if("wrapS"in t&&"wrapT"in t||"minFilter"in t&&"magFilter"in t){33071===t.wrapS||33071===t.wrapT?(r.setRepeat(!1),r.setEdgeClamp(!0)):t.wrapS===lT||t.wrapT===lT?(r.setRepeat(!0),r.setEdgeClamp(!1)):vT("Mirrored texture wrapping is not supported!");const e=[9729,9985,9986,sT];(e.includes(t.minFilter)||e.includes(t.magFilter))&&r.setInterpolate(!0)}else r.MipmapOn(),r.setInterpolate(!0),r.setEdgeClamp(!0);return r.setJsImageData(e),r}const{vtkDebugMacro:ST,vtkWarningMacro:CT}=Wt;class AT{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{json:n,baseUri:r=""}=e;this.glTF=e,this.options=t,this.baseUri=r,this.json=n,this.extensions=n.extensions||{},this.extensionsUsed=n.extensionsUsed||[]}async parse(){const e=this.json.buffers||[];this.buffers=new Array(e.length).fill(null);const t=this.json.images||[];return this.images=new Array(t.length).fill({}),await this.loadBuffers(),await this.loadImages(),this.resolveTree(),this.glTF.json}resolveTree(){this.json.scenes=this.json.scenes?.map(((e,t)=>this.resolveScene(e,t))),this.json.cameras=this.json.cameras?.map(((e,t)=>this.resolveCamera(e,t))),this.json.bufferViews=this.json.bufferViews?.map(((e,t)=>this.resolveBufferView(e,t))),this.json.images=this.json.images?.map(((e,t)=>this.resolveImage(e,t))),this.json.samplers=this.json.samplers?.map(((e,t)=>this.resolveSampler(e,t))),this.json.textures=this.json.textures?.map(((e,t)=>this.resolveTexture(e,t))),this.json.accessors=this.json.accessors?.map(((e,t)=>this.resolveAccessor(e,t))),this.json.materials=this.json.materials?.map(((e,t)=>this.resolveMaterial(e,t))),this.json.meshes=this.json.meshes?.map(((e,t)=>this.resolveMesh(e,t))),this.json.nodes=this.json.nodes?.map(((e,t)=>this.resolveNode(e,t))),this.json.skins=this.json.skins?.map(((e,t)=>this.resolveSkin(e,t))),this.json.animations=this.json.animations?.map(((e,t)=>this.resolveAnimation(e,t)))}get(e,t){if("object"==typeof t)return t;const n=this.json[e]&&this.json[e][t];return n||CT(`glTF file error: Could not find ${e}[${t}]`),n}resolveScene(e,t){return e.id=e.id||`scene-${t}`,e.nodes=(e.nodes||[]).map((e=>this.get("nodes",e))),e}resolveNode(e,t){return e.id=e.id||`node-${t}`,e.children&&(e.children=e.children.map((e=>this.get("nodes",e)))),void 0!==e.mesh?e.mesh=this.get("meshes",e.mesh):void 0!==e.meshes&&e.meshes.length&&(e.mesh=e.meshes.reduce(((e,t)=>{const n=this.get("meshes",t);return e.id=n.id,e.primitives=e.primitives.concat(n.primitives),e}),{primitives:[]})),void 0!==e.camera&&(e.camera=this.get("cameras",e.camera)),void 0!==e.skin&&(e.skin=this.get("skins",e.skin)),e.extensions?.KHR_lights_punctual&&(e.extensions.KHR_lights_punctual.light=this.extensions?.KHR_lights_punctual.lights[e.extensions.KHR_lights_punctual.light]),e}resolveSkin(e,t){return e.id=e.id||`skin-${t}`,e.inverseBindMatrices=this.get("accessors",e.inverseBindMatrices),e}resolveMesh(e,t){return e.id=e.id||`mesh-${t}`,e.primitives&&(e.primitives=e.primitives.map(((e,t)=>{const n=e.attributes;e.name=`submesh-${t}`,e.attributes={};for(const t in n){const r=uT[t];e.attributes[r]=this.get("accessors",n[t])}if(void 0!==e.indices&&(e.indices=this.get("accessors",e.indices)),void 0!==e.material&&(e.material=this.get("materials",e.material)),void 0===e.mode&&(e.mode=4),e.extensions?.KHR_draco_mesh_compression){ST("Using Draco mesh compression");const t=this.get("bufferViews",e.extensions.KHR_draco_mesh_compression.bufferView);e.extensions.KHR_draco_mesh_compression.bufferView=t.data}return e}))),e}resolveMaterial(e,t){if(e.id=e.id||`material-${t}`,void 0===e.alphaMode&&(e.alphaMode=dT),void 0===e.doubleSided&&(e.doubleSided=!1),void 0===e.alphaCutoff&&(e.alphaCutoff=.5),e.normalTexture&&(e.normalTexture={...e.normalTexture},e.normalTexture.texture=this.get("textures",e.normalTexture.index)),e.occlusionTexture&&(e.occlusionTexture={...e.occlusionTexture},e.occlusionTexture.texture=this.get("textures",e.occlusionTexture.index)),e.emissiveTexture&&(e.emissiveTexture={...e.emissiveTexture},e.emissiveTexture.texture=this.get("textures",e.emissiveTexture.index)),e.emissiveFactor?e.emissiveFactor=e.emissiveFactor[0]:e.emissiveFactor=e.emissiveTexture?1:0,e.pbrMetallicRoughness){e.pbrMetallicRoughness={...e.pbrMetallicRoughness};const t=e.pbrMetallicRoughness;t.baseColorTexture&&(t.baseColorTexture={...t.baseColorTexture},t.baseColorTexture.texture=this.get("textures",t.baseColorTexture.index)),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture={...t.metallicRoughnessTexture},t.metallicRoughnessTexture.texture=this.get("textures",t.metallicRoughnessTexture.index))}else e.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};return e}getValueFromInterleavedBuffer(e,t,n,r,o){const a=new Uint8Array(o*r);for(let i=0;i{const n=e.extensions[t];switch(t){case"KHR_texture_basisu":case"EXT_texture_webp":case"EXT_texture_avif":e.source=this.get("images",n.source);break;default:CT(`Unhandled extension: ${t}`)}})),e}resolveSampler(e,t){e.id=e.id||`sampler-${t}`,Object.hasOwn(e,"wrapS")||(e.wrapS=lT),Object.hasOwn(e,"wrapT")||(e.wrapT=lT),Object.hasOwn(e,"minFilter")||(e.minFilter=sT),Object.hasOwn(e,"magFilter")||(e.magFilter=9728),e.parameters={};for(const t in e){const n={magFilter:10240,minFilter:10241,wrapS:10242,wrapT:10243}[t];void 0!==n&&(e.parameters[n]=e[t])}return e}resolveImage(e,t){return e.id=e.id||`image-${t}`,void 0!==e.bufferView&&(e.bufferView=this.get("bufferViews",e.bufferView)),e}resolveBufferView(e,t){e.id=e.id||`bufferView-${t}`;const n=e.buffer;e.buffer=this.buffers[n];const r=this.buffers[n].arrayBuffer;let o=this.buffers[n].byteOffset||0;return"byteOffset"in e&&(o+=e.byteOffset),e.data=new Uint8Array(r,o,e.byteLength),e}resolveCamera(e,t){return e.id=e.id||`camera-${t}`,e}resolveAnimation(e,t){return e.id=e.id||`animation-${t}`,e.samplers.map((e=>(e.input=this.get("accessors",e.input).value,e.output=this.get("accessors",e.output).value,e))),e}loadBuffers(){const e=this.json.buffers.map(((e,t)=>this.loadBuffer(e,t).then((()=>{delete e.uri}))));return Promise.all(e)}async loadBuffer(e,t){let n=e;if(e.uri){ST("Loading uri",e.uri);const t=yT(e.uri,this.options.baseUri),r=await fetch(t);n=await r.arrayBuffer()}else this.glTF.glbBuffers&&(n=this.glTF.glbBuffers[t]);this.buffers[t]={arrayBuffer:n,byteOffset:0,byteLength:n.byteLength}}loadImages(){const e=this.json.images||[],t=[];return new Promise(((n,r)=>{for(let n=0;n{ST("Texture loaded ",e[n])}))));Promise.all(t).then((()=>n(this.images)))}))}async loadImage(e,t){let n,r;if(e.uri){ST("Loading texture",e.uri);const t=yT(e.uri,this.options.baseUri),r=await fetch(t);n=await r.arrayBuffer(),e.uri=t,e.bufferView={data:n}}else if(e.bufferView){const t=this.get("bufferViews",e.bufferView);r=this.get("buffers",t.buffer),this.glTF.glbBuffers&&(r=this.glTF.glbBuffers[t.buffer],n=r.slice(t.byteOffset,t.byteOffset+t.byteLength)),e.bufferView={data:n}}}}const{vtkWarningMacro:wT}=Wt;function PT(e,t,n){const{light:r}=e,{color:o,intensity:a,range:i,spot:s,type:l}=r,c=Ym.newInstance({color:o||[1,1,1],intensity:a||1});switch(c.setTransformMatrix(t),i>0&&c.setAttenuationValues(1,0,1/(i*i*.01)),l){case"directional":c.setPositional(!1);break;case"point":c.setPositional(!0),c.setConeAngle(90);break;case"spot":c.setPositional(!0),c.setConeAngle(xo(s.outerConeAngle));break;default:wT(`Unsupported light type: ${l}`)}n.lights.set(r.name,c)}const{vtkWarningMacro:IT,vtkDebugMacro:OT}=Wt;async function ET(e,t,n){let r=1,o=1;const a=t.emissiveFactor,i=n.getProperty(),s=t.pbrMetallicRoughness;if(void 0!==s){!s?.metallicFactor||s?.metallicFactor<=0||s?.metallicFactor>=1?IT("Invalid material.pbrMetallicRoughness.metallicFactor value. Using default value instead."):r=s.metallicFactor,!s?.roughnessFactor||s?.roughnessFactor<=0||s?.roughnessFactor>=1?IT("Invalid material.pbrMetallicRoughness.roughnessFactor value. Using default value instead."):o=s.roughnessFactor;const l=s.baseColorFactor;if(void 0!==l&&(i.setDiffuseColor(l[0],l[1],l[2]),i.setOpacity(l[3])),i.setMetallic(r),i.setRoughness(o),i.setEmission(a),s.baseColorTexture){s.baseColorTexture.extensions;const t=s.baseColorTexture.texture;void 0!==t.extensions&&Object.keys(t.extensions).forEach((e=>{IT(`Unhandled extension: ${e}`)}));const r=t.sampler,o=xT(await TT(t.source),r);e.renderer.getRenderWindow().getViews()[0].isA("vtkOpenGLRenderWindow")?n.addTexture(o):i.setDiffuseTexture(o)}if(s.metallicRoughnessTexture){s.metallicRoughnessTexture.extensions;const e=s.metallicRoughnessTexture.texture,t=e.sampler,n=xT(await TT(e.source,"b"),t);i.setMetallicTexture(n);const r=xT(await TT(e.source,"g"),t);i.setRoughnessTexture(r)}if(t.occlusionTexture){t.occlusionTexture.extensions;const e=t.occlusionTexture.texture,n=e.sampler,r=xT(await TT(e.source,"r"),n);i.setAmbientOcclusionTexture(r)}if(t.emissiveTexture){t.emissiveTexture.extensions;const e=t.emissiveTexture.texture,r=e.sampler,o=xT(await TT(e.source),r);i.setEmissionTexture(o),void 0!==t.emissiveTexture.texCoord&&n.getMapper().getInputData().getPointData().setActiveTCoords(`TEXCOORD_${t.emissiveTexture.texCoord}`)}if(t.normalTexture){t.normalTexture.extensions;const e=t.normalTexture.texture,n=e.sampler,r=xT(await TT(e.source),n);i.setNormalTexture(r),void 0!==t.normalTexture.scale&&i.setNormalStrength(t.normalTexture.scale)}}void 0!==t.extensions&&Object.keys(t.extensions).forEach((e=>{const n=t.extensions[e];switch(e){case"KHR_materials_unlit":!function(e,t){t.setLighting(!0)}(0,i);break;case"KHR_materials_ior":!function(e,t){t.setBaseIOR(e.ior)}(n,i);break;case"KHR_materials_specular":!function(e,t){t.setSpecular(e.specularFactor),t.setSpecularColor(e.specularColorFactor)}(n,i);break;default:IT(`Unhandled extension: ${e}`)}})),t.alphaMode!==dT&&n.setForceTranslucent(!0),i.setBackfaceCulling(!t.doubleSided)}async function MT(e,t,n){const r=cs.newInstance(),o=Zl.newInstance();if(o.setColorModeToDirectScalars(),r.setMapper(o),r.setUserMatrix(n),void 0!==t.mesh){const n=await async function(e){const t=e.primitives[0];if(!t||!t.attributes)return IT("Mesh has no position data, skipping"),null;const n=t.mode;if(t.extensions?.KHR_draco_mesh_compression)return async function(e){const t=Qy.newInstance();return t.parse(e.bufferView),t.getOutputData()}(t.extensions.KHR_draco_mesh_compression);const r=uu.newInstance(),o=ac.newInstance(),a=r.getPointData();if(Object.entries(t.attributes).forEach((async e=>{let[n,o]=e;switch(n){case uT.POSITION:{const e=t.attributes.position.value;r.getPoints().setData(e,t.attributes.position.component);break}case uT.NORMAL:{const e=t.attributes.normal.value;a.setNormals(ws.newInstance({name:"Normals",values:e,numberOfComponents:t.attributes.normal.components}));break}case uT.COLOR_0:{const e=t.attributes.color.value;a.setScalars(ws.newInstance({name:"Scalars",values:e,numberOfComponents:t.attributes.color.components}));break}case uT.TEXCOORD_0:{const e=t.attributes.texcoord0.value,n=ws.newInstance({name:"TEXCOORD_0",values:e,numberOfComponents:t.attributes.texcoord0.components});a.addArray(n),a.setActiveTCoords(n.getName());break}case uT.TEXCOORD_1:{const e=t.attributes.texcoord1.value,n=ws.newInstance({name:"TEXCOORD_1",values:e,numberOfComponents:t.attributes.texcoord1.components});a.addArray(n);break}case uT.TANGENT:{const e=t.attributes.tangent.value,n=ws.newInstance({name:"Tangents",values:e,numberOfComponents:t.attributes.tangent.components});a.addArray(n);break}default:IT(`Unhandled attribute: ${n}`)}})),void 0!==t.indices){const e=t.indices.value,r=e.length-2;switch(n){case 3:case 5:case 2:IT("GL_LINE_LOOP not implemented");break;default:o.resize(4*e.length/3);for(let t=0;t{const o=e[r];"KHR_materials_variants"===r?t.variantMappings.set(n.id,o.mappings):IT(`Unhandled extension: ${r}`)}))}(a.extensions,e,t)}else{const e=uu.newInstance();o.setInputData(e)}return r}function RT(e){return OT("Creating animation:",e),{name:e.name,channels:e.channels,samplers:e.samplers,getChannelByTargetNode(e){return this.channels.filter((t=>t.target.node===e))}}}function DT(e){const t=e.translation??Tn(),n=e.rotation??Di(),r=e.scale??xn(1,1,1);return void 0!==e.matrix?l(e.matrix):V(s(),n,t,r)}async function BT(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s();e.transform=DT(e);const o=v(s(),r,e.transform),a=await MT(t,e,o);a&&(a.setUserMatrix(o),n&&a.setParentProp(n),t.actors.set(e.id,a)),e.extensions?.KHR_lights_punctual&&PT(e.extensions.KHR_lights_punctual,e.transform,t),e.children&&Array.isArray(e.children)&&e.children.length>0&&await Promise.all(e.children.map((async n=>{const r=t.actors.get(e.id);await BT(n,t,r,o)})))}async function LT(e){e.animations=e.glTFTree.animations?.map(RT),Object.keys(e.glTFTree?.extensions||[]).forEach((t=>{const n=e.glTFTree.extensions[t];switch(t){case"KHR_materials_variants":!function(e,t){t.variants=e.variants.map((e=>e.name))}(n,e);break;case"KHR_draco_mesh_compression":break;default:IT(`Unhandled extension: ${t}`)}}));const t=e.sceneId??e.glTFTree.scene;e.glTFTree.scenes?.length&&e.glTFTree.scenes[t]?.nodes?await Promise.all(e.glTFTree.scenes[t].nodes.map((async t=>{t?await BT(t,e):IT("Node not found in glTF.nodes")}))):IT("No valid scenes found in the glTF data")}function VT(e,t){const n=new Uint32Array(t,e,2);return{start:e+8,length:n[0],type:n[1]}}const{vtkDebugMacro:_T,vtkWarningMacro:NT}=Wt;function FT(e,t){const n=e.target.path,r=e.target.node;return{...e,animate:function(o){!function(e){let t,o,a;switch(n){case"translation":r.setPosition(e[0],e[1],e[2]);break;case"rotation":a=function(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n*n+r*r+o*o+a*a;return i>0&&(i=1/Math.sqrt(i)),e[0]=n*i,e[1]=r*i,e[2]=o*i,e[3]=a*i,e}(Di(),e),t=new Float64Array(3),o=Li(t,a),r.rotateWXYZ(So(o),t[0],t[1],t[2]);break;case"scale":r.setScale(e[0],e[1],e[2]);break;default:NT(`Unsupported animation path: ${n}`)}}(t[e.sampler].evaluate(o,n))}}}function kT(e,t){const n=new Map,r=new Map;return{addAnimation:function(t){const r=function(e,t){return e.samplers=e.samplers.map((e=>function(e){let t=0;return{...e,evaluate:function(n,r){const[o,a,i,s]=function(n){let r=t;for(;r{const n=u-c;return(2*u-3*c+1)*e+(u-2*c+l)*p[t]+(-2*u+3*c)*f[t]+n*g[t]})):(2*u-3*c+1)*d+(u-2*c+l)*p+(-2*u+3*c)*f+(u-c)*g}(0,o,a,i,s,n);break;default:throw new Error(`Unknown interpolation method: ${e.interpolation}`)}return l}}}(e))),e.channels=e.channels.map((n=>(n.target.node=t.get(`node-${n.target.node}`),FT(n,e.samplers)))),{...e,update:function(t){e.channels.forEach((e=>e.animate(t)))}}}(t,e);n.set(t.id,r),_T(`Animation "${t.id}" added to mixer`)},play:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;n.has(e)?(r.set(e,{animation:n.get(e),weight:t,time:0}),_T(`Playing animation "${e}" with weight ${t}`)):NT(`Animation "${e}" not found in mixer`)},stop:function(e){r.delete(e)?NT(`Stopped animation "${e}"`):NT(`Animation "${e}" was not playing`)},stopAll:function(){r.clear(),NT("Stopped all animations")},update:function(e){const t=Array.from(r.values()).reduce(((e,t)=>{let{weight:n}=t;return e+n}),0);r.forEach(((n,o)=>{let{animation:a,weight:i,time:s}=n;const l=t>0?i/t:0,c=s+e;r.set(o,{animation:a,weight:i,time:c}),_T(`Updating animation "${o}" at time ${c.toFixed(3)} with normalized weight ${l.toFixed(3)}`),a.update(c,l)}))}}}const{vtkDebugMacro:UT,vtkErrorMacro:GT}=Wt;function zT(e,t){function n(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{compression:o,progressCallback:a}=t;return r.binary?t.dataAccessHelper.fetchBinary(n,{compression:o,progressCallback:a}):t.dataAccessHelper.fetchText(e,n,{compression:o,progressCallback:a})}t.classHierarchy.push("vtkGLTFImporter"),t.dataAccessHelper||(t.dataAccessHelper=Vm("http")),e.setUrl=function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{binary:!0};t.url=n;const o=n.split("/");return o.pop(),t.baseURL=o.join("/"),t.compression=r.compression,t.sceneId=r.sceneId?r.sceneId:0,e.loadData({progressCallback:r.progressCallback,binary:!!r.binary})},e.loadData=function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=n(t.url,r);return o.then(e.parse),o},e.parse=t=>{"string"==typeof t?e.parseAsText(t):e.parseAsBinary(t)},e.parseAsBinary=async n=>{if(!n)return;if(n===t.parseData)return;e.modified();const r={},o={baseUri:t.baseURL};if(Hy.arrayBufferToString(new Uint8Array(n,0,4))===rT){const{json:e,buffers:t}=function(e){let t;const n=[],r=new DataView(e,0,12),o=Hy.arrayBufferToString(new Uint8Array(e,0,4)),a=r.getUint32(4,!0);if(r.getUint32(8,!0),o!==rT)throw new Error("Unsupported glTF-Binary header.");if(a<2)throw new Error("Unsupported legacy binary file detected.");const i=function(e){const t=[];let n=12;for(;n{1313821514!==r.type||t?5130562===r.type&&n.push(function(e,t){return t.slice(e.start,e.start+e.length)}(r,e)):t=function(e,t){const n=e.length,r=new Uint8Array(t,20,n),o=Hy.arrayBufferToString(r);return JSON.parse(o)}(r,e)})),!t)throw new Error("glTF-Binary: JSON content not found.");if(!n)throw new Error("glTF-Binary: Binary chunk not found.");return{json:t,buffers:n}}(n);UT("Loaded GLB",e,t),r.glbBuffers=t,r.json=e}else r.json=JSON.parse(Hy.arrayBufferToString(n));void 0===r.json.asset||r.json.asset.version[0]<2?GT("Unsupported asset. glTF versions >=2.0 are supported."):(t.glTFTree=await async function(e,t){const n=new AT(e,t);return await n.parse()}(r,o),t.actors=new Map,t.cameras=new Map,t.lights=new Map,t.animations=[],t.variants=[],t.variantMappings=new Map,await LT(t),t.scenes=t.glTFTree.scenes,e.invokeReady())},e.parseAsText=n=>{n&&n!==t.parseData&&(e.modified(),t.parseData=n)},e.requestData=(n,r)=>{e.parse(t.parseData)},e.setDracoDecoder=e=>{Qy.setDracoDecoder(e)},e.importActors=()=>{t.actors.forEach((e=>t.renderer.addActor(e)))},e.importCameras=()=>{t.glTFTree.cameras?.forEach((e=>{const n=function(e){const t=$m.newInstance();if("perspective"===e.type){const{yfov:n,znear:r,zfar:o}=e.perspective;t.setClippingRange(r,o),t.setParallelProjection(!1),t.setViewAngle(So(n))}else{if("orthographic"!==e.type)throw new Error("Unsupported camera type");{const{ymag:n,znear:r,zfar:o}=e.orthographic;t.setClippingRange(r,o),t.setParallelProjection(!0),t.setParallelScale(n)}}return t}(e);t.cameras.set(e.id,n)})),t.scenes.forEach((e=>{e.nodes.forEach((e=>{const n=t.cameras.get(e.camera?.id);n&&function(e,t){if(!e||!t)return;const n=[0,0,0],r=[0,1,0],o=[0,0,-1],a=nT.newInstance();a.setMatrix(t),a.transformPoint(n,n),a.transformPoints(r,r),a.transformPoints(o,o),o[0]+=n[0],o[1]+=n[1],o[2]+=n[2],e.setPosition(n),e.setFocalPoint(o),e.setViewUp(r)}(n,e.transform)}))}))},e.importAnimations=()=>{t.glTFTree.animations?.length>0&&(t.animationMixer=kT(t.actors,t.glTFTree.accessors),t.glTFTree.animations.forEach((e=>{t.animationMixer.addAnimation(e)}))),t.animations=t.glTFTree.animations||[]},e.importLights=()=>{t.lights?.forEach((e=>{UT("Adding light",e),t.renderer.addLight(e)}))},e.setCamera=e=>{const n=t.cameras.get(e);n?(UT("Setting camera",n),t.renderer.setActiveCamera(n)):GT(`Camera ${e} not found`)},e.switchToVariant=async e=>{const n=Array.from(t.actors).map((async n=>{let[r,o]=n;UT("Switching to variant",e,"for node",r);const a=t.variantMappings.get(r);if(a){const n=a.find((t=>t.variants.includes(e)));if(n){const e=t.glTFTree.materials[n.material];await ET(t,e,o)}}}));await Promise.all(n)}}const WT={};function HT(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,WT,n),Wt.obj(e,t),Wt.get(e,t,["url","baseURL","actors","scenes","cameras","animations","animationMixer","variants","variantMappings"]),Wt.set(e,t,["renderer","dracoDecoder"]),Wt.event(e,t,"ready"),zT(e,t),t.compression||(t.compression=null),t.progressCallback||(t.progressCallback=null)}var jT={extend:HT,newInstance:Wt.newInstance(HT,"vtkGLTFImporter")};let $T,KT,qT;const XT=tv(),YT=XT.scene||0,QT=XT.viewAPI||"WebGL",ZT="https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main",JT={},ex=Uy.newInstance();ex.addController('

Options

Renderer
Models
Flavor
Scenes
Cameras

Environment Properties

1.00
1.00
30
');const tx=ex.getRenderer(),nx=ex.getRenderWindow(),rx=function(e,t){const n=new Image;n.crossOrigin="Anonymous",n.src="/vtk-js/data/pbr/kiara_dawn_4k.jpg";const r=mu.newInstance();return r.setMipLevel(8),n.onload=()=>{r.setInterpolate(!0),r.setEdgeClamp(!0),r.setImage(n)},r}();tx.setUseEnvironmentTextureAsBackground(!1),["MaterialsVariantsShoe","GlamVelvetSofa","SheenChair"].includes(XT.model)?(tx.setEnvironmentTextureDiffuseStrength(0),tx.setEnvironmentTextureSpecularStrength(0)):(tx.setEnvironmentTexture(rx),tx.setEnvironmentTextureDiffuseStrength(1),tx.setEnvironmentTextureSpecularStrength(1));const ox=jT.newInstance({renderer:tx}),ax=document.querySelector("body"),ix=document.querySelector(".models"),sx=document.querySelector(".flavor"),lx=document.querySelector(".scenes"),cx=document.querySelector(".cameras"),ux=document.querySelector(".animations"),dx=document.querySelector(".variants"),px=document.querySelector(".e-specular"),fx=document.querySelector(".e-diffuse"),gx=document.querySelector(".angle"),mx=document.querySelector(".use-background"),hx=document.createElement("div");function vx(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const t=performance.now(),n=(t-e)/1e3;$T.update(n),nx.render(),requestAnimationFrame((()=>vx(t)))}function bx(){console.log("Ready"),hx.remove(),ox.importActors(),ox.importCameras(),ox.importLights(),ox.importAnimations(),tx.resetCamera(),nx.render();const e=ox.getAnimations();if(e.length>0){e.forEach(((e,t)=>{const n=document.createElement("option");n.value=e.id,n.textContent=e.id,ux.appendChild(n)}));const t=e[0];$T=ox.getAnimationMixer(),$T.play(t.id),vx(),document.querySelector(".animations-container").style.display="table-row"}ox.getCameras().forEach(((e,t)=>{const n=document.createElement("option");n.value=t,n.textContent=t,cx.appendChild(n)}));const t=ox.getScenes();t.length>1&&(lx.innerHTML="",t.forEach(((e,t)=>{const n=document.createElement("option");n.value=t,n.textContent=`Scene ${t}`,t===YT&&(n.selected=!0),lx.appendChild(n)})));const n=ox.getVariants();n.length>1&&(dx.innerHTML="",n.forEach(((e,t)=>{console.log("Adding variant",e);const n=document.createElement("option");n.value=t,n.textContent=e,dx.appendChild(n)})),document.querySelector(".variants-container").style.display="table-row")}hx.innerHTML='\n \n \n \n \n \n',hx.style.position="absolute",hx.style.left="50%",hx.style.top="50%",hx.style.transform="translate(-50%, -50%)",fetch(`${ZT}/Models/model-index.json`).then((e=>e.json())).then((e=>{e.forEach((e=>{if(void 0!==e.variants&&void 0!==e.name){const t=[];Object.keys(e.variants).forEach((n=>{const r=e.variants[n];t[n]=`Models/${e.name}/${n}/${r}`})),JT[e.name]=t}}));const t=Object.keys(JT);t.forEach((e=>{const t=document.createElement("option");t.value=e,t.textContent=e,XT.model===e&&(t.selected=!0),ix.appendChild(t)})),KT=XT.model||t[0];const n=Object.keys(JT[KT]);qT=XT.flavor||n[0],n.forEach((e=>{const t=document.createElement("option");t.value=e,t.textContent=e,e===qT&&(t.selected=!0),sx.appendChild(t)}));const r=JT[KT][qT],o=`${ZT}/${r}`;"glTF-Draco"===qT?zy("https://unpkg.com/draco3dgltf@1.3.6/draco_decoder_gltf_nodejs.js").then((()=>{ox.setDracoDecoder(DracoDecoderModule),ox.setUrl(o,{binary:!0,sceneId:YT}).then(ox.onReady(bx))})):ox.setUrl(o,{binary:!0,sceneId:YT}).then(ox.onReady(bx))})).catch((e=>{console.error("Error fetching the model index:",e)})),document.querySelectorAll("input[name='viewAPI']").forEach((e=>{e.value===QT&&(e.checked=!0),e.addEventListener("change",(e=>{window.location=`?model=${KT}&viewAPI=${e.target.value}`}))})),ix.onchange=e=>{window.location=`?model=${e.target.value}&viewAPI=${QT}`},sx.onchange=e=>{window.location=`?model=${KT}&flavor=${e.target.value}&scene=${YT}&viewAPI=${QT}`},lx.onchange=e=>{window.location=`?model=${KT}&flavor=${qT}&scene=${e.target.value}&viewAPI=${QT}`},cx.onchange=e=>{ox.setCamera(e.target.value),nx.render()},dx.onchange=async e=>{console.log("Switching to variant",e.target.value),await ox.switchToVariant(Number(e.target.value)),nx.render()},mx.addEventListener("input",(e=>{const t=Boolean(e.target.checked);tx.setUseEnvironmentTextureAsBackground(t),nx.render()})),gx.addEventListener("input",(e=>{const t=Number(e.target.value);tx.getActiveCamera().setViewAngle(t),nx.render()})),px.addEventListener("input",(e=>{const t=Number(e.target.value);tx.setEnvironmentTextureSpecularStrength(t),nx.render()})),fx.addEventListener("input",(e=>{const t=Number(e.target.value);tx.setEnvironmentTextureDiffuseStrength(t),nx.render()})),ax.appendChild(hx)},145:function(e,t,n){"use strict";var r=n(426),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),a=Object.prototype.toString,i=Array.prototype.concat,s=Object.defineProperty,l=s&&function(){var e={};try{for(var t in s(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),c=function(e,t,n,r){var o;(!(t in e)||"function"==typeof(o=r)&&"[object Function]"===a.call(o)&&r())&&(l?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},u=function(e,t){var n=arguments.length>2?arguments[2]:{},a=r(t);o&&(a=i.call(a,Object.getOwnPropertySymbols(t)));for(var s=0;s0&&!o.call(e,0))for(var m=0;m0)for(var h=0;h=0&&"[object Function]"===t.call(e.callee)),r}},640:function(e,t,n){var r=n(64),o=n(115),a=n(965),i=n(332),s=n(65),l=n(182),c=n(293);c.alea=r,c.xor128=o,c.xorwow=a,c.xorshift7=i,c.xor4096=s,c.tychei=l,e.exports=c},64:function(e,t,n){var r;!function(e,o,a){function i(e){var t,n=this,r=(t=4022871197,function(e){e=String(e);for(var n=0;n>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,o=n.next;return o.int32=function(){return 4294967296*n.next()|0},o.double=function(){return o()+11102230246251565e-32*(2097152*o()|0)},o.quick=o,r&&("object"==typeof r&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.alea=l}(0,e=n.nmd(e),n.amdD)},182:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&("object"==typeof r&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.tychei=l}(0,e=n.nmd(e),n.amdD)},115:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&("object"==typeof r&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.xor128=l}(0,e=n.nmd(e),n.amdD)},65:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&127],e=o[a=a+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=o[a]=n^e,t.i=a,n+(r^r>>>16)|0},function(e,t){var n,r,o,a,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),o=0,a=-32;a>>15,r^=r<<4,r^=r>>>13,a>=0&&(i=i+1640531527|0,o=0==(n=s[127&a]^=r+i)?o+1:0);for(o>=128&&(s[127&(t&&t.length||0)]=-1),o=127,a=512;a>0;--a)r=s[o+34&127],n=s[o=o+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[o]=r^n;e.w=i,e.X=s,e.i=o}(t,e)}function s(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&(r.X&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.xor4096=l}(0,e=n.nmd(e),n.amdD)},332:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e>>>7)^e<<24,n^=(e=r[o+1&7])^e>>>10,n^=(e=r[o+3&7])^e>>>3,n^=(e=r[o+4&7])^e<<7,e=r[o+7&7],n^=(e^=e<<13)^e<<9,r[o]=n,t.i=o+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}function s(e,t){return t.x=e.x.slice(),t.i=e.i,t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&(r.x&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.xorshift7=l}(0,e=n.nmd(e),n.amdD)},965:function(e,t,n){var r;!function(e,o,a){function i(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function l(e,t){var n=new i(e),r=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,r&&("object"==typeof r&&s(r,n),o.state=function(){return s(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,o))||(o.exports=r):this.xorwow=l}(0,e=n.nmd(e),n.amdD)},293:function(e,t,n){var r;!function(o,a,i){var s,l=256,c=i.pow(l,6),u=i.pow(2,52),d=2*u,p=255;function f(e,t,n){var r=[],p=v(h((t=1==t?{entropy:!0}:t||{}).entropy?[e,b(a)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(l):(e=new Uint8Array(l),(o.crypto||o.msCrypto).getRandomValues(e)),b(e)}catch(e){var t=o.navigator,n=t&&t.plugins;return[+new Date,o,n,o.screen,b(a)]}}():e,3),r),f=new g(r),y=function(){for(var e=f.g(6),t=c,n=0;e=d;)e/=2,t/=2,n>>>=1;return(e+n)/t};return y.int32=function(){return 0|f.g(4)},y.quick=function(){return f.g(4)/4294967296},y.double=y,v(b(f.S),a),(t.pass||n||function(e,t,n,r){return r&&(r.S&&m(r,f),e.state=function(){return m(f,{})}),n?(i.random=e,t):e})(y,p,"global"in t?t.global:this==i,t.state)}function g(e){var t,n=e.length,r=this,o=0,a=r.i=r.j=0,i=r.S=[];for(n||(e=[n++]);o>>25)+r|0)&r|~n&o)+t[1]-389564586|0)<<12|a>>>20)+n|0)&n|~a&r)+t[2]+606105819|0)<<17|o>>>15)+a|0)&a|~o&n)+t[3]-1044525330|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+t[4]-176418897|0)<<7|n>>>25)+r|0)&r|~n&o)+t[5]+1200080426|0)<<12|a>>>20)+n|0)&n|~a&r)+t[6]-1473231341|0)<<17|o>>>15)+a|0)&a|~o&n)+t[7]-45705983|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+t[8]+1770035416|0)<<7|n>>>25)+r|0)&r|~n&o)+t[9]-1958414417|0)<<12|a>>>20)+n|0)&n|~a&r)+t[10]-42063|0)<<17|o>>>15)+a|0)&a|~o&n)+t[11]-1990404162|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+t[12]+1804603682|0)<<7|n>>>25)+r|0)&r|~n&o)+t[13]-40341101|0)<<12|a>>>20)+n|0)&n|~a&r)+t[14]-1502002290|0)<<17|o>>>15)+a|0)&a|~o&n)+t[15]+1236535329|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+t[1]-165796510|0)<<5|n>>>27)+r|0)&o|r&~o)+t[6]-1069501632|0)<<9|a>>>23)+n|0)&r|n&~r)+t[11]+643717713|0)<<14|o>>>18)+a|0)&n|a&~n)+t[0]-373897302|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+t[5]-701558691|0)<<5|n>>>27)+r|0)&o|r&~o)+t[10]+38016083|0)<<9|a>>>23)+n|0)&r|n&~r)+t[15]-660478335|0)<<14|o>>>18)+a|0)&n|a&~n)+t[4]-405537848|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+t[9]+568446438|0)<<5|n>>>27)+r|0)&o|r&~o)+t[14]-1019803690|0)<<9|a>>>23)+n|0)&r|n&~r)+t[3]-187363961|0)<<14|o>>>18)+a|0)&n|a&~n)+t[8]+1163531501|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+t[13]-1444681467|0)<<5|n>>>27)+r|0)&o|r&~o)+t[2]-51403784|0)<<9|a>>>23)+n|0)&r|n&~r)+t[7]+1735328473|0)<<14|o>>>18)+a|0)&n|a&~n)+t[12]-1926607734|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[5]-378558|0)<<4|n>>>28)+r|0)^r^o)+t[8]-2022574463|0)<<11|a>>>21)+n|0)^n^r)+t[11]+1839030562|0)<<16|o>>>16)+a|0)^a^n)+t[14]-35309556|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[1]-1530992060|0)<<4|n>>>28)+r|0)^r^o)+t[4]+1272893353|0)<<11|a>>>21)+n|0)^n^r)+t[7]-155497632|0)<<16|o>>>16)+a|0)^a^n)+t[10]-1094730640|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[13]+681279174|0)<<4|n>>>28)+r|0)^r^o)+t[0]-358537222|0)<<11|a>>>21)+n|0)^n^r)+t[3]-722521979|0)<<16|o>>>16)+a|0)^a^n)+t[6]+76029189|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+t[9]-640364487|0)<<4|n>>>28)+r|0)^r^o)+t[12]-421815835|0)<<11|a>>>21)+n|0)^n^r)+t[15]+530742520|0)<<16|o>>>16)+a|0)^a^n)+t[2]-995338651|0)<<23|r>>>9)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[0]-198630844|0)<<6|n>>>26)+r|0)|~o))+t[7]+1126891415|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+t[14]-1416354905|0)<<15|o>>>17)+a|0)|~n))+t[5]-57434055|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[12]+1700485571|0)<<6|n>>>26)+r|0)|~o))+t[3]-1894986606|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+t[10]-1051523|0)<<15|o>>>17)+a|0)|~n))+t[1]-2054922799|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[8]+1873313359|0)<<6|n>>>26)+r|0)|~o))+t[15]-30611744|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+t[6]-1560198380|0)<<15|o>>>17)+a|0)|~n))+t[13]+1309151649|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+t[4]-145523070|0)<<6|n>>>26)+r|0)|~o))+t[11]-1120210379|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+t[2]+718787259|0)<<15|o>>>17)+a|0)|~n))+t[9]-343485551|0)<<21|r>>>11)+o|0,e[0]=n+e[0]|0,e[1]=r+e[1]|0,e[2]=o+e[2]|0,e[3]=a+e[3]|0}function r(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}function o(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return n}function a(e){var t,o,a,i,s,l,c=e.length,u=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=c;t+=64)n(u,r(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t>2]|=e.charCodeAt(t)<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(u,a),t=0;t<16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}function i(e){var n,r="";for(n=0;n<4;n+=1)r+=t[e>>8*n+4&15]+t[e>>8*n&15];return r}function s(e){var t;for(t=0;tc?new ArrayBuffer(0):(r=c-l,o=new ArrayBuffer(r),a=new Uint8Array(o),i=new Uint8Array(this,l,r),a.set(i),o)}}(),u.prototype.append=function(e){return this.appendBinary(l(e)),this},u.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t<=o;t+=64)n(this._hash,r(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},u.prototype.end=function(e){var t,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t>2]|=r.charCodeAt(t)<<(t%4<<3);return this._finish(a,o),n=s(this._hash),e&&(n=c(n)),this.reset(),n},u.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},u.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},u.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},u.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},u.prototype._finish=function(e,t){var r,o,a,i=t;if(e[i>>2]|=128<<(i%4<<3),i>55)for(n(this._hash,e),i=0;i<16;i+=1)e[i]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(r[2],16),a=parseInt(r[1],16)||0,e[14]=o,e[15]=a,n(this._hash,e)},u.hash=function(e,t){return u.hashBinary(l(e),t)},u.hashBinary=function(e,t){var n=s(a(e));return t?c(n):n},u.ArrayBuffer=function(){this.reset()},u.ArrayBuffer.prototype.append=function(e){var t,r,a,i,s,l=(r=this._buff.buffer,a=e,i=!0,(s=new Uint8Array(r.byteLength+a.byteLength)).set(new Uint8Array(r)),s.set(new Uint8Array(a),r.byteLength),i?s:s.buffer),c=l.length;for(this._length+=e.byteLength,t=64;t<=c;t+=64)n(this._hash,o(l.subarray(t-64,t)));return this._buff=t-64>2]|=r[t]<<(t%4<<3);return this._finish(a,o),n=s(this._hash),e&&(n=c(n)),this.reset(),n},u.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},u.ArrayBuffer.prototype.getState=function(){var e,t=u.prototype.getState.call(this);return t.buff=(e=t.buff,String.fromCharCode.apply(null,new Uint8Array(e))),t},u.ArrayBuffer.prototype.setState=function(e){return e.buff=function(e,t){var n,r=e.length,o=new ArrayBuffer(r),a=new Uint8Array(o);for(n=0;n>2]|=e[t]<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(u,a),t=0;t<16;t+=1)a[t]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=s,a[15]=l,n(u,a),u}(new Uint8Array(e)));return t?c(r):r},u}()},57:function(e,t,n){const r=n(514);e.exports=class extends r{constructor(e){super(),this._messageId=1,this._messages=new Map,this._worker=e,this._worker.onmessage=this._onMessage.bind(this),this._id=Math.ceil(1e7*Math.random())}terminate(){this._worker.terminate()}isFree(){return 0===this._messages.size}jobsLength(){return this._messages.size}exec(e,t=null,n=[],r){return new Promise(((o,a)=>{const i=this._messageId++;this._messages.set(i,[o,a,r]),this._worker.postMessage([i,t,e],n||[])}))}postMessage(e=null,t=[],n){return new Promise(((r,o)=>{const a=this._messageId++;this._messages.set(a,[r,o,n]),this._worker.postMessage([a,e],t||[])}))}emit(e,...t){this._worker.postMessage({eventName:e,args:t})}_onMessage(e){if(!Array.isArray(e.data)&&e.data.eventName)return super.emit(e.data.eventName,...e.data.args);const[t,...n]=e.data;if(1===t)this._onEvent(...n);else{if(0!==t)throw new Error(`Wrong message type '${t}'`);this._onResult(...n)}}_onResult(e,t,n){const[r,o]=this._messages.get(e);return this._messages.delete(e),1===t?r(n):o(n)}_onEvent(e,t,n){const[,,r]=this._messages.get(e);r&&r(t,n)}}},514:function(e){e.exports=class{constructor(){Object.defineProperty(this,"__listeners",{value:{},enumerable:!1,writable:!1})}emit(e,...t){if(!this.__listeners[e])return this;for(const n of this.__listeners[e])n(...t);return this}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};return this.on(e,n)}on(e,t){return this.__listeners[e]||(this.__listeners[e]=[]),this.__listeners[e].push(t),this}off(e,t){return this.__listeners[e]=t?this.__listeners[e].filter((e=>e!==t)):[],this}}},223:function(e,t,n){var r=n(974),o=n(903);void 0===o.GLTFImporter&&(o.GLTFImporter=r),e.exports=r},706:function(){}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.amdO={},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},n(223)}(); \ No newline at end of file diff --git a/examples/GeometryViewer.html b/examples/GeometryViewer.html index 80bf31b3a6f..7eb67ff099d 100644 --- a/examples/GeometryViewer.html +++ b/examples/GeometryViewer.html @@ -48,8 +48,8 @@ - - + + @@ -158,7 +158,7 @@

diff --git a/examples/Glyph3DMapper.html b/examples/Glyph3DMapper.html index e06690ef717..1433782501d 100644 --- a/examples/Glyph3DMapper.html +++ b/examples/Glyph3DMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/GlyphRotation.html b/examples/GlyphRotation.html index d35deeb8b7d..e73c71d4672 100644 --- a/examples/GlyphRotation.html +++ b/examples/GlyphRotation.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/HDRReader.html b/examples/HDRReader.html index 90ba437509f..5c1e33c8d51 100644 --- a/examples/HDRReader.html +++ b/examples/HDRReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/HardwareSelector.html b/examples/HardwareSelector.html index 142678f605b..645268660f4 100644 --- a/examples/HardwareSelector.html +++ b/examples/HardwareSelector.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/HttpDataSetReader.html b/examples/HttpDataSetReader.html index 9992326fc26..f015f677555 100644 --- a/examples/HttpDataSetReader.html +++ b/examples/HttpDataSetReader.html @@ -48,8 +48,8 @@ - - + + @@ -121,7 +121,7 @@

diff --git a/examples/HttpDataSetSeriesReader.html b/examples/HttpDataSetSeriesReader.html index bfa13ff148a..dc8e8d8e258 100644 --- a/examples/HttpDataSetSeriesReader.html +++ b/examples/HttpDataSetSeriesReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/HttpSceneLoader.html b/examples/HttpSceneLoader.html index 79f841fbf0b..fe3ecde08a1 100644 --- a/examples/HttpSceneLoader.html +++ b/examples/HttpSceneLoader.html @@ -48,8 +48,8 @@ - - + + @@ -122,7 +122,7 @@

diff --git a/examples/ImageCPRMapper.html b/examples/ImageCPRMapper.html index 0ecbefd5179..21492d92496 100644 --- a/examples/ImageCPRMapper.html +++ b/examples/ImageCPRMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageCropFilter.html b/examples/ImageCropFilter.html index 7ac70fcb268..6f9ae6cac86 100644 --- a/examples/ImageCropFilter.html +++ b/examples/ImageCropFilter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageCroppingWidget.html b/examples/ImageCroppingWidget.html index 19c9e033414..2c0d31563be 100644 --- a/examples/ImageCroppingWidget.html +++ b/examples/ImageCroppingWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageLabelOutline.html b/examples/ImageLabelOutline.html index 5e485b6dfae..4eaf2d74d0d 100644 --- a/examples/ImageLabelOutline.html +++ b/examples/ImageLabelOutline.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageMapper.html b/examples/ImageMapper.html index d080e3d2ad8..e19f6fcd286 100644 --- a/examples/ImageMapper.html +++ b/examples/ImageMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageMarchingCubes.html b/examples/ImageMarchingCubes.html index 7e8c97a5c57..45e491ae0e5 100644 --- a/examples/ImageMarchingCubes.html +++ b/examples/ImageMarchingCubes.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageMarchingSquares.html b/examples/ImageMarchingSquares.html index a9e3e1efb26..06d007bade4 100644 --- a/examples/ImageMarchingSquares.html +++ b/examples/ImageMarchingSquares.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageOutlineFilter.html b/examples/ImageOutlineFilter.html index 160ab71a580..a33254cac9b 100644 --- a/examples/ImageOutlineFilter.html +++ b/examples/ImageOutlineFilter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageResliceMapper.html b/examples/ImageResliceMapper.html index f5cecb80a79..dfd6a3bbec6 100644 --- a/examples/ImageResliceMapper.html +++ b/examples/ImageResliceMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageStream.html b/examples/ImageStream.html index 1204a43269a..cdeb8e885dc 100644 --- a/examples/ImageStream.html +++ b/examples/ImageStream.html @@ -48,8 +48,8 @@ - - + + @@ -127,7 +127,7 @@

diff --git a/examples/ImageStreamline.html b/examples/ImageStreamline.html index b2752c87703..71938282a79 100644 --- a/examples/ImageStreamline.html +++ b/examples/ImageStreamline.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImageViewer.html b/examples/ImageViewer.html index 5893d79877d..8b0c91e4f3b 100644 --- a/examples/ImageViewer.html +++ b/examples/ImageViewer.html @@ -48,8 +48,8 @@ - - + + @@ -129,7 +129,7 @@

diff --git a/examples/ImplicitBoolean.html b/examples/ImplicitBoolean.html index 8f26f82a03d..fae82b36414 100644 --- a/examples/ImplicitBoolean.html +++ b/examples/ImplicitBoolean.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImplicitPlaneRepresentation.html b/examples/ImplicitPlaneRepresentation.html index 423f022e666..c9a052e2797 100644 --- a/examples/ImplicitPlaneRepresentation.html +++ b/examples/ImplicitPlaneRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ImplicitPlaneWidget.html b/examples/ImplicitPlaneWidget.html index b1ea906c8e8..5d2e52c0125 100644 --- a/examples/ImplicitPlaneWidget.html +++ b/examples/ImplicitPlaneWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/InteractiveOrientationWidget.html b/examples/InteractiveOrientationWidget.html index 6e4512a8479..58008a8a5f0 100644 --- a/examples/InteractiveOrientationWidget.html +++ b/examples/InteractiveOrientationWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/InteractorStyleHMDXR.html b/examples/InteractorStyleHMDXR.html index 2f76c0a1b17..dd8fb9d51c9 100644 --- a/examples/InteractorStyleHMDXR.html +++ b/examples/InteractorStyleHMDXR.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/InteractorStyleMPRSlice.html b/examples/InteractorStyleMPRSlice.html index 32abd7fd20b..4fed46058ef 100644 --- a/examples/InteractorStyleMPRSlice.html +++ b/examples/InteractorStyleMPRSlice.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/InteractorStyleManipulator.html b/examples/InteractorStyleManipulator.html index 662696122db..98022c3ded6 100644 --- a/examples/InteractorStyleManipulator.html +++ b/examples/InteractorStyleManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/InteractorStyleTrackballCamera.html b/examples/InteractorStyleTrackballCamera.html index 3cd6f1505da..3a62d3586a8 100644 --- a/examples/InteractorStyleTrackballCamera.html +++ b/examples/InteractorStyleTrackballCamera.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/InteractorStyleUnicam.html b/examples/InteractorStyleUnicam.html index f5c47c88f23..56e72483109 100644 --- a/examples/InteractorStyleUnicam.html +++ b/examples/InteractorStyleUnicam.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ItkWasmGeometry.html b/examples/ItkWasmGeometry.html index 3e273b959e6..d8961303457 100644 --- a/examples/ItkWasmGeometry.html +++ b/examples/ItkWasmGeometry.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ItkWasmVolume.html b/examples/ItkWasmVolume.html index 20abcb2cc65..3cc489fe49e 100644 --- a/examples/ItkWasmVolume.html +++ b/examples/ItkWasmVolume.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/JSONNucleoReader.html b/examples/JSONNucleoReader.html index e4e04cc798f..eaa92da944f 100644 --- a/examples/JSONNucleoReader.html +++ b/examples/JSONNucleoReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/KeyboardCameraManipulator.html b/examples/KeyboardCameraManipulator.html index 57cdc30aa54..839a5f88c27 100644 --- a/examples/KeyboardCameraManipulator.html +++ b/examples/KeyboardCameraManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/LabelWidget.html b/examples/LabelWidget.html index 312a0c6f0ec..9100ef85c11 100644 --- a/examples/LabelWidget.html +++ b/examples/LabelWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/LabelmapEdgeProjection.html b/examples/LabelmapEdgeProjection.html index 20e9a844b68..bc6cb7d0813 100644 --- a/examples/LabelmapEdgeProjection.html +++ b/examples/LabelmapEdgeProjection.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/LineSource.html b/examples/LineSource.html index ffabd56fecf..f8c902cb78b 100644 --- a/examples/LineSource.html +++ b/examples/LineSource.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/LineWidget.html b/examples/LineWidget.html index 125cc7bc7e2..fa212567c12 100644 --- a/examples/LineWidget.html +++ b/examples/LineWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/LookingGlass.html b/examples/LookingGlass.html index bf9e6eabec1..15017efb331 100644 --- a/examples/LookingGlass.html +++ b/examples/LookingGlass.html @@ -48,8 +48,8 @@ - - + + @@ -131,7 +131,7 @@

diff --git a/examples/ManyRenderWindows.html b/examples/ManyRenderWindows.html index eb4eb135c84..a6ab98b500f 100644 --- a/examples/ManyRenderWindows.html +++ b/examples/ManyRenderWindows.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ManyRenderers.html b/examples/ManyRenderers.html index 7144f67acdc..dd82641ae85 100644 --- a/examples/ManyRenderers.html +++ b/examples/ManyRenderers.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/MouseBoxSelectorManipulator.html b/examples/MouseBoxSelectorManipulator.html index 355cb6c3261..adccf9775ba 100644 --- a/examples/MouseBoxSelectorManipulator.html +++ b/examples/MouseBoxSelectorManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/MouseCameraTrackballFirstPersonManipulator.html b/examples/MouseCameraTrackballFirstPersonManipulator.html index 0a0d67563de..e4eb5652430 100644 --- a/examples/MouseCameraTrackballFirstPersonManipulator.html +++ b/examples/MouseCameraTrackballFirstPersonManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/MouseRangeManipulator.html b/examples/MouseRangeManipulator.html index d6fbc87ba7c..0c7e134cd5b 100644 --- a/examples/MouseRangeManipulator.html +++ b/examples/MouseRangeManipulator.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/MultiSliceImageMapper.html b/examples/MultiSliceImageMapper.html index fc275b29450..cdac535b631 100644 --- a/examples/MultiSliceImageMapper.html +++ b/examples/MultiSliceImageMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/OBBTree.html b/examples/OBBTree.html index 747ed7e187b..820482944e0 100644 --- a/examples/OBBTree.html +++ b/examples/OBBTree.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/OBJReader.html b/examples/OBJReader.html index 90515b4d21a..7e030da8f5d 100644 --- a/examples/OBJReader.html +++ b/examples/OBJReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/OBJViewer.html b/examples/OBJViewer.html index f30bf47c2af..2650ae2e619 100644 --- a/examples/OBJViewer.html +++ b/examples/OBJViewer.html @@ -48,8 +48,8 @@ - - + + @@ -129,7 +129,7 @@

diff --git a/examples/OctreeViewer.html b/examples/OctreeViewer.html index 63e2ca8034d..5ebb32f0806 100644 --- a/examples/OctreeViewer.html +++ b/examples/OctreeViewer.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/OfflineLocalView.html b/examples/OfflineLocalView.html index 09c55b44d59..4eeff74d4d9 100644 --- a/examples/OfflineLocalView.html +++ b/examples/OfflineLocalView.html @@ -48,8 +48,8 @@ - - + + @@ -129,7 +129,7 @@

diff --git a/examples/OrientationMarkerWidget.html b/examples/OrientationMarkerWidget.html index 6e59e660f96..5c1b3fbe2b9 100644 --- a/examples/OrientationMarkerWidget.html +++ b/examples/OrientationMarkerWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/OutlineFilter.html b/examples/OutlineFilter.html index d25215ccda4..61c7c3b7ef5 100644 --- a/examples/OutlineFilter.html +++ b/examples/OutlineFilter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PBR.html b/examples/PBR.html index dc47d903418..519977cd7d0 100644 --- a/examples/PBR.html +++ b/examples/PBR.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PDBReader.html b/examples/PDBReader.html index 3ef46bbc680..990368d0cd9 100644 --- a/examples/PDBReader.html +++ b/examples/PDBReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PLYReader.html b/examples/PLYReader.html index 131aa1bf8fd..1a3f877d3ea 100644 --- a/examples/PLYReader.html +++ b/examples/PLYReader.html @@ -48,8 +48,8 @@ - - + + @@ -126,7 +126,7 @@

diff --git a/examples/PLYWriter.html b/examples/PLYWriter.html index 4cb6870e2a4..ef4d7e2fd3d 100644 --- a/examples/PLYWriter.html +++ b/examples/PLYWriter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PaintWidget.html b/examples/PaintWidget.html index 44de2a29f05..fb2f1e1ae2f 100644 --- a/examples/PaintWidget.html +++ b/examples/PaintWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/Picking.html b/examples/Picking.html index bd0693eab57..fdb3fc1ebaa 100644 --- a/examples/Picking.html +++ b/examples/Picking.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PiecewiseGaussianWidget.html b/examples/PiecewiseGaussianWidget.html index cc223145327..9cf7309ce1e 100644 --- a/examples/PiecewiseGaussianWidget.html +++ b/examples/PiecewiseGaussianWidget.html @@ -48,8 +48,8 @@ - - + + @@ -169,7 +169,7 @@

diff --git a/examples/PipelineExecution.html b/examples/PipelineExecution.html index 67987d6bb1a..b387e88f075 100644 --- a/examples/PipelineExecution.html +++ b/examples/PipelineExecution.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PlaneSource.html b/examples/PlaneSource.html index f6df1fbb403..bfab03a3e4b 100644 --- a/examples/PlaneSource.html +++ b/examples/PlaneSource.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PointPicker.html b/examples/PointPicker.html index 6361001df85..17a3530fd54 100644 --- a/examples/PointPicker.html +++ b/examples/PointPicker.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PointSource.html b/examples/PointSource.html index 6cdc7f52671..353b543bad3 100644 --- a/examples/PointSource.html +++ b/examples/PointSource.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PolyDataNormals.html b/examples/PolyDataNormals.html index d1e76adc684..9e5b0e2769c 100644 --- a/examples/PolyDataNormals.html +++ b/examples/PolyDataNormals.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PolyDataReader.html b/examples/PolyDataReader.html index dfbe28ee94e..e3199b33fb1 100644 --- a/examples/PolyDataReader.html +++ b/examples/PolyDataReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PolyDataSerialization.html b/examples/PolyDataSerialization.html index 4f9c2801f8b..7055f3c4249 100644 --- a/examples/PolyDataSerialization.html +++ b/examples/PolyDataSerialization.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/PolyLineWidget.html b/examples/PolyLineWidget.html index 3554a83bd38..e98aa4485b9 100644 --- a/examples/PolyLineWidget.html +++ b/examples/PolyLineWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ProxyManager.html b/examples/ProxyManager.html index 70b2bd47825..7f7e0782e3d 100644 --- a/examples/ProxyManager.html +++ b/examples/ProxyManager.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/QuadView.html b/examples/QuadView.html index e8cddfa36d6..b37d4846d64 100644 --- a/examples/QuadView.html +++ b/examples/QuadView.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/RemoteView.html b/examples/RemoteView.html index 8faff10b7f9..f25b453e1a2 100644 --- a/examples/RemoteView.html +++ b/examples/RemoteView.html @@ -48,8 +48,8 @@ - - + + @@ -136,7 +136,7 @@

diff --git a/examples/RenderWindowWithControlBar.html b/examples/RenderWindowWithControlBar.html index 1d6ac6e8a4a..c2876a0fbb7 100644 --- a/examples/RenderWindowWithControlBar.html +++ b/examples/RenderWindowWithControlBar.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ResliceCursorWidget.html b/examples/ResliceCursorWidget.html index 11bbce8cfdc..db2e01fb2e3 100644 --- a/examples/ResliceCursorWidget.html +++ b/examples/ResliceCursorWidget.html @@ -48,8 +48,8 @@ - - + + @@ -121,7 +121,7 @@

diff --git a/examples/ResliceRepresentationProxy.html b/examples/ResliceRepresentationProxy.html index 5b4afa78d1b..f67d43437d5 100644 --- a/examples/ResliceRepresentationProxy.html +++ b/examples/ResliceRepresentationProxy.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SLICSource.html b/examples/SLICSource.html index ae6f8aefcf4..5ed01311c82 100644 --- a/examples/SLICSource.html +++ b/examples/SLICSource.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/STLReader.html b/examples/STLReader.html index 38d342f0501..d4681b75299 100644 --- a/examples/STLReader.html +++ b/examples/STLReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/STLWriter.html b/examples/STLWriter.html index 9470a7db974..2753be15637 100644 --- a/examples/STLWriter.html +++ b/examples/STLWriter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ScalarBarActor.html b/examples/ScalarBarActor.html index 9c477779f84..e02c4af942f 100644 --- a/examples/ScalarBarActor.html +++ b/examples/ScalarBarActor.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ScalarToRGBA.html b/examples/ScalarToRGBA.html index 49b7e71e136..cca33bf2138 100644 --- a/examples/ScalarToRGBA.html +++ b/examples/ScalarToRGBA.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SceneExplorer.html b/examples/SceneExplorer.html index b0f90df07a5..0b90ce94a9d 100644 --- a/examples/SceneExplorer.html +++ b/examples/SceneExplorer.html @@ -48,8 +48,8 @@ - - + + @@ -142,7 +142,7 @@

diff --git a/examples/Scrolling2DMixedImages.html b/examples/Scrolling2DMixedImages.html index 0a6d0f08ad1..d690fbeea0e 100644 --- a/examples/Scrolling2DMixedImages.html +++ b/examples/Scrolling2DMixedImages.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SeedWidget.html b/examples/SeedWidget.html index 6abaf66e00e..d46d25c306a 100644 --- a/examples/SeedWidget.html +++ b/examples/SeedWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ShapeWidget.html b/examples/ShapeWidget.html index 23a5052d64c..e4a0472fa59 100644 --- a/examples/ShapeWidget.html +++ b/examples/ShapeWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SimpleCone.html b/examples/SimpleCone.html index d8d6abd7938..9d051321ef2 100644 --- a/examples/SimpleCone.html +++ b/examples/SimpleCone.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SkyboxViewer.html b/examples/SkyboxViewer.html index c1633b61dde..2c0a58dd61e 100644 --- a/examples/SkyboxViewer.html +++ b/examples/SkyboxViewer.html @@ -48,8 +48,8 @@ - - + + @@ -201,7 +201,7 @@

diff --git a/examples/SphereArray.html b/examples/SphereArray.html index 9c8b97e9b6e..97f333a09df 100644 --- a/examples/SphereArray.html +++ b/examples/SphereArray.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SphereMapper.html b/examples/SphereMapper.html index 29dbfb94e5e..9a0f821cda4 100644 --- a/examples/SphereMapper.html +++ b/examples/SphereMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SphereSource.html b/examples/SphereSource.html index 845d9e774bf..128f5805eef 100644 --- a/examples/SphereSource.html +++ b/examples/SphereSource.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SphereWidget.html b/examples/SphereWidget.html index 6893d0ad67e..ea43ae1873a 100644 --- a/examples/SphereWidget.html +++ b/examples/SphereWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SpheresAndLabels.html b/examples/SpheresAndLabels.html index 73283714ebb..5a5eda0cfa3 100644 --- a/examples/SpheresAndLabels.html +++ b/examples/SpheresAndLabels.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SplineWidget.html b/examples/SplineWidget.html index 68080f9f91f..62f51a1cf3a 100644 --- a/examples/SplineWidget.html +++ b/examples/SplineWidget.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/StandaloneSceneLoader.html b/examples/StandaloneSceneLoader.html index 3b40e1d08f6..e1e064e98f0 100644 --- a/examples/StandaloneSceneLoader.html +++ b/examples/StandaloneSceneLoader.html @@ -48,8 +48,8 @@ - - + + @@ -137,7 +137,7 @@

diff --git a/examples/StickMapper.html b/examples/StickMapper.html index 049ffdd7f4a..5b380c53859 100644 --- a/examples/StickMapper.html +++ b/examples/StickMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SurfaceLICMapper.html b/examples/SurfaceLICMapper.html index e76bc63dbe7..cca3ed1e343 100644 --- a/examples/SurfaceLICMapper.html +++ b/examples/SurfaceLICMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/SynchronizableRenderWindow.html b/examples/SynchronizableRenderWindow.html index b2ce4036eef..b08cca1b65a 100644 --- a/examples/SynchronizableRenderWindow.html +++ b/examples/SynchronizableRenderWindow.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/TGAReader.html b/examples/TGAReader.html index 9d48bfabf03..ff98fc36912 100644 --- a/examples/TGAReader.html +++ b/examples/TGAReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/TestVolumeTypes.html b/examples/TestVolumeTypes.html index 37c629be6ee..2e37c6825e3 100644 --- a/examples/TestVolumeTypes.html +++ b/examples/TestVolumeTypes.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/Texture.html b/examples/Texture.html index 9baabc80790..9bedb92d6a7 100644 --- a/examples/Texture.html +++ b/examples/Texture.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/TimeSeries.html b/examples/TimeSeries.html index 54037d12a36..5c82ad52f7d 100644 --- a/examples/TimeSeries.html +++ b/examples/TimeSeries.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/TimeStepBasedAnimationHandler.html b/examples/TimeStepBasedAnimationHandler.html index 109ff142ae0..6b894831263 100644 --- a/examples/TimeStepBasedAnimationHandler.html +++ b/examples/TimeStepBasedAnimationHandler.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/TriangleFilter.html b/examples/TriangleFilter.html index ee05dcd5ba9..ca2795354ba 100644 --- a/examples/TriangleFilter.html +++ b/examples/TriangleFilter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/TubeFilter.html b/examples/TubeFilter.html index e959b8e3029..747b8faa942 100644 --- a/examples/TubeFilter.html +++ b/examples/TubeFilter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/TubesViewer.html b/examples/TubesViewer.html index 153bbe24adf..cfda68aa686 100644 --- a/examples/TubesViewer.html +++ b/examples/TubesViewer.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VR.html b/examples/VR.html index a4d61874443..74cecc362b3 100644 --- a/examples/VR.html +++ b/examples/VR.html @@ -48,8 +48,8 @@ - - + + @@ -129,7 +129,7 @@

diff --git a/examples/View2DProxy.html b/examples/View2DProxy.html index 5b5d03eb871..57152952acd 100644 --- a/examples/View2DProxy.html +++ b/examples/View2DProxy.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumeClipPlane.html b/examples/VolumeClipPlane.html index be618a61c2a..3238c60fc43 100644 --- a/examples/VolumeClipPlane.html +++ b/examples/VolumeClipPlane.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumeContour.html b/examples/VolumeContour.html index 8e73e494e39..af5332e62aa 100644 --- a/examples/VolumeContour.html +++ b/examples/VolumeContour.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumeMapper.html b/examples/VolumeMapper.html index b6bcba604fa..4854b8f581a 100644 --- a/examples/VolumeMapper.html +++ b/examples/VolumeMapper.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumeMapperBlendModes.html b/examples/VolumeMapperBlendModes.html index bdddb32b7a7..42678a7bcae 100644 --- a/examples/VolumeMapperBlendModes.html +++ b/examples/VolumeMapperBlendModes.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumeMapperLightAndShadow.html b/examples/VolumeMapperLightAndShadow.html index 0e98801ace4..4335682b6b9 100644 --- a/examples/VolumeMapperLightAndShadow.html +++ b/examples/VolumeMapperLightAndShadow.html @@ -48,8 +48,8 @@ - - + + @@ -134,7 +134,7 @@

diff --git a/examples/VolumeMapperParallelProjection.html b/examples/VolumeMapperParallelProjection.html index 39a42211cd5..7e49f084146 100644 --- a/examples/VolumeMapperParallelProjection.html +++ b/examples/VolumeMapperParallelProjection.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumeOutline.html b/examples/VolumeOutline.html index d2cbd8d1d8d..9bbea078550 100644 --- a/examples/VolumeOutline.html +++ b/examples/VolumeOutline.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumePicker.html b/examples/VolumePicker.html index 57b2714c0f5..0dc735c0914 100644 --- a/examples/VolumePicker.html +++ b/examples/VolumePicker.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumeRenderingWithPolyData.html b/examples/VolumeRenderingWithPolyData.html index 996f3e924cb..fad207d7c01 100644 --- a/examples/VolumeRenderingWithPolyData.html +++ b/examples/VolumeRenderingWithPolyData.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/VolumeViewer.html b/examples/VolumeViewer.html index 21a7b919abf..df5545abcd2 100644 --- a/examples/VolumeViewer.html +++ b/examples/VolumeViewer.html @@ -48,8 +48,8 @@ - - + + @@ -162,7 +162,7 @@

diff --git a/examples/WarpScalar.html b/examples/WarpScalar.html index 5a880788fee..8f5280d016c 100644 --- a/examples/WarpScalar.html +++ b/examples/WarpScalar.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/WebXRChestCTBlendedCVR.html b/examples/WebXRChestCTBlendedCVR.html index b1cf08ff576..7c48eb9f4e2 100644 --- a/examples/WebXRChestCTBlendedCVR.html +++ b/examples/WebXRChestCTBlendedCVR.html @@ -48,8 +48,8 @@ - - + + @@ -122,7 +122,7 @@

diff --git a/examples/WebXRHeadFullVolumeCVR.html b/examples/WebXRHeadFullVolumeCVR.html index 892f973441a..f357c609ead 100644 --- a/examples/WebXRHeadFullVolumeCVR.html +++ b/examples/WebXRHeadFullVolumeCVR.html @@ -48,8 +48,8 @@ - - + + @@ -122,7 +122,7 @@

diff --git a/examples/WebXRHeadGradientCVR.html b/examples/WebXRHeadGradientCVR.html index f9434a8e433..944c7e2ecc4 100644 --- a/examples/WebXRHeadGradientCVR.html +++ b/examples/WebXRHeadGradientCVR.html @@ -48,8 +48,8 @@ - - + + @@ -122,7 +122,7 @@

diff --git a/examples/WebXRVolume.html b/examples/WebXRVolume.html index 7d3c2248b14..8ea1bafd116 100644 --- a/examples/WebXRVolume.html +++ b/examples/WebXRVolume.html @@ -48,8 +48,8 @@ - - + + @@ -156,7 +156,7 @@

diff --git a/examples/WidgetManager.html b/examples/WidgetManager.html index c5cfd0b12c1..93ebe4ef6d5 100644 --- a/examples/WidgetManager.html +++ b/examples/WidgetManager.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/WidgetRepresentation.html b/examples/WidgetRepresentation.html index e3890ceb9a6..fbfe36ce888 100644 --- a/examples/WidgetRepresentation.html +++ b/examples/WidgetRepresentation.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/WindowedSincPolyDataFilter.html b/examples/WindowedSincPolyDataFilter.html index 92d3fb1d3bd..96728e83b74 100644 --- a/examples/WindowedSincPolyDataFilter.html +++ b/examples/WindowedSincPolyDataFilter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/XMLImageDataWriter.html b/examples/XMLImageDataWriter.html index c54d242e5c3..899acd31fbb 100644 --- a/examples/XMLImageDataWriter.html +++ b/examples/XMLImageDataWriter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/XMLPolyDataWriter.html b/examples/XMLPolyDataWriter.html index 95a3ac45247..3291296df68 100644 --- a/examples/XMLPolyDataWriter.html +++ b/examples/XMLPolyDataWriter.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/ZipHttpReader.html b/examples/ZipHttpReader.html index a8cdf73eb14..b71da883789 100644 --- a/examples/ZipHttpReader.html +++ b/examples/ZipHttpReader.html @@ -48,8 +48,8 @@ - - + + @@ -120,7 +120,7 @@

diff --git a/examples/index.html b/examples/index.html index fc2097bb415..a1936b49474 100644 --- a/examples/index.html +++ b/examples/index.html @@ -169,8 +169,8 @@ - - + + @@ -345,7 +345,7 @@

- + diff --git a/index.html b/index.html index 37802265ab3..8f6d2a3ea8c 100644 --- a/index.html +++ b/index.html @@ -49,8 +49,8 @@ - - + + diff --git a/sitemap.xml b/sitemap.xml index 4d5eaf807e9..f4ea37aa20b 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,37 +1,10 @@ - - https://kitware.github.io/vtk-js/examples/InteractiveOrientationWidget.html - - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/examples/LabelWidget.html - - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/examples/LineWidget.html - - 2024-11-13 - - monthly - 0.6 - - https://kitware.github.io/vtk-js/examples/PaintWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -40,7 +13,7 @@ https://kitware.github.io/vtk-js/examples/PolyLineWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -49,7 +22,7 @@ https://kitware.github.io/vtk-js/examples/ResliceCursorWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -58,7 +31,7 @@ https://kitware.github.io/vtk-js/examples/SeedWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -67,7 +40,7 @@ https://kitware.github.io/vtk-js/examples/ShapeWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -76,7 +49,7 @@ https://kitware.github.io/vtk-js/examples/SphereWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -85,70 +58,70 @@ https://kitware.github.io/vtk-js/examples/SplineWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ActorSerialization.html + https://kitware.github.io/vtk-js/examples/AngleWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/AngleWidget.html + https://kitware.github.io/vtk-js/examples/ImageCroppingWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImageCroppingWidget.html + https://kitware.github.io/vtk-js/examples/ImplicitPlaneRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImplicitPlaneRepresentation.html + https://kitware.github.io/vtk-js/examples/ImplicitPlaneWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImplicitPlaneWidget.html + https://kitware.github.io/vtk-js/examples/InteractiveOrientationWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/PipelineExecution.html + https://kitware.github.io/vtk-js/examples/LabelWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/PolyDataSerialization.html + https://kitware.github.io/vtk-js/examples/LineWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -157,7 +130,7 @@ https://kitware.github.io/vtk-js/examples/StandaloneSceneLoader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -166,7 +139,7 @@ https://kitware.github.io/vtk-js/examples/WidgetManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -175,34 +148,34 @@ https://kitware.github.io/vtk-js/examples/WidgetRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImageResliceMapper.html + https://kitware.github.io/vtk-js/examples/ActorSerialization.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/PointPicker.html + https://kitware.github.io/vtk-js/examples/PipelineExecution.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/RemoteView.html + https://kitware.github.io/vtk-js/examples/PolyDataSerialization.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -211,16 +184,16 @@ https://kitware.github.io/vtk-js/examples/RenderWindowWithControlBar.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ScalarBarActor.html + https://kitware.github.io/vtk-js/examples/RemoteView.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -229,7 +202,7 @@ https://kitware.github.io/vtk-js/examples/SphereMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -238,7 +211,7 @@ https://kitware.github.io/vtk-js/examples/StickMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -247,7 +220,7 @@ https://kitware.github.io/vtk-js/examples/SurfaceLICMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -256,7 +229,7 @@ https://kitware.github.io/vtk-js/examples/SynchronizableRenderWindow.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -265,16 +238,7 @@ https://kitware.github.io/vtk-js/examples/VolumeMapper.html - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/examples/AnimationProxyManager.html - - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -283,7 +247,7 @@ https://kitware.github.io/vtk-js/examples/CellPicker.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -292,7 +256,7 @@ https://kitware.github.io/vtk-js/examples/Glyph3DMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -301,7 +265,7 @@ https://kitware.github.io/vtk-js/examples/HardwareSelector.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -310,7 +274,7 @@ https://kitware.github.io/vtk-js/examples/ImageCPRMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -319,160 +283,160 @@ https://kitware.github.io/vtk-js/examples/ImageMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ProxyManager.html + https://kitware.github.io/vtk-js/examples/ImageResliceMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ResliceRepresentationProxy.html + https://kitware.github.io/vtk-js/examples/PointPicker.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/View2DProxy.html + https://kitware.github.io/vtk-js/examples/ResliceRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/XMLPolyDataWriter.html + https://kitware.github.io/vtk-js/examples/ScalarBarActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ElevationReader.html + https://kitware.github.io/vtk-js/examples/View2DProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/GCodeReader.html + https://kitware.github.io/vtk-js/examples/AnimationProxyManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/JSONNucleoReader.html + https://kitware.github.io/vtk-js/examples/ElevationReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/OBJReader.html + https://kitware.github.io/vtk-js/examples/GCodeReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/PDBReader.html + https://kitware.github.io/vtk-js/examples/JSONNucleoReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/PolyDataReader.html + https://kitware.github.io/vtk-js/examples/OBJReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/TGAReader.html + https://kitware.github.io/vtk-js/examples/PDBReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/XMLImageDataWriter.html + https://kitware.github.io/vtk-js/examples/ProxyManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/DracoReader.html + https://kitware.github.io/vtk-js/examples/XMLImageDataWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/GLTFImporter.html + https://kitware.github.io/vtk-js/examples/XMLPolyDataWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/HDRReader.html + https://kitware.github.io/vtk-js/examples/DracoReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/HttpSceneLoader.html + https://kitware.github.io/vtk-js/examples/GLTFImporter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImageStream.html + https://kitware.github.io/vtk-js/examples/HDRReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -481,7 +445,7 @@ https://kitware.github.io/vtk-js/examples/PLYReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -490,16 +454,16 @@ https://kitware.github.io/vtk-js/examples/PLYWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/STLReader.html + https://kitware.github.io/vtk-js/examples/PolyDataReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -508,79 +472,79 @@ https://kitware.github.io/vtk-js/examples/STLWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/DeviceOrientationToCamera.html + https://kitware.github.io/vtk-js/examples/STLReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/HttpDataSetReader.html + https://kitware.github.io/vtk-js/examples/TGAReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/HttpDataSetSeriesReader.html + https://kitware.github.io/vtk-js/examples/HttpDataSetReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/InteractorStyleHMDXR.html + https://kitware.github.io/vtk-js/examples/HttpDataSetSeriesReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/InteractorStyleMPRSlice.html + https://kitware.github.io/vtk-js/examples/HttpSceneLoader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/InteractorStyleManipulator.html + https://kitware.github.io/vtk-js/examples/ImageStream.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/InteractorStyleTrackballCamera.html + https://kitware.github.io/vtk-js/examples/InteractorStyleUnicam.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/InteractorStyleUnicam.html + https://kitware.github.io/vtk-js/examples/InteractorStyleTrackballCamera.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -589,7 +553,7 @@ https://kitware.github.io/vtk-js/examples/OrientationMarkerWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -598,79 +562,79 @@ https://kitware.github.io/vtk-js/examples/PiecewiseGaussianWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/KeyboardCameraManipulator.html + https://kitware.github.io/vtk-js/examples/DeviceOrientationToCamera.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/LineSource.html + https://kitware.github.io/vtk-js/examples/InteractorStyleHMDXR.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/MouseBoxSelectorManipulator.html + https://kitware.github.io/vtk-js/examples/InteractorStyleMPRSlice.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/MouseCameraTrackballFirstPersonManipulator.html + https://kitware.github.io/vtk-js/examples/InteractorStyleManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/MouseRangeManipulator.html + https://kitware.github.io/vtk-js/examples/KeyboardCameraManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/PlaneSource.html + https://kitware.github.io/vtk-js/examples/MouseBoxSelectorManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/PointSource.html + https://kitware.github.io/vtk-js/examples/MouseCameraTrackballFirstPersonManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/SLICSource.html + https://kitware.github.io/vtk-js/examples/MouseRangeManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -679,7 +643,7 @@ https://kitware.github.io/vtk-js/examples/SphereSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -688,7 +652,7 @@ https://kitware.github.io/vtk-js/examples/TimeStepBasedAnimationHandler.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -697,7 +661,7 @@ https://kitware.github.io/vtk-js/examples/ArrowSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -706,7 +670,7 @@ https://kitware.github.io/vtk-js/examples/CircleSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -715,7 +679,7 @@ https://kitware.github.io/vtk-js/examples/ConcentricCylinderSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -724,7 +688,7 @@ https://kitware.github.io/vtk-js/examples/ConeSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -733,7 +697,7 @@ https://kitware.github.io/vtk-js/examples/CubeSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -742,7 +706,7 @@ https://kitware.github.io/vtk-js/examples/Cursor3D.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -751,61 +715,61 @@ https://kitware.github.io/vtk-js/examples/CylinderSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/TubeFilter.html + https://kitware.github.io/vtk-js/examples/LineSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/WarpScalar.html + https://kitware.github.io/vtk-js/examples/PlaneSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/WindowedSincPolyDataFilter.html + https://kitware.github.io/vtk-js/examples/PointSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ContourTriangulator.html + https://kitware.github.io/vtk-js/examples/SLICSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImageCropFilter.html + https://kitware.github.io/vtk-js/examples/ImageMarchingCubes.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImageMarchingCubes.html + https://kitware.github.io/vtk-js/examples/ImageOutlineFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -814,169 +778,169 @@ https://kitware.github.io/vtk-js/examples/ImageMarchingSquares.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImageOutlineFilter.html + https://kitware.github.io/vtk-js/examples/ImageStreamline.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImageStreamline.html + https://kitware.github.io/vtk-js/examples/OBBTree.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/OBBTree.html + https://kitware.github.io/vtk-js/examples/OutlineFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/OutlineFilter.html + https://kitware.github.io/vtk-js/examples/ScalarToRGBA.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ScalarToRGBA.html + https://kitware.github.io/vtk-js/examples/TriangleFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/TriangleFilter.html + https://kitware.github.io/vtk-js/examples/TubeFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/Box.html + https://kitware.github.io/vtk-js/examples/WarpScalar.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/Calculator.html + https://kitware.github.io/vtk-js/examples/WindowedSincPolyDataFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ClipClosedSurface.html + https://kitware.github.io/vtk-js/examples/Calculator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ContourLoopExtraction.html + https://kitware.github.io/vtk-js/examples/Box.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/Cutter.html + https://kitware.github.io/vtk-js/examples/ClipClosedSurface.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImplicitBoolean.html + https://kitware.github.io/vtk-js/examples/ContourLoopExtraction.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/PolyDataNormals.html + https://kitware.github.io/vtk-js/examples/ContourTriangulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/WebXRVolume.html + https://kitware.github.io/vtk-js/examples/Cutter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/WebXRHeadGradientCVR.html + https://kitware.github.io/vtk-js/examples/ImageCropFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ZipHttpReader.html + https://kitware.github.io/vtk-js/examples/ImplicitBoolean.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/VolumeMapperBlendModes.html + https://kitware.github.io/vtk-js/examples/PolyDataNormals.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/VolumeMapperLightAndShadow.html + https://kitware.github.io/vtk-js/examples/ZipHttpReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -985,7 +949,7 @@ https://kitware.github.io/vtk-js/examples/VolumeMapperParallelProjection.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -994,7 +958,7 @@ https://kitware.github.io/vtk-js/examples/VolumeOutline.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1003,7 +967,7 @@ https://kitware.github.io/vtk-js/examples/VolumePicker.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1012,7 +976,7 @@ https://kitware.github.io/vtk-js/examples/VolumeRenderingWithPolyData.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1021,61 +985,61 @@ https://kitware.github.io/vtk-js/examples/WebXRChestCTBlendedCVR.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/WebXRHeadFullVolumeCVR.html + https://kitware.github.io/vtk-js/examples/WebXRVolume.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ItkWasmVolume.html + https://kitware.github.io/vtk-js/examples/WebXRHeadFullVolumeCVR.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/MultiSliceImageMapper.html + https://kitware.github.io/vtk-js/examples/WebXRHeadGradientCVR.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/QuadView.html + https://kitware.github.io/vtk-js/examples/ItkWasmVolume.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/Scrolling2DMixedImages.html + https://kitware.github.io/vtk-js/examples/MultiSliceImageMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/SphereArray.html + https://kitware.github.io/vtk-js/examples/Scrolling2DMixedImages.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1084,7 +1048,7 @@ https://kitware.github.io/vtk-js/examples/TestVolumeTypes.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1093,7 +1057,7 @@ https://kitware.github.io/vtk-js/examples/VolumeClipPlane.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1102,25 +1066,25 @@ https://kitware.github.io/vtk-js/examples/VolumeContour.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/Actor2D.html + https://kitware.github.io/vtk-js/examples/VolumeMapperBlendModes.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/Convolution2DPass.html + https://kitware.github.io/vtk-js/examples/VolumeMapperLightAndShadow.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1129,7 +1093,7 @@ https://kitware.github.io/vtk-js/examples/CustomWebGPUCone.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1138,7 +1102,7 @@ https://kitware.github.io/vtk-js/examples/ImageLabelOutline.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1147,25 +1111,25 @@ https://kitware.github.io/vtk-js/examples/LabelmapEdgeProjection.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ManyRenderWindows.html + https://kitware.github.io/vtk-js/examples/ManyRenderers.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ManyRenderers.html + https://kitware.github.io/vtk-js/examples/ManyRenderWindows.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1174,16 +1138,43 @@ https://kitware.github.io/vtk-js/examples/PBR.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ItkWasmGeometry.html + https://kitware.github.io/vtk-js/examples/QuadView.html - 2024-11-13 + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/examples/SphereArray.html + + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/examples/Actor2D.html + + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/examples/Convolution2DPass.html + + 2024-11-20 monthly 0.6 @@ -1192,7 +1183,7 @@ https://kitware.github.io/vtk-js/examples/LookingGlass.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1201,7 +1192,7 @@ https://kitware.github.io/vtk-js/examples/Picking.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1210,7 +1201,7 @@ https://kitware.github.io/vtk-js/examples/SimpleCone.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1219,7 +1210,7 @@ https://kitware.github.io/vtk-js/examples/SpheresAndLabels.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1228,7 +1219,7 @@ https://kitware.github.io/vtk-js/examples/Texture.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1237,7 +1228,7 @@ https://kitware.github.io/vtk-js/examples/TimeSeries.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1246,7 +1237,7 @@ https://kitware.github.io/vtk-js/examples/VR.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1255,7 +1246,7 @@ https://kitware.github.io/vtk-js/examples/AR.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1264,7 +1255,7 @@ https://kitware.github.io/vtk-js/examples/AxesActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1273,7 +1264,7 @@ https://kitware.github.io/vtk-js/examples/Cone.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1282,7 +1273,7 @@ https://kitware.github.io/vtk-js/examples/CubeAxes.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1291,7 +1282,7 @@ https://kitware.github.io/vtk-js/examples/DepthTest.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1300,97 +1291,97 @@ https://kitware.github.io/vtk-js/examples/GlyphRotation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/SkyboxViewer.html + https://kitware.github.io/vtk-js/examples/ItkWasmGeometry.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/TubesViewer.html + https://kitware.github.io/vtk-js/examples/VolumeViewer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/VolumeViewer.html + https://kitware.github.io/vtk-js/examples/OfflineLocalView.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/GeometryViewer.html + https://kitware.github.io/vtk-js/examples/SceneExplorer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/ImageViewer.html + https://kitware.github.io/vtk-js/examples/SkyboxViewer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/OBJViewer.html + https://kitware.github.io/vtk-js/examples/TubesViewer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/OctreeViewer.html + https://kitware.github.io/vtk-js/examples/GeometryViewer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/OfflineLocalView.html + https://kitware.github.io/vtk-js/examples/ImageViewer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/SceneExplorer.html + https://kitware.github.io/vtk-js/examples/OBJViewer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_SeedWidget.html + https://kitware.github.io/vtk-js/examples/OctreeViewer.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1399,7 +1390,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_ShapeWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1408,7 +1399,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_SphereWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1417,7 +1408,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_SplineWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1426,7 +1417,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_RectangleWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1435,16 +1426,16 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_ResliceCursorWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_LabelWidget.html + https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_SeedWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1453,7 +1444,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_LineWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1462,7 +1453,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_PaintWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1471,7 +1462,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_PolyLineWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1480,7 +1471,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_ImageCroppingWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1489,7 +1480,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_ImplicitPlaneWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1498,7 +1489,16 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_InteractiveOrientationWidget.html - 2024-11-13 + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_LabelWidget.html + + 2024-11-20 monthly 0.6 @@ -1507,7 +1507,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Representations_SplineContextRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1516,7 +1516,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Representations_WidgetRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1525,7 +1525,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_AngleWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1534,43 +1534,43 @@ https://kitware.github.io/vtk-js/api/Widgets_Widgets3D_EllipseWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_LineHandleRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_ImplicitPlaneRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_OutlineContextRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_LineHandleRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_PolyLineRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_OutlineContextRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_SphereContextRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_PolyLineRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1579,133 +1579,133 @@ https://kitware.github.io/vtk-js/api/Widgets_Representations_RectangleContextRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_SphereHandleRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_SphereContextRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_ContextRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_SphereHandleRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_ConvexFaceContextRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_ArrowHandleRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_CroppingOutlineRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_ContextRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_CubeHandleRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_CircleContextRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_GlyphRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_ConvexFaceContextRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_HandleRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_CroppingOutlineRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_ImplicitPlaneRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_CubeHandleRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Manipulators_PickerManipulator.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_GlyphRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Manipulators_PlaneManipulator.html + https://kitware.github.io/vtk-js/api/Widgets_Representations_HandleRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Manipulators_TrackballManipulator.html + https://kitware.github.io/vtk-js/api/Widgets_Manipulators_LineManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_ArrowHandleRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Manipulators_PickerManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Representations_CircleContextRepresentation.html + https://kitware.github.io/vtk-js/api/Widgets_Manipulators_PlaneManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Core_WidgetState.html + https://kitware.github.io/vtk-js/api/Widgets_Manipulators_TrackballManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1714,7 +1714,7 @@ https://kitware.github.io/vtk-js/api/Widgets_Core_WidgetManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1723,52 +1723,43 @@ https://kitware.github.io/vtk-js/api/Widgets_Manipulators_AbstractManipulator.html - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/api/Widgets_Manipulators_CPRManipulator.html - - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Manipulators_LineManipulator.html + https://kitware.github.io/vtk-js/api/Widgets_Core_WidgetState.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Core_StateBuilder.html + https://kitware.github.io/vtk-js/api/Widgets_Manipulators_CPRManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Testing_Examples_PolyDataSerialization.html + https://kitware.github.io/vtk-js/api/Widgets_Core_AbstractWidgetFactory.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Testing_Examples_StandaloneSceneLoader.html + https://kitware.github.io/vtk-js/api/Widgets_Core_StateBuilder.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1777,7 +1768,7 @@ https://kitware.github.io/vtk-js/api/Testing_Examples_WindTunnel.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1786,178 +1777,178 @@ https://kitware.github.io/vtk-js/api/Widgets_Core_AbstractWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Widgets_Core_AbstractWidgetFactory.html + https://kitware.github.io/vtk-js/api/Rendering_WebXR_RenderWindowHelper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ViewNodeFactory.html + https://kitware.github.io/vtk-js/api/Testing_Examples_ActorSerialization.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Volume.html + https://kitware.github.io/vtk-js/api/Testing_Examples_PipelineExecution.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_VolumePass.html + https://kitware.github.io/vtk-js/api/Testing_Examples_PolyDataSerialization.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_VolumePassFSQ.html + https://kitware.github.io/vtk-js/api/Testing_Examples_StandaloneSceneLoader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebXR_RenderWindowHelper.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_UniformBuffer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Testing_Examples_ActorSerialization.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_VertexInput.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Testing_Examples_PipelineExecution.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ViewNodeFactory.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_StorageBuffer.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Volume.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_TextureManager.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_VolumePass.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Texture.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_VolumePassFSQ.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_TextureView.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_StorageBuffer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Types.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_StickMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_UniformBuffer.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Texture.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_VertexInput.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_TextureView.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ScalarBarActor.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_TextureManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ShaderCache.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Types.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ShaderModule.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ScalarBarActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_SimpleMapper.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ShaderCache.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -1966,70 +1957,70 @@ https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ShaderDescription.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_SphereMapper.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ShaderModule.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_StickMapper.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_SimpleMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_PolyDataMapper2D.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_SphereMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Profiles.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_RenderEncoder.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_RenderEncoder.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Profiles.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_RenderWindow.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Renderer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Renderer.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_RenderWindow.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2038,79 +2029,79 @@ https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Sampler.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ImageMapper.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_IndexBuffer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ImageSlice.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_OrderIndependentTranslucentPass.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_IndexBuffer.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_OpaquePass.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_OpaquePass.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_PixelSpaceCallbackMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_OrderIndependentTranslucentPass.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Pipeline.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Pipeline.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_PolyDataMapper2D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_PixelSpaceCallbackMapper.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_PolyDataMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_PolyDataMapper.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Device.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2119,7 +2110,7 @@ https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ForwardPass.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2128,7 +2119,7 @@ https://kitware.github.io/vtk-js/api/Rendering_WebGPU_FullScreenQuad.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2137,7 +2128,7 @@ https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Glyph3DMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2146,7 +2137,7 @@ https://kitware.github.io/vtk-js/api/Rendering_WebGPU_HardwareSelectionPass.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2155,223 +2146,214 @@ https://kitware.github.io/vtk-js/api/Rendering_WebGPU_HardwareSelector.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_BindGroup.html - - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Buffer.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ImageMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_BufferManager.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_ImageSlice.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Camera.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Actor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_CellArrayMapper.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Actor2D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_CubeAxesActor.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_BindGroup.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Device.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Buffer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_SceneGraph_RenderWindowViewNode.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Camera.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_SceneGraph_ViewNode.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_BufferManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_SceneGraph_ViewNodeFactory.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_CubeAxesActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Actor.html + https://kitware.github.io/vtk-js/api/Rendering_WebGPU_CellArrayMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_WebGPU_Actor2D.html + https://kitware.github.io/vtk-js/api/Rendering_SceneGraph_RenderPass.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_SceneGraph_RenderPass.html + https://kitware.github.io/vtk-js/api/Rendering_SceneGraph_RenderWindowViewNode.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_glsl.html + https://kitware.github.io/vtk-js/api/Rendering_SceneGraph_ViewNode.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_TextureUnitManager.html + https://kitware.github.io/vtk-js/api/Rendering_SceneGraph_ViewNodeFactory.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Texture.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Volume.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_VertexArrayObject.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_VolumeMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ViewNodeFactory.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_glsl.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Volume.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_StickMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_VolumeMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_SurfaceLIC.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_SphereMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_TextureUnitManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_StickMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_VertexArrayObject.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_SurfaceLIC.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ViewNodeFactory.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ScalarBarActor.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Texture.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2380,7 +2362,7 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Shader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2389,7 +2371,7 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ShaderCache.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2398,7 +2380,7 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ShaderProgram.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2407,25 +2389,25 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Skybox.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Profiles.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_SphereMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_RadialDistortionPass.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ReplacementShaderMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2434,7 +2416,7 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Renderer.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2443,52 +2425,52 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_RenderWindow.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ReplacementShaderMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ScalarBarActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_PixelSpaceCallbackMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Profiles.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_PolyDataMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_RadialDistortionPass.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_PolyDataMapper2D.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ImageSlice.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ImageCPRMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_OrderIndependentTranslucentPass.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2497,79 +2479,79 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ImageResliceMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ImageSlice.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_PixelSpaceCallbackMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ImageMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_PolyDataMapper2D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_OrderIndependentTranslucentPass.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_PolyDataMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ForwardPass.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Glyph3DMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Framebuffer.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_HardwareSelector.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Glyph3DMapper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Helper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_HardwareSelector.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ImageCPRMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Helper.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ImageMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2578,79 +2560,79 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_BufferObject.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_CellArrayBufferObject.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Camera.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Camera.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_CellArrayBufferObject.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_CubeAxesActor.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Convolution2DPass.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Convolution2DPass.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_CubeAxesActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Misc_RenderingAPIs.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_ForwardPass.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Misc_SynchronizableRenderWindow.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Framebuffer.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Actor.html + https://kitware.github.io/vtk-js/api/Rendering_Misc_TextureLODsDownloader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Misc_TextureLODsDownloader.html + https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Actor.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2659,7 +2641,7 @@ https://kitware.github.io/vtk-js/api/Rendering_OpenGL_Actor2D.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2668,7 +2650,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Misc_GenericRenderWindow.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2677,7 +2659,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Misc_RemoteView.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2686,88 +2668,106 @@ https://kitware.github.io/vtk-js/api/Rendering_Misc_RenderWindowWithControlBar.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_VolumeProperty.html + https://kitware.github.io/vtk-js/api/Rendering_Misc_RenderingAPIs.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Misc_CanvasView.html + https://kitware.github.io/vtk-js/api/Rendering_Misc_SynchronizableRenderWindow.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Misc_FullScreenRenderWindow.html + https://kitware.github.io/vtk-js/api/Rendering_Core_VolumeMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Volume.html + https://kitware.github.io/vtk-js/api/Rendering_Core_VolumeProperty.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_VolumeMapper.html + https://kitware.github.io/vtk-js/api/Rendering_Misc_CanvasView.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_SurfaceLICInterface.html + https://kitware.github.io/vtk-js/api/Rendering_Misc_FullScreenRenderWindow.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_SurfaceLICMapper.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Texture.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Texture.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Viewport.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Viewport.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Volume.html + + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/api/Rendering_Core_Skybox.html - 2024-11-13 + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/api/Rendering_Core_StickMapper.html + + 2024-11-20 monthly 0.6 @@ -2776,25 +2776,25 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_SphereMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Skybox.html + https://kitware.github.io/vtk-js/api/Rendering_Core_SurfaceLICInterface.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_StickMapper.html + https://kitware.github.io/vtk-js/api/Rendering_Core_SurfaceLICMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2803,7 +2803,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_RenderWindowInteractor.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2812,7 +2812,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_Renderer.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2821,25 +2821,25 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_ScalarBarActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Property2D.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Property.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Property.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Property2D.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2848,7 +2848,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_RenderWindow.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2857,7 +2857,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_PixelSpaceCallbackMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2866,7 +2866,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_PointPicker.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2875,7 +2875,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_Prop.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -2884,142 +2884,142 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_Prop3D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Mapper.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Mapper2D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Mapper2D.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Picker.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Picker.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Mapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_ImageSlice.html + https://kitware.github.io/vtk-js/api/Rendering_Core_InteractorObserver.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_InteractorObserver.html + https://kitware.github.io/vtk-js/api/Rendering_Core_InteractorStyle.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_InteractorStyle.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Light.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Light.html + https://kitware.github.io/vtk-js/api/Rendering_Core_ImageProperty.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_ImageMapper.html + https://kitware.github.io/vtk-js/api/Rendering_Core_ImageResliceMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_ImageProperty.html + https://kitware.github.io/vtk-js/api/Rendering_Core_ImageSlice.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_ImageResliceMapper.html + https://kitware.github.io/vtk-js/api/Rendering_Core_ImageCPRMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_HardwareSelector.html + https://kitware.github.io/vtk-js/api/Rendering_Core_ImageMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_ImageArrayMapper.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Glyph3DMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_ImageCPRMapper.html + https://kitware.github.io/vtk-js/api/Rendering_Core_HardwareSelector.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Coordinate.html + https://kitware.github.io/vtk-js/api/Rendering_Core_ImageArrayMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Follower.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Coordinate.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3028,16 +3028,25 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_CubeAxesActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Glyph3DMapper.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Follower.html + + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/api/Rendering_Core_ColorTransferFunction.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3046,16 +3055,16 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_CellPicker.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_ColorTransferFunction.html + https://kitware.github.io/vtk-js/api/Rendering_Core_Camera.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3064,34 +3073,34 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_Actor2D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_AxesActor.html + https://kitware.github.io/vtk-js/api/Rendering_Core_AnnotatedCubeActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_AnnotatedCubeActor.html + https://kitware.github.io/vtk-js/api/Rendering_Core_AxesActor.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_Camera.html + https://kitware.github.io/vtk-js/api/Rendering_Core_AbstractImageMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3100,7 +3109,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_AbstractMapper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3109,7 +3118,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_AbstractMapper3D.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3118,7 +3127,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_AbstractPicker.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3127,7 +3136,7 @@ https://kitware.github.io/vtk-js/api/Rendering_Core_Actor.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3136,7 +3145,7 @@ https://kitware.github.io/vtk-js/api/Proxy_Representations_SliceRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3145,7 +3154,7 @@ https://kitware.github.io/vtk-js/api/Proxy_Representations_SlicedGeometryRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3154,52 +3163,52 @@ https://kitware.github.io/vtk-js/api/Proxy_Representations_VolumeRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Rendering_Core_AbstractImageMapper.html + https://kitware.github.io/vtk-js/api/Proxy_Representations_GeometryRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Representations_MoleculeRepresentationProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Representations_GlyphRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Representations_ResliceRepresentationProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Representations_MoleculeRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Representations_SkyboxRepresentationProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Representations_ResliceRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Core_SourceProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Representations_SkyboxRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3208,97 +3217,88 @@ https://kitware.github.io/vtk-js/api/Proxy_Core_View2DProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Core_ViewProxy.html - - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/api/Proxy_Representations_GeometryRepresentationProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Core_SourceProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Representations_GlyphRepresentationProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Core_ViewProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Core_PiecewiseFunctionProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Core_ProxyManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Core_ProxyManager.html + https://kitware.github.io/vtk-js/api/Proxy_Core_LookupTableProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Animation_AbstractAnimationProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Core_AbstractRepresentationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Animation_AnimationProxyManager.html + https://kitware.github.io/vtk-js/api/Proxy_Core_PiecewiseFunctionProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Animation_TimeStepBasedAnimationHandlerProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Animation_AbstractAnimationProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Core_AbstractRepresentationProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Animation_AnimationProxyManager.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Proxy_Core_LookupTableProxy.html + https://kitware.github.io/vtk-js/api/Proxy_Animation_TimeStepBasedAnimationHandlerProxy.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3307,7 +3307,7 @@ https://kitware.github.io/vtk-js/api/IO_XML_XMLPolyDataReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3316,7 +3316,7 @@ https://kitware.github.io/vtk-js/api/IO_XML_XMLPolyDataWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3325,7 +3325,7 @@ https://kitware.github.io/vtk-js/api/IO_XML_XMLReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3334,7 +3334,7 @@ https://kitware.github.io/vtk-js/api/IO_XML_XMLWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3343,16 +3343,7 @@ https://kitware.github.io/vtk-js/api/IO_Misc_SkyboxReader.html - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/api/IO_Misc_PDBReader.html - - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3361,7 +3352,7 @@ https://kitware.github.io/vtk-js/api/IO_XML_XMLImageDataReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3370,79 +3361,79 @@ https://kitware.github.io/vtk-js/api/IO_XML_XMLImageDataWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Misc_JSONReader.html + https://kitware.github.io/vtk-js/api/IO_Misc_MTLReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Misc_MTLReader.html + https://kitware.github.io/vtk-js/api/IO_Misc_OBJReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Misc_OBJReader.html + https://kitware.github.io/vtk-js/api/IO_Misc_PDBReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Misc_GCodeReader.html + https://kitware.github.io/vtk-js/api/IO_Misc_HttpDataSetLODsLoader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Misc_HttpDataSetLODsLoader.html + https://kitware.github.io/vtk-js/api/IO_Misc_ITKImageReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Misc_ITKImageReader.html + https://kitware.github.io/vtk-js/api/IO_Misc_ITKPolyDataReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Misc_ITKPolyDataReader.html + https://kitware.github.io/vtk-js/api/IO_Misc_JSONNucleoReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Misc_JSONNucleoReader.html + https://kitware.github.io/vtk-js/api/IO_Misc_JSONReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3451,7 +3442,7 @@ https://kitware.github.io/vtk-js/api/IO_Image_TGAReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3460,7 +3451,7 @@ https://kitware.github.io/vtk-js/api/IO_Legacy_LegacyAsciiParser.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3469,7 +3460,7 @@ https://kitware.github.io/vtk-js/api/IO_Legacy_PolyDataReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3478,7 +3469,16 @@ https://kitware.github.io/vtk-js/api/IO_Misc_ElevationReader.html - 2024-11-13 + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/api/IO_Misc_GCodeReader.html + + 2024-11-20 monthly 0.6 @@ -3487,7 +3487,7 @@ https://kitware.github.io/vtk-js/api/IO_Geometry_STLReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3496,7 +3496,7 @@ https://kitware.github.io/vtk-js/api/IO_Geometry_STLWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3505,7 +3505,7 @@ https://kitware.github.io/vtk-js/api/IO_Image_HDRReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3514,25 +3514,25 @@ https://kitware.github.io/vtk-js/api/IO_Geometry_PLYReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Geometry_GLTFImporter.html + https://kitware.github.io/vtk-js/api/IO_Geometry_PLYWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/IO_Geometry_PLYWriter.html + https://kitware.github.io/vtk-js/api/IO_Geometry_GLTFImporter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3541,7 +3541,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_WSLinkClient.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3550,7 +3550,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_ZipMultiDataSetReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3559,7 +3559,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_ZipMultiDataSetWriter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3568,7 +3568,7 @@ https://kitware.github.io/vtk-js/api/IO_Geometry_DracoReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3577,7 +3577,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_ImageStream.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3586,7 +3586,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_ResourceLoader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3595,7 +3595,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_Serializer.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3604,7 +3604,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_DataAccessHelper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3613,7 +3613,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_HttpDataSetReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3622,7 +3622,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_HttpDataSetSeriesReader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3631,7 +3631,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_HttpSceneLoader.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3640,7 +3640,7 @@ https://kitware.github.io/vtk-js/api/IO_Core_BinaryHelper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3649,7 +3649,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Widgets_OrientationMarkerWidget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3658,7 +3658,16 @@ https://kitware.github.io/vtk-js/api/Interaction_Widgets_PiecewiseGaussianWidget.html - 2024-11-13 + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/api/Interaction_UI_FPSMonitor.html + + 2024-11-20 monthly 0.6 @@ -3667,7 +3676,7 @@ https://kitware.github.io/vtk-js/api/Interaction_UI_Icons.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3676,7 +3685,7 @@ https://kitware.github.io/vtk-js/api/Interaction_UI_Slider.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3685,7 +3694,7 @@ https://kitware.github.io/vtk-js/api/Interaction_UI_VolumeController.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3694,7 +3703,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleTrackballCamera.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3703,7 +3712,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleUnicam.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3712,160 +3721,160 @@ https://kitware.github.io/vtk-js/api/Interaction_UI_CornerAnnotation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_UI_FPSMonitor.html + https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleImage.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleHMDXR.html + https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleMPRSlice.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleImage.html + https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleMPRSlice.html + https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleRemoteMouse.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleRemoteMouse.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraUnicamRotateManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_VRButtonPanManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraUnicamManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseRangeManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraUnicamRotateManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Style_InteractorStyleHMDXR.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseRangeManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Misc_DeviceOrientationToCamera.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_VRButtonPanManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballRotateManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Misc_DeviceOrientationToCamera.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballZoomManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballRotateManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballZoomToMouseManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballZoomManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraUnicamManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballZoomToMouseManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballMultiRotateManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballMultiRotateManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballPanManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballPanManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballRollManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballRollManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_KeyboardCameraManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3874,7 +3883,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseBoxSelectorManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3883,7 +3892,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraAxisRotateManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3892,7 +3901,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraSliceManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3901,7 +3910,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Manipulators_MouseCameraTrackballFirstPersonManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3910,34 +3919,34 @@ https://kitware.github.io/vtk-js/api/Interaction_Manipulators_CompositeMouseManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_CompositeVRManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_CompositeKeyboardManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_GestureCameraManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_CompositeVRManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_KeyboardCameraManipulator.html + https://kitware.github.io/vtk-js/api/Interaction_Manipulators_GestureCameraManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3946,7 +3955,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Manipulators_3DControllerModelSelectorManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3955,7 +3964,7 @@ https://kitware.github.io/vtk-js/api/Interaction_Manipulators_CompositeCameraManipulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3964,25 +3973,16 @@ https://kitware.github.io/vtk-js/api/Interaction_Manipulators_CompositeGestureManipulator.html - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/api/Interaction_Manipulators_CompositeKeyboardManipulator.html - - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Interaction_Animations_TimeStepBasedAnimationHandler.html + https://kitware.github.io/vtk-js/api/Imaging_Core_ImageReslice.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -3991,16 +3991,16 @@ https://kitware.github.io/vtk-js/api/Imaging_Hybrid_SampleFunction.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Imaging_Core_ImageReslice.html + https://kitware.github.io/vtk-js/api/Interaction_Animations_TimeStepBasedAnimationHandler.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4009,7 +4009,7 @@ https://kitware.github.io/vtk-js/api/Filters_Texture_TextureMapToSphere.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4018,7 +4018,7 @@ https://kitware.github.io/vtk-js/api/Imaging_Core_AbstractImageInterpolator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4027,7 +4027,7 @@ https://kitware.github.io/vtk-js/api/Imaging_Core_ImageInterpolator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4036,7 +4036,7 @@ https://kitware.github.io/vtk-js/api/Imaging_Core_ImagePointDataIterator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4045,7 +4045,7 @@ https://kitware.github.io/vtk-js/api/Filters_Sources_SLICSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4054,7 +4054,7 @@ https://kitware.github.io/vtk-js/api/Filters_Sources_SphereSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4063,7 +4063,7 @@ https://kitware.github.io/vtk-js/api/Filters_Sources_ViewFinderSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4072,142 +4072,142 @@ https://kitware.github.io/vtk-js/api/Filters_Texture_TextureMapToPlane.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_PlaneSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_LineSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_PointSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_PlaneSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_RTAnalyticSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_PointSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_Cursor3D.html + https://kitware.github.io/vtk-js/api/Filters_Sources_RTAnalyticSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_CylinderSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_CubeSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_ImageGridSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_Cursor3D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_LineSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_CylinderSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_CircleSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_ImageGridSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_ConcentricCylinderSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_ArrowSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_ConeSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_CircleSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_CubeSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_ConcentricCylinderSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_WarpScalar.html + https://kitware.github.io/vtk-js/api/Filters_Sources_ConeSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_WindowedSincPolyDataFilter.html + https://kitware.github.io/vtk-js/api/Filters_General_WarpScalar.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_Arrow2DSource.html + https://kitware.github.io/vtk-js/api/Filters_General_WindowedSincPolyDataFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Sources_ArrowSource.html + https://kitware.github.io/vtk-js/api/Filters_Sources_Arrow2DSource.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4216,7 +4216,7 @@ https://kitware.github.io/vtk-js/api/Filters_General_ScalarToRGBA.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4225,16 +4225,7 @@ https://kitware.github.io/vtk-js/api/Filters_General_TriangleFilter.html - 2024-11-13 - - monthly - 0.6 - - - - https://kitware.github.io/vtk-js/api/Filters_General_PaintFilter.html - - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4243,25 +4234,25 @@ https://kitware.github.io/vtk-js/api/Filters_General_TubeFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_LineFilter.html + https://kitware.github.io/vtk-js/api/Filters_General_MoleculeToRepresentation.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_MoleculeToRepresentation.html + https://kitware.github.io/vtk-js/api/Filters_General_OBBTree.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4270,16 +4261,16 @@ https://kitware.github.io/vtk-js/api/Filters_General_OutlineFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_OBBTree.html + https://kitware.github.io/vtk-js/api/Filters_General_PaintFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4288,7 +4279,7 @@ https://kitware.github.io/vtk-js/api/Filters_General_ImageOutlineFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4297,7 +4288,7 @@ https://kitware.github.io/vtk-js/api/Filters_General_ImageSliceFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4306,34 +4297,34 @@ https://kitware.github.io/vtk-js/api/Filters_General_ImageStreamline.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_ImageCropFilter.html + https://kitware.github.io/vtk-js/api/Filters_General_LineFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_ImageDataOutlineFilter.html + https://kitware.github.io/vtk-js/api/Filters_General_ImageCropFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_ImageMarchingSquares.html + https://kitware.github.io/vtk-js/api/Filters_General_ImageDataOutlineFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4342,25 +4333,25 @@ https://kitware.github.io/vtk-js/api/Filters_General_ImageMarchingCubes.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_ClosedPolyLineToSurfaceFilter.html + https://kitware.github.io/vtk-js/api/Filters_General_ImageMarchingSquares.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_ClipClosedSurface.html + https://kitware.github.io/vtk-js/api/Filters_General_ClosedPolyLineToSurfaceFilter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4369,7 +4360,7 @@ https://kitware.github.io/vtk-js/api/Filters_General_ContourLoopExtraction.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4378,34 +4369,34 @@ https://kitware.github.io/vtk-js/api/Filters_General_ContourTriangulator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_Cornerstone_ImageDataToCornerstoneImage.html + https://kitware.github.io/vtk-js/api/Filters_General_AppendPolyData.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_AppendPolyData.html + https://kitware.github.io/vtk-js/api/Filters_General_Calculator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Filters_General_Calculator.html + https://kitware.github.io/vtk-js/api/Filters_General_ClipClosedSurface.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4414,7 +4405,7 @@ https://kitware.github.io/vtk-js/api/Common_Transform_LandmarkTransform.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4423,7 +4414,7 @@ https://kitware.github.io/vtk-js/api/Common_Transform_Transform.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4432,7 +4423,7 @@ https://kitware.github.io/vtk-js/api/Filters_Core_Cutter.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4441,16 +4432,16 @@ https://kitware.github.io/vtk-js/api/Filters_Core_PolyDataNormals.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_StructuredData.html + https://kitware.github.io/vtk-js/api/Filters_Cornerstone_ImageDataToCornerstoneImage.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4459,7 +4450,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_Triangle.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4468,7 +4459,7 @@ https://kitware.github.io/vtk-js/api/Common_System_MobileVR.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4477,187 +4468,187 @@ https://kitware.github.io/vtk-js/api/Common_System_TimerLog.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Sphere.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Spline1D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Spline1D.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Spline3D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Spline3D.html + https://kitware.github.io/vtk-js/api/Common_DataModel_StructuredData.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Polygon.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Quad.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Quad.html + https://kitware.github.io/vtk-js/api/Common_DataModel_SelectionNode.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_SelectionNode.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Sphere.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_PointSet.html + https://kitware.github.io/vtk-js/api/Common_DataModel_PolyData.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_PolyData.html + https://kitware.github.io/vtk-js/api/Common_DataModel_PolyLine.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_PolyLine.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Polygon.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Locator.html + https://kitware.github.io/vtk-js/api/Common_DataModel_PiecewiseFunction.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Molecule.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Plane.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_PiecewiseFunction.html + https://kitware.github.io/vtk-js/api/Common_DataModel_PointSet.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Plane.html + https://kitware.github.io/vtk-js/api/Common_DataModel_KochanekSpline1D.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_IncrementalOctreeNode.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Line.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_IncrementalOctreePointLocator.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Locator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_KochanekSpline1D.html + https://kitware.github.io/vtk-js/api/Common_DataModel_Molecule.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_Line.html + https://kitware.github.io/vtk-js/api/Common_DataModel_ImplicitBoolean.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_ImageData.html + https://kitware.github.io/vtk-js/api/Common_DataModel_ImplicitFunction.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_ImplicitBoolean.html + https://kitware.github.io/vtk-js/api/Common_DataModel_IncrementalOctreeNode.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_ImplicitFunction.html + https://kitware.github.io/vtk-js/api/Common_DataModel_IncrementalOctreePointLocator.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4666,7 +4657,16 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_DataSetAttributes.html - 2024-11-13 + 2024-11-20 + + monthly + 0.6 + + + + https://kitware.github.io/vtk-js/api/Common_DataModel_ITKHelper.html + + 2024-11-20 monthly 0.6 @@ -4675,16 +4675,16 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_EdgeLocator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_ITKHelper.html + https://kitware.github.io/vtk-js/api/Common_DataModel_ImageData.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4693,7 +4693,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_Cylinder.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4702,7 +4702,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_DataSet.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4711,7 +4711,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_CellTypes.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4720,7 +4720,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_Collection.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4729,7 +4729,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_Cone.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4738,7 +4738,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_Box.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4747,7 +4747,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_CardinalSpline1D.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4756,7 +4756,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_Cell.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4765,25 +4765,25 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_CellLinks.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_Core_VariantArray.html + https://kitware.github.io/vtk-js/api/Common_DataModel_AbstractPointLocator.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_DataModel_AbstractPointLocator.html + https://kitware.github.io/vtk-js/api/Common_Core_VariantArray.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4792,7 +4792,7 @@ https://kitware.github.io/vtk-js/api/Common_DataModel_BoundingBox.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4801,7 +4801,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_ScalarsToColors.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4810,7 +4810,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_StringArray.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4819,7 +4819,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_URLExtract.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4828,7 +4828,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_Points.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4837,7 +4837,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_PriorityQueue.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4846,7 +4846,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_ProgressHandler.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4855,7 +4855,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_MatrixBuilder.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4864,7 +4864,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_Math.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4873,7 +4873,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_HalfFloat.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4882,7 +4882,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_ImageHelper.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4891,25 +4891,25 @@ https://kitware.github.io/vtk-js/api/Common_Core_LookupTable.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_Core_DataArray.html + https://kitware.github.io/vtk-js/api/Common_Core_Endian.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/api/Common_Core_Endian.html + https://kitware.github.io/vtk-js/api/Common_Core_DataArray.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4918,7 +4918,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_Base64.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4927,7 +4927,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_CellArray.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4936,7 +4936,7 @@ https://kitware.github.io/vtk-js/api/Common_Core_ClassHierarchy.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -4945,286 +4945,286 @@ https://kitware.github.io/vtk-js/index.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/structures_PolyData.html + https://kitware.github.io/vtk-js/examples/index.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/structures_StringArray.html + https://kitware.github.io/vtk-js/docs/index.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/structures_Table.html + https://kitware.github.io/vtk-js/docs/intro_vtk_as_es6_dependency.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/structures_UnstructuredGrid.html + https://kitware.github.io/vtk-js/docs/intro_vtk_as_external_script.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/tutorial.html + https://kitware.github.io/vtk-js/docs/misc_contributing.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/vtk-js-demo.html + https://kitware.github.io/vtk-js/docs/misc_tools.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/vtk_react.html + https://kitware.github.io/vtk-js/docs/misc_troubleshooting.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/vtk_vanilla.html + https://kitware.github.io/vtk-js/docs/old_intro_vtk_es6.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/vtk_vue.html + https://kitware.github.io/vtk-js/docs/structures.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/examples/index.html + https://kitware.github.io/vtk-js/docs/structures_DataArray.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/index.html + https://kitware.github.io/vtk-js/docs/structures_ParametricDataset.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/intro_vtk_as_es6_dependency.html + https://kitware.github.io/vtk-js/docs/structures_MultiBlock.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/intro_vtk_as_external_script.html + https://kitware.github.io/vtk-js/docs/structures_PolyData.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/misc_contributing.html + https://kitware.github.io/vtk-js/docs/structures_StringArray.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/misc_tools.html + https://kitware.github.io/vtk-js/docs/structures_Table.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/misc_troubleshooting.html + https://kitware.github.io/vtk-js/docs/structures_UnstructuredGrid.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/old_intro_vtk_es6.html + https://kitware.github.io/vtk-js/docs/tutorial.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/structures.html + https://kitware.github.io/vtk-js/docs/vtk-js-demo.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/structures_DataArray.html + https://kitware.github.io/vtk-js/docs/vtk_vanilla.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/structures_ParametricDataset.html + https://kitware.github.io/vtk-js/docs/vtk_react.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/structures_MultiBlock.html + https://kitware.github.io/vtk-js/docs/vtk_vue.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/develop_class.html + https://kitware.github.io/vtk-js/docs/concepts_widgets.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/develop_example.html + https://kitware.github.io/vtk-js/docs/develop_build.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/develop_requirement.html + https://kitware.github.io/vtk-js/coverage/home.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/develop_test.html + https://kitware.github.io/vtk-js/docs/develop_class.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/develop_webgpu.html + https://kitware.github.io/vtk-js/docs/develop_requirement.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/develop_webxr.html + https://kitware.github.io/vtk-js/docs/develop_example.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/develop_widget.html + https://kitware.github.io/vtk-js/docs/develop_test.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/coverage/home.html + https://kitware.github.io/vtk-js/docs/develop_webgpu.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/concepts_widgets.html + https://kitware.github.io/vtk-js/docs/develop_webxr.html - 2024-11-13 + 2024-11-20 monthly 0.6 - https://kitware.github.io/vtk-js/docs/develop_build.html + https://kitware.github.io/vtk-js/docs/develop_widget.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -5233,7 +5233,7 @@ https://kitware.github.io/vtk-js/api/index.html - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -5242,7 +5242,7 @@ https://kitware.github.io/vtk-js/2016/04/29/kw-doc/ - 2024-11-13 + 2024-11-20 monthly 0.6 @@ -5251,7 +5251,7 @@ https://kitware.github.io/vtk-js - 2024-11-13 + 2024-11-20 daily 1.0