class_docstr: An internal class to manage widgets.
  
  It also manages and other helper methods involving widgets.
class_docstr_tok: ["An","internal","class","to","manage","widgets",".","It","also","manages","and","other","helper","methods","involving","widgets","."]
docstr: Slice a mesh with three interactive planes.
  
  Adds three interactive plane slicing widgets for orthogonal slicing
  along each cartesian axis.
  
  Parameters
  ----------
  mesh : pyvista.DataSet or vtk.vtkAlgorithm
      The input dataset to add to the scene and threshold or algorithm
      that produces said mesh.
  
  generate_triangles : bool, optional
      If this is enabled (``False`` by default), the output will be
      triangles otherwise, the output will be the intersection polygons.
  
  widget_color : ColorLike, optional
      Color of the widget.  Either a string, RGB sequence, or
      hex color string.  For example:
  
      * ``color='white'``
      * ``color='w'``
      * ``color=[1.0, 1.0, 1.0]``
      * ``color='#FFFFFF'``
  
  tubing : bool, optional
      When using an implicit plane wiget, this controls whether or not
      tubing is shown around the plane's boundaries.
  
  interaction_event : vtk.vtkCommand.EventIds, optional
      The VTK interaction event to use for triggering the callback.
  
  **kwargs : dict, optional
      All additional keyword arguments are passed to
      :func:`Plotter.add_mesh` to control how the mesh is
      displayed.
  
  Returns
  -------
  list
      List of vtk.vtkActor(s).
  
  Examples
  --------
  Shows an interactive plane sliced along each cartesian axis of the mesh.
  
  >>> import pyvista as pv
  >>> pl = pv.Plotter()
  >>> mesh = pv.Wavelet()
  >>> _ = pl.add_mesh(mesh.outline())
  >>> _ = pl.add_mesh_slice_orthogonal(mesh)
  >>> pl.show()
docstr_tok: ["Slice","a","mesh","with","three","interactive","planes",".","Adds","three","interactive","plane","slicing","widgets","for","orthogonal","slicing","along","each","cartesian","axis",".","Parameters","--","--","--","--","--","mesh",":","pyvista.DataSet","or","vtk.vtkAlgorithm","The","input","dataset","to","add","to","the","scene","and","threshold","or","algorithm","that","produces","said","mesh",".","generate_triangles",":","bool",",","optional","If","this","is","enabled","(","``","False","``","by","default",")",",","the","output","will","be","triangles","otherwise",",","the","output","will","be","the","intersection","polygons",".","widget_color",":","ColorLike",",","optional","Color","of","the","widget",".","Either","a","string",",","RGB","sequence",",","or","hex","color","string",".","For","example",":","*","``","color='white","'","``","*","``","color=","'","w","'","``","*","``","color=","[","1.0",",","1.0",",","1.0","]","``","*","``","color=","'","#","FFFFFF","'","``","tubing",":","bool",",","optional","When","using","an","implicit","plane","wiget",",","this","controls","whether","or","not","tubing","is","shown","around","the","plane","'s","boundaries",".","interaction_event",":","vtk.vtkCommand.EventIds",",","optional","The","VTK","interaction","event","to","use","for","triggering","the","callback",".","*","*","kwargs",":","dict",",","optional","All","additional","keyword","arguments","are","passed","to",":","func",":","`","Plotter.add_mesh","`","to","control","how","the","mesh","is","displayed",".","Returns","--","--","--","-","list","List","of","vtk.vtkActor","(","s",")",".","Examples","--","--","--","--","Shows","an","interactive","plane","sliced","along","each","cartesian","axis","of","the","mesh",".",">",">",">","import","pyvista","as","pv",">",">",">","pl","=","pv.Plotter","(",")",">",">",">","mesh","=","pv.Wavelet","(",")",">",">",">","_","=","pl.add_mesh","(","mesh.outline","(",")",")",">",">",">","_","=","pl.add_mesh_slice_orthogonal","(","mesh",")",">",">",">","pl.show","(",")"]
code: def add_mesh_slice_orthogonal(
      self,
      mesh,
      generate_triangles=False,
      widget_color=None,
      tubing=False,
      interaction_event=_vtk.vtkCommand.EndInteractionEvent,
      **kwargs,
  ):
      """Slice a mesh with three interactive planes.
  
      Adds three interactive plane slicing widgets for orthogonal slicing
      along each cartesian axis.
  
      Parameters
      ----------
      mesh : pyvista.DataSet or vtk.vtkAlgorithm
          The input dataset to add to the scene and threshold or algorithm
          that produces said mesh.
  
      generate_triangles : bool, optional
          If this is enabled (``False`` by default), the output will be
          triangles otherwise, the output will be the intersection polygons.
  
      widget_color : ColorLike, optional
          Color of the widget.  Either a string, RGB sequence, or
          hex color string.  For example:
  
          * ``color='white'``
          * ``color='w'``
          * ``color=[1.0, 1.0, 1.0]``
          * ``color='#FFFFFF'``
  
      tubing : bool, optional
          When using an implicit plane wiget, this controls whether or not
          tubing is shown around the plane's boundaries.
  
      interaction_event : vtk.vtkCommand.EventIds, optional
          The VTK interaction event to use for triggering the callback.
  
      **kwargs : dict, optional
          All additional keyword arguments are passed to
          :func:`Plotter.add_mesh` to control how the mesh is
          displayed.
  
      Returns
      -------
      list
          List of vtk.vtkActor(s).
  
      Examples
      --------
      Shows an interactive plane sliced along each cartesian axis of the mesh.
  
      >>> import pyvista as pv
      >>> pl = pv.Plotter()
      >>> mesh = pv.Wavelet()
      >>> _ = pl.add_mesh(mesh.outline())
      >>> _ = pl.add_mesh_slice_orthogonal(mesh)
      >>> pl.show()
  
      """
      actors = []
      name = kwargs.pop("name", None)
      for ax in ["x", "y", "z"]:
          axkwargs = kwargs.copy()
          if name:
              axkwargs["name"] = f"{name}-{ax}"
          a = self.add_mesh_slice(
              mesh,
              assign_to_axis=ax,
              origin_translation=False,
              outline_translation=False,
              generate_triangles=generate_triangles,
              widget_color=widget_color,
              tubing=tubing,
              interaction_event=interaction_event,
              **axkwargs,
          )
          actors.append(a)
  
      return actors
  
imports: import pathlib
  from typing import Optional, Sequence, Tuple, Union
  import numpy
  import pyvista
  from pyvista.core.utilities.arrays import get_array, get_array_association
  from pyvista.core.utilities.geometric_objects import NORMALS
  from pyvista.core.utilities.helpers import generate_plane
  from pyvista.core.utilities.misc import assert_empty_kwargs, try_callback
  from .None import _vtk
  from .affine_widget import AffineWidget3D
  from .colors import Color
  from .opts import PickerType
  from .utilities.algorithms import add_ids_algorithm, algorithm_to_mesh_handler, crinkle_algorithm, outline_algorithm, pointset_to_polydata_algorithm, set_algorithm_input
label_desc: Use image node_id 10 for calling the WidgetHelper obj's underlying member method code with example usage: obj.add_mesh_slice_orthogonal(mesh, generate_triangles, widget_color, tubing, interaction_event) and returns: actors