
    kj
                     N    d dl mZ d dlZ G d d          Z G d d          ZdS )    )OptionalNc                      e Zd ZdZ	 ddeej                 deej                 fdZe	deej                 fd            Z
e
j        dej        ddfd	            Z
e	deej                 fd
            Zej        dej        ddfd            ZdS )MaterialTexturezYWrapper for textures used in materials.
    Contains a texture and a sampler object.
    Ntexturesamplerc                 "    || _         || _        dS )zInitialize instance.

        Args:
            texture (moderngl.Texture): Texture instance
            sampler (moderngl.Sampler): Sampler instance
        N)_texture_sampler)selfr   r   s      Y/home/agentuser/manim-venv/lib/python3.11/site-packages/moderngl_window/scene/material.py__init__zMaterialTexture.__init__   s          returnc                     | j         S )z"moderngl.Texture: Texture instancer	   r   s    r   r   zMaterialTexture.texture        }r   valuec                     || _         d S Nr   r   r   s     r   r   zMaterialTexture.texture       r   c                     | j         S )z"moderngl.Sampler: Sampler instancer
   r   s    r   r   zMaterialTexture.sampler    r   r   c                     || _         d S r   r   r   s     r   r   zMaterialTexture.sampler%   r   r   )NN)__name__
__module____qualname____doc__r   modernglTextureSamplerr   propertyr   setterr    r   r   r   r      s"        
 ae
  
  01
 CKHL\C]
  
  
  
  ("23    X ^X- $    ^ ("23    X ^X- $    ^  r   r   c                      e Zd ZdZddefdZedefd            Zej        deddfd	            Zede	e
e
e
e
f         fd
            Zej        de	e
e
e
e
f         ddfd            Zedee         fd            Zej        deddfd            Zedefd            Zej        deddfd            ZddZdefdZdefdZdS )MaterialzGeneric material namec                 B    |pd| _         d| _        d| _        d| _        dS )zYInitialize material.

        Args:
            name (str): Name of the material
        default)      ?r,   r,   r,   NT)_name_color_mat_texture_double_sided)r   r)   s     r   r   zMaterial.__init__-   s-     &Y
*7;!r   r   c                     | j         S )zstr: Name of the materialr-   r   s    r   r)   zMaterial.name8   s     zr   r   Nc                     || _         d S r   r2   r   s     r   r)   zMaterial.name=   s    


r   c                     | j         S )z-tuple[float, float, float, float]: RGBA colorr.   r   s    r   colorzMaterial.colorA   s     {r   c                     || _         d S r   r5   r   s     r   r6   zMaterial.colorF   s    r   c                     | j         S )zMaterialTexture: instancer/   r   s    r   mat_texturezMaterial.mat_textureJ   s       r   c                     || _         d S r   r9   r   s     r   r:   zMaterial.mat_textureO   s    !r   c                     | j         S )z'bool: Material surface is double sided?r0   r   s    r   double_sidedzMaterial.double_sidedS   s     !!r   c                     || _         d S r   r=   r   s     r   r>   zMaterial.double_sidedX   s    "r   c                 p    | j         r,| j         j        r"| j         j                                         d S d S d S r   )r/   r   releaser   s    r   rA   zMaterial.release\   sM     	4 ( 4!)1133333	4 	44 4r   c                 6    d                     | j                  S )Nz<Material {}>)formatr)   r   s    r   __str__zMaterial.__str__a   s    %%di000r   c                      t          |           S r   )strr   s    r   __repr__zMaterial.__repr__d   s    4yyr   )r(   )r   N)r   r   r   r   rF   r   r#   r)   r$   tuplefloatr6   r   r   r:   boolr>   rA   rD   rG   r%   r   r   r'   r'   *   s       	" 	"S 	" 	" 	" 	" c    X 
[# $    [ uUE5%78    X \5ue!;<     \ !Xo6 ! ! ! X! " "T " " " " "d " " " X" #$ #4 # # # #4 4 4 4
1 1 1 1 1#      r   r'   )typingr   r    r   r'   r%   r   r   <module>rL      s{          ! ! ! ! ! ! ! !H; ; ; ; ; ; ; ; ; ;r   