U
    Y»{j¢#  ã                   @   s(   d dl mZ d dlZG dd„ deƒZdS )é    )ÚBaseTraceHierarchyTypeNc                       sú   e Zd ZdZdZddddddd	hZed
d„ ƒZejdd„ ƒZedd„ ƒZ	e	jdd„ ƒZ	edd„ ƒZ
e
jdd„ ƒZ
edd„ ƒZejdd„ ƒZedd„ ƒZejdd„ ƒZedd„ ƒZejdd„ ƒZedd„ ƒZejdd„ ƒZedd „ ƒZd$‡ fd"d#„	Z‡  ZS )%ÚLightingZ
streamtubezstreamtube.lightingÚambientÚdiffuseÚfacenormalsepsilonÚfresnelÚ	roughnessÚspecularÚvertexnormalsepsilonc                 C   s   | d S )a  
        Ambient light increases overall color visibility but can wash
        out the image.

        The 'ambient' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r   © ©Úselfr   r   úe/var/www/html/bwave/python/venv/lib/python3.8/site-packages/plotly/graph_objs/streamtube/_lighting.pyr      s    zLighting.ambientc                 C   s   || d< d S )Nr   r   ©r   Úvalr   r   r   r   &   s    c                 C   s   | d S )a  
        Represents the extent that incident rays are reflected in a
        range of angles.

        The 'diffuse' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r   r   r   r   r   r   r   ,   s    zLighting.diffusec                 C   s   || d< d S )Nr   r   r   r   r   r   r   ;   s    c                 C   s   | d S )a)  
        Epsilon for face normals calculation avoids math issues arising
        from degenerate geometry.

        The 'facenormalsepsilon' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r   r   r   r   r   r   r   A   s    zLighting.facenormalsepsilonc                 C   s   || d< d S )Nr   r   r   r   r   r   r   P   s    c                 C   s   | d S )au  
        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.

        The 'fresnel' property is a number and may be specified as:
          - An int or float in the interval [0, 5]

        Returns
        -------
        int|float
        r   r   r   r   r   r   r   V   s    zLighting.fresnelc                 C   s   || d< d S )Nr   r   r   r   r   r   r   f   s    c                 C   s   | d S )a#  
        Alters specular reflection; the rougher the surface, the wider
        and less contrasty the shine.

        The 'roughness' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r   r   r   r   r   r   r   l   s    zLighting.roughnessc                 C   s   || d< d S )Nr   r   r   r   r   r   r   {   s    c                 C   s   | d S )a!  
        Represents the level that incident rays are reflected in a
        single direction, causing shine.

        The 'specular' property is a number and may be specified as:
          - An int or float in the interval [0, 2]

        Returns
        -------
        int|float
        r	   r   r   r   r   r   r	   �   s    zLighting.specularc                 C   s   || d< d S )Nr	   r   r   r   r   r   r	   �   s    c                 C   s   | d S )a-  
        Epsilon for vertex normals calculation avoids math issues
        arising from degenerate geometry.

        The 'vertexnormalsepsilon' property is a number and may be specified as:
          - An int or float in the interval [0, 1]

        Returns
        -------
        int|float
        r
   r   r   r   r   r   r
   –   s    zLighting.vertexnormalsepsilonc                 C   s   || d< d S )Nr
   r   r   r   r   r   r
   ¥   s    c                 C   s   dS )Na          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.
        r   r   r   r   r   Ú_prop_descriptions«   s    zLighting._prop_descriptionsNc	                    sè  t t| ƒ d¡ d|	kr&|	d | _dS |dkr4i }n4t|| jƒrJ| ¡ }nt|tƒr`t 	|¡}nt
dƒ‚|	 dd¡| _|	 dd¡| _| d	d¡}
|dk	rœ|n|
}
|
dk	r°|
| d	< | d
d¡}
|dk	rÈ|n|
}
|
dk	rÜ|
| d
< | dd¡}
|dk	rô|n|
}
|
dk	�r
|
| d< | dd¡}
|dk	�r$|n|
}
|
dk	�r:|
| d< | dd¡}
|dk	�rT|n|
}
|
dk	�rj|
| d< | dd¡}
|dk	�r„|n|
}
|
dk	�rš|
| d< | dd¡}
|dk	�r´|n|
}
|
dk	�rÊ|
| d< | jf t|f|	ŽŽ d| _dS )a,  
        Construct a new Lighting object

        Parameters
        ----------
        arg
            dict of properties compatible with this constructor or
            an instance of
            :class:`plotly.graph_objs.streamtube.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
        ZlightingÚ_parentNz›The first argument to the plotly.graph_objs.streamtube.Lighting
constructor must be a dict or
an instance of :class:`plotly.graph_objs.streamtube.Lighting`Zskip_invalidFÚ	_validateTr   r   r   r   r   r	   r
   )Úsuperr   Ú__init__r   Ú
isinstanceÚ	__class__Zto_plotly_jsonÚdictÚ_copyÚcopyÚ
ValueErrorÚpopZ_skip_invalidr   Z_process_kwargs)r   Úargr   r   r   r   r   r	   r
   ÚkwargsÚ_v©r   r   r   r   Ç   sZ    1


ÿ	




zLighting.__init__)NNNNNNNN)Ú__name__Ú
__module__Ú__qualname__Z_parent_path_strZ	_path_strZ_valid_propsÚpropertyr   Úsetterr   r   r   r   r	   r
   r   r   Ú__classcell__r   r   r    r   r      sb   ù














        ÷r   )Zplotly.basedatatypesr   Z_BaseTraceHierarchyTyper   r   r   r   r   r   r   Ú<module>   s   