class_docstr: 3D affine transform widget.
  
  This widget allows interactive transformations including translation and
  rotation using the left mouse button.
  
  Parameters
  ----------
  plotter : pyvista.Plotter
      The plotter object.
  actor : pyvista.Actor
      The actor to which the widget is attached to.
  origin : sequence[float], optional
      Origin of the widget. Default is the center of the main actor.
  start : bool, default: True
      If True, start the widget immediately.
  scale : float, default: 0.15
      Scale factor for the widget relative to the length of the actor.
  line_radius : float, default: 0.02
      Relative radius of the lines composing the widget.
  always_visible : bool, default: True
      Make the widget always visible. Setting this to ``False`` will cause
      the widget geometry to be hidden by other actors in the plotter.
  axes_colors : tuple[ColorLike], optional
      Uses the theme by default. Configure the individual axis colors by
      modifying either the theme with ``pyvista.global_theme.axes.x_color =
      <COLOR>`` or setting this with a ``tuple`` as in ``('r', 'g', 'b')``.
  axes : numpy.ndarray, optional
      ``(3, 3)`` Numpy array defining the X, Y, and Z axes. By default this
      matches the default coordinate system.
  release_callback : callable, optional
      Call this method when releasing the left mouse button. It is passed the
      ``user_matrix`` of the actor.
  interact_callback : callable, optional
      Call this method when moving the mouse with the left mouse button
      pressed down and a valid movement actor selected. It is passed the
      ``user_matrix`` of the actor.
  
  Notes
  -----
  After interacting with the actor, the transform will be stored within
  :attr:`pyvista.Actor.user_matrix` but will not be applied to the
  dataset. Use this matrix in conjunction with
  :func:`pyvista.DataSetFilters.transform` to transform the dataset.
  
  Requires VTK >= v9.2
  
  Examples
  --------
  Create the affine widget outside of the plotter and add it.
  
  >>> import pyvista as pv
  >>> pl = pv.Plotter()
  >>> actor = pl.add_mesh(pv.Sphere())
  >>> widget = pv.AffineWidget3D(pl, actor)
  >>> pl.show()
  
  Access the transform from the actor.
  
  >>> actor.user_matrix
  array([[1., 0., 0., 0.],
         [0., 1., 0., 0.],
         [0., 0., 1., 0.],
         [0., 0., 0., 1.]])
class_docstr_tok: ["3D","affine","transform","widget",".","This","widget","allows","interactive","transformations","including","translation","and","rotation","using","the","left","mouse","button",".","Parameters","--","--","--","--","--","plotter",":","pyvista.Plotter","The","plotter","object",".","actor",":","pyvista.Actor","The","actor","to","which","the","widget","is","attached","to",".","origin",":","sequence","[","float","]",",","optional","Origin","of","the","widget",".","Default","is","the","center","of","the","main","actor",".","start",":","bool",",","default",":","True","If","True",",","start","the","widget","immediately",".","scale",":","float",",","default",":","0.15","Scale","factor","for","the","widget","relative","to","the","length","of","the","actor",".","line_radius",":","float",",","default",":","0.02","Relative","radius","of","the","lines","composing","the","widget",".","always_visible",":","bool",",","default",":","True","Make","the","widget","always","visible",".","Setting","this","to","``","False","``","will","cause","the","widget","geometry","to","be","hidden","by","other","actors","in","the","plotter",".","axes_colors",":","tuple","[","ColorLike","]",",","optional","Uses","the","theme","by","default",".","Configure","the","individual","axis","colors","by","modifying","either","the","theme","with","``","pyvista.global_theme.axes.x_color","=","<","COLOR",">","``","or","setting","this","with","a","``","tuple","``","as","in","``","(","'","r","'",",","'","g","'",",","'","b","'",")","``",".","axes",":","numpy.ndarray",",","optional","``","(","3",",","3",")","``","Numpy","array","defining","the","X",",","Y",",","and","Z","axes",".","By","default","this","matches","the","default","coordinate","system",".","release_callback",":","callable",",","optional","Call","this","method","when","releasing","the","left","mouse","button",".","It","is","passed","the","``","user_matrix","``","of","the","actor",".","interact_callback",":","callable",",","optional","Call","this","method","when","moving","the","mouse","with","the","left","mouse","button","pressed","down","and","a","valid","movement","actor","selected",".","It","is","passed","the","``","user_matrix","``","of","the","actor",".","Notes","--","--","-","After","interacting","with","the","actor",",","the","transform","will","be","stored","within",":","attr",":","`","pyvista.Actor.user_matrix","`","but","will","not","be","applied","to","the","dataset",".","Use","this","matrix","in","conjunction","with",":","func",":","`","pyvista.DataSetFilters.transform","`","to","transform","the","dataset",".","Requires","VTK",">","=","v9.2","Examples","--","--","--","--","Create","the","affine","widget","outside","of","the","plotter","and","add","it",".",">",">",">","import","pyvista","as","pv",">",">",">","pl","=","pv.Plotter","(",")",">",">",">","actor","=","pl.add_mesh","(","pv.Sphere","(",")",")",">",">",">","widget","=","pv.AffineWidget3D","(","pl",",","actor",")",">",">",">","pl.show","(",")","Access","the","transform","from","the","actor",".",">",">",">","actor.user_matrix","array","(","[","[","1.",",","0.",",","0.",",","0",".","]",",","[","0.",",","1.",",","0.",",","0",".","]",",","[","0.",",","0.",",","1.",",","0",".","]",",","[","0.",",","0.",",","0.",",","1",".","]","]",")"]
docstr: Reset the actor and cached transform.
docstr_tok: ["Reset","the","actor","and","cached","transform","."]
code: def _reset(self):
      """Reset the actor and cached transform."""
      self._main_actor.user_matrix = np.eye(4)
      self._cached_matrix = np.eye(4)
  
imports: import numpy
  import pyvista
  from pyvista.core.errors import VTKVersionError
  from pyvista.core.utilities.misc import try_callback
  from .None import _vtk
label_desc: Use image node_id 8 for calling the AffineWidget3D obj's underlying member method code with example usage: obj._reset() without return types