docstr: Construct a new Lighting object
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of
      :class:`plotly.graph_objs.volume.Lighting`
  ambient
      Ambient light increases overall color visibility but
      can wash out the image.
  diffuse
      Represents the extent that incident rays are reflected
      in a range of angles.
  facenormalsepsilon
      Epsilon for face normals calculation avoids math issues
      arising from degenerate geometry.
  fresnel
      Represents the reflectance as a dependency of the
      viewing angle; e.g. paper is reflective when viewing it
      from the edge of the paper (almost 90 degrees), causing
      shine.
  roughness
      Alters specular reflection; the rougher the surface,
      the wider and less contrasty the shine.
  specular
      Represents the level that incident rays are reflected
      in a single direction, causing shine.
  vertexnormalsepsilon
      Epsilon for vertex normals calculation avoids math
      issues arising from degenerate geometry.
  
  Returns
  -------
  Lighting
docstr_tok: ["Construct","a","new","Lighting","object","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.volume.Lighting","`","ambient","Ambient","light","increases","overall","color","visibility","but","can","wash","out","the","image",".","diffuse","Represents","the","extent","that","incident","rays","are","reflected","in","a","range","of","angles",".","facenormalsepsilon","Epsilon","for","face","normals","calculation","avoids","math","issues","arising","from","degenerate","geometry",".","fresnel","Represents","the","reflectance","as","a","dependency","of","the","viewing","angle",";","e.g",".","paper","is","reflective","when","viewing","it","from","the","edge","of","the","paper","(","almost","90","degrees",")",",","causing","shine",".","roughness","Alters","specular","reflection",";","the","rougher","the","surface",",","the","wider","and","less","contrasty","the","shine",".","specular","Represents","the","level","that","incident","rays","are","reflected","in","a","single","direction",",","causing","shine",".","vertexnormalsepsilon","Epsilon","for","vertex","normals","calculation","avoids","math","issues","arising","from","degenerate","geometry",".","Returns","--","--","--","-","Lighting"]
code: def __init__(
      self,
      arg=None,
      ambient=None,
      diffuse=None,
      facenormalsepsilon=None,
      fresnel=None,
      roughness=None,
      specular=None,
      vertexnormalsepsilon=None,
      **kwargs,
  ):
      """
      Construct a new Lighting object
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of
          :class:`plotly.graph_objs.volume.Lighting`
      ambient
          Ambient light increases overall color visibility but
          can wash out the image.
      diffuse
          Represents the extent that incident rays are reflected
          in a range of angles.
      facenormalsepsilon
          Epsilon for face normals calculation avoids math issues
          arising from degenerate geometry.
      fresnel
          Represents the reflectance as a dependency of the
          viewing angle; e.g. paper is reflective when viewing it
          from the edge of the paper (almost 90 degrees), causing
          shine.
      roughness
          Alters specular reflection; the rougher the surface,
          the wider and less contrasty the shine.
      specular
          Represents the level that incident rays are reflected
          in a single direction, causing shine.
      vertexnormalsepsilon
          Epsilon for vertex normals calculation avoids math
          issues arising from degenerate geometry.
  
      Returns
      -------
      Lighting
      """
      super(Lighting, self).__init__("lighting")
  
      if "_parent" in kwargs:
          self._parent = kwargs["_parent"]
          return
  
      # Validate arg
      # ------------
      if arg is None:
          arg = {}
      elif isinstance(arg, self.__class__):
          arg = arg.to_plotly_json()
      elif isinstance(arg, dict):
          arg = _copy.copy(arg)
      else:
          raise ValueError(
              """\
  The first argument to the plotly.graph_objs.volume.Lighting
  constructor must be a dict or
  an instance of :class:`plotly.graph_objs.volume.Lighting`"""
          )
  
      # Handle skip_invalid
      # -------------------
      self._skip_invalid = kwargs.pop("skip_invalid", False)
      self._validate = kwargs.pop("_validate", True)
  
      # Populate data dict with properties
      # ----------------------------------
      _v = arg.pop("ambient", None)
      _v = ambient if ambient is not None else _v
      if _v is not None:
          self["ambient"] = _v
      _v = arg.pop("diffuse", None)
      _v = diffuse if diffuse is not None else _v
      if _v is not None:
          self["diffuse"] = _v
      _v = arg.pop("facenormalsepsilon", None)
      _v = facenormalsepsilon if facenormalsepsilon is not None else _v
      if _v is not None:
          self["facenormalsepsilon"] = _v
      _v = arg.pop("fresnel", None)
      _v = fresnel if fresnel is not None else _v
      if _v is not None:
          self["fresnel"] = _v
      _v = arg.pop("roughness", None)
      _v = roughness if roughness is not None else _v
      if _v is not None:
          self["roughness"] = _v
      _v = arg.pop("specular", None)
      _v = specular if specular is not None else _v
      if _v is not None:
          self["specular"] = _v
      _v = arg.pop("vertexnormalsepsilon", None)
      _v = (
          vertexnormalsepsilon
          if vertexnormalsepsilon is not None
          else _v
      )
      if _v is not None:
          self["vertexnormalsepsilon"] = _v
  
      # Process unknown kwargs
      # ----------------------
      self._process_kwargs(**dict(arg, **kwargs))
  
      # Reset skip_invalid
      # ------------------
      self._skip_invalid = False
  
file_path: plotly.py/packages/python/plotly/plotly/graph_objs/volume/_lighting.py
imports: from plotly.basedatatypes import BaseTraceHierarchyType
  import copy
label_desc: Use image node_id 16 to create a new Lighting object from inherited base classes: _BaseTraceHierarchyType with example: obj = Lighting(arg, ambient, diffuse, facenormalsepsilon, fresnel, roughness, specular, vertexnormalsepsilon)