
    lj                        d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d	d
lmZ dgZ G d de          ZdS )    )annotations)ABCMeta)Any)config)OpenGLMobject)OpenGLPMobject)OpenGLSurface)OpenGLVMobject   )RendererTypeConvertToOpenGLc                  @     e Zd ZU dZg Zded<   d fdZd fdZ xZS )r   zMetaclass for swapping (V)Mobject with its OpenGL counterpart at runtime
    depending on config.renderer. This metaclass should only need to be inherited
    on the lowest order inheritance classes such as Mobject and VMobject.
    z
list[type]_converted_classesnamestrbasestuple[type, ...]	namespacedict[str, Any]returntypec                   t           j        t          j        k    rBt          t
          t          t          t          t          dt          fd|D                       }t                      
                    | |||          S )N)MobjectVMobjectPMobject	Mobject1D	Mobject2DSurfacec              3  N   K   | ]}                     |j        |          V   d S N)get__name__).0basebase_names_to_opengls     d/home/agentuser/manim-venv/lib/python3.11/site-packages/manim/mobject/opengl/opengl_compatibility.py	<genexpr>z*ConvertToOpenGL.__new__.<locals>.<genexpr>(   sG        BF$((==         )r   rendererr   OPENGLr   r
   r   r	   tuplesuper__new__)mclsr   r   r   r%   	__class__s       @r&   r-   zConvertToOpenGL.__new__   s     ?l111 )**++(5 5      JO    E wwtT5)<<<r(   c                    t                                          |||           | j                            |            d S r    )r,   __init__r   append)clsr   r   r   r/   s       r&   r1   zConvertToOpenGL.__init__.   s<    ui000%%c*****r(   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )	r"   
__module____qualname____doc__r   __annotations__r-   r1   __classcell__)r/   s   @r&   r   r      s{          
 &(''''= = = = = =*+ + + + + + + + + +r(   N)
__future__r   abcr   typingr   manimr   #manim.mobject.opengl.opengl_mobjectr   /manim.mobject.opengl.opengl_point_cloud_mobjectr   ,manim.mobject.opengl.opengl_three_dimensionsr	   .manim.mobject.opengl.opengl_vectorized_mobjectr
   	constantsr   __all__r    r(   r&   <module>rD      s    " " " " " "                   = = = = = = J J J J J J F F F F F F I I I I I I % % % % % %
+ + + + +g + + + + +r(   