
    kj	                     4    d Z ddlmZmZ  G d d          ZdS )z
Follows the standard attributes from GLFT2.0
https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes
    )AnyOptionalc                       e Zd ZdZdZdZdZdZdZdZ	dZ
d	Z	 	 	 	 	 	 	 	 ddee         dee         dee         dee         dee         dee         dee         dee         defdZdeeef         dd
fdZd
S )AttributeNamesa   Standard buffer/attribute names.

    This works as a lookup for buffer names when creating VAO instances.

    This class can be used directly or an instance of the class can be used with overrides.
    Optionally it can be extended into a new class.
    in_position	in_normal
in_tangentin_texcoord_0in_texcoord_1	in_color0in_joints_0in_weights_0Npositionnormaltangent
texcoord_0
texcoord_1color_0joints_0weightskwargsc	                 F    |                      ||||||||d|	           dS )a  Override default values.
        All attributes will be set on the instance as upper case strings

        Keyword Args:
                position (str): Name for position buffers/attribute
                normal (str): Name for normal buffer/attribute
                tangent (str): name for tangent buffer/attribute
                texcoord_0 (str): Name for texcoord 0 buffer/attribute
                texcoord_1 (str): Name for texcoord 1 buffer/attribute
                color_0 (str): name for vertex color buffer/attribute
                joints_0 (str): Name for joints buffer/attribute
                weights (str): Name for weights buffer/attribute
        )r   r   r   r   r   r   r   r   N)apply_values)
selfr   r   r   r   r   r   r   r   r   s
             ^/home/agentuser/manim-venv/lib/python3.11/site-packages/moderngl_window/geometry/attributes.py__init__zAttributeNames.__init__   sR    2 	$ "(("$"
 
 
	
 	
 	
 	
 	
    returnc                     |                                 D ]*\  }}|r#t          | |                                |           +dS )z&Only applies attribute values not NoneN)itemssetattrupper)r   r   keyvalues       r   r   zAttributeNames.apply_valuesB   sJ     ,,.. 	2 	2JC 2ciikk5111	2 	2r   )NNNNNNNN)__name__
__module____qualname____doc__POSITIONNORMALTANGENT
TEXCOORD_0
TEXCOORD_1COLOR_0JOINTS_0	WEIGHTS_0r   strr   r   dictr    r   r   r   r   	   s         HFG J JGHI #' $!%$($(!%"&!%%
 %
3-%
 %
 #	%

 SM%
 SM%
 #%
 3-%
 #%
 %
 %
 %
 %
N24S> 2d 2 2 2 2 2 2r   r   N)r(   typingr   r   r   r3   r   r   <module>r5      s[    
 !              =2 =2 =2 =2 =2 =2 =2 =2 =2 =2r   