class_docstr: PyVista wrapper for the VTK Camera class.
  
  Parameters
  ----------
  renderer : pyvista.Renderer, optional
      Renderer to attach the camera to.
  
  Examples
  --------
  Create a camera at the pyvista module level.
  
  >>> import pyvista as pv
  >>> camera = pv.Camera()
  
  Access the active camera of a plotter and get the position of the
  camera.
  
  >>> pl = pv.Plotter()
  >>> pl.camera.position
  (1.0, 1.0, 1.0)
class_docstr_tok: ["PyVista","wrapper","for","the","VTK","Camera","class",".","Parameters","--","--","--","--","--","renderer",":","pyvista.Renderer",",","optional","Renderer","to","attach","the","camera","to",".","Examples","--","--","--","--","Create","a","camera","at","the","pyvista","module","level",".",">",">",">","import","pyvista","as","pv",">",">",">","camera","=","pv.Camera","(",")","Access","the","active","camera","of","a","plotter","and","get","the","position","of","the","camera",".",">",">",">","pl","=","pv.Plotter","(",")",">",">",">","pl.camera.position","(","1.0",",","1.0",",","1.0",")"]
docstr: Return or set the camera's model transformation matrix.
  
  Examples
  --------
  >>> import pyvista as pv
  >>> import numpy as np
  >>> pl = pv.Plotter()
  >>> pl.camera.model_transform_matrix
  array([[1., 0., 0., 0.],
         [0., 1., 0., 0.],
         [0., 0., 1., 0.],
         [0., 0., 0., 1.]])
  >>> pl.camera.model_transform_matrix = np.array(
  ...     [
  ...         [1.0, 0.0, 0.0, 0.0],
  ...         [0.0, 1.0, 0.0, 0.0],
  ...         [0.0, 0.0, 1.0, 0.0],
  ...         [0.0, 0.0, 0.0, 0.5],
  ...     ]
  ... )
  >>>
  array([[1., 0., 0., 0.],
         [0., 1., 0., 0.],
         [0., 0., 1., 0.],
         [0., 0., 0., 0.5]])
code: def model_transform_matrix(self):  # numpydoc ignore=RT01
      """Return or set the camera's model transformation matrix.
  
      Examples
      --------
      >>> import pyvista as pv
      >>> import numpy as np
      >>> pl = pv.Plotter()
      >>> pl.camera.model_transform_matrix
      array([[1., 0., 0., 0.],
             [0., 1., 0., 0.],
             [0., 0., 1., 0.],
             [0., 0., 0., 1.]])
      >>> pl.camera.model_transform_matrix = np.array(
      ...     [
      ...         [1.0, 0.0, 0.0, 0.0],
      ...         [0.0, 1.0, 0.0, 0.0],
      ...         [0.0, 0.0, 1.0, 0.0],
      ...         [0.0, 0.0, 0.0, 0.5],
      ...     ]
      ... )
      >>>
      array([[1., 0., 0., 0.],
             [0., 1., 0., 0.],
             [0., 0., 1., 0.],
             [0., 0., 0., 0.5]])
  
      """
      vtk_matrix = self.GetModelTransformMatrix()
      matrix = np.empty((4, 4))
      vtk_matrix.DeepCopy(matrix.ravel(), vtk_matrix)
      return matrix
  
imports: from __future__ import annotations
  from pathlib import Path
  from typing import Union
  from weakref import proxy
  import xml.dom.minidom
  from xml.etree import ElementTree
  import numpy
  import pyvista
  from .None import _vtk
  from .helpers import view_vectors
label_desc: Use image node_id 14 for calling the Camera obj's underlying member method code with example usage: obj.model_transform_matrix() and returns: matrix