
    ^j                    f   d dl mZ d dlmZmZ d dlmZ erd dlmZ d dlm	Z	 d dl
mZmZ  G d de          Z G d	 d
          Z G d d          Z G d d          Z G d d          Z G d de          Z G d de          Z G d de          Z G d d          Z G d d          ZdS )    )annotations)ABCabstractmethod)TYPE_CHECKING)Sequence)Model)BatchGroupc                  ,    e Zd ZdZdddZdddZd ZdS )Scenez4A high level container for one or more Node objects.Nnodeslist[Node] | NonereturnNonec                    |pg | _         d S N)r   )selfr   s     S/home/agentuser/manim-venv/lib/python3.11/site-packages/pyglet/model/codecs/base.py__init__zScene.__init__   s    [b


    batchr	   groupGroup | Nonelist[Model]c                :    t          | j        j         d          )TBDz  does not implement this method.)NotImplementedError	__class____name__)r   r   r   s      r   create_modelszScene.create_models   s    !T^%<"^"^"^___r   c                0    | j         j         d| j         dS )Nz(nodes=))r   r   r   r   s    r   __repr__zScene.__repr__   s     .)??$*????r   r   )r   r   r   r   )r   r	   r   r   r   r   )r   
__module____qualname____doc__r   r    r$    r   r   r   r      se        >>! ! ! ! !` ` ` ` `@ @ @ @ @r   r   c                  &    e Zd ZdZ	 	 dddZd ZdS )Nodez6Container for one or more sub-objects, such as Meshes.Nr   r   mesheslist[Mesh] | Noneskinslist[Skin] | Nonecameraslist[Camera] | Noner   r   c                N    |pg | _         |pg | _        |pg | _        |pg | _        d S r   )r   r+   r-   r/   )r   r   r+   r-   r/   s        r   r   zNode.__init__#   s2    [b
l[b
}"r   c           
         dt          | j                   dt          | j                   dt          | j                   dt          | j                   d	S )NzNode(nested_nodes=z	, meshes=z,skins=z
, cameras=r"   )lenr   r+   r-   r/   r#   s    r   r$   zNode.__repr__0   sr    IS__ I Is4;?O?O I ITZI I474E4EI I I 	Jr   )NNNN)
r   r   r+   r,   r-   r.   r/   r0   r   r   r   r%   r&   r'   r   r$   r(   r   r   r*   r*   !   sM        @@TXQU% % % % %J J J J Jr   r*   c                  "    e Zd ZdZddd
Zd ZdS )Meshz*Object containing vertex and related data.Nunknown
primitiveslist[Primitive] | Nonenamestrr   r   c                &    |pg | _         || _        d S r   )r8   r:   )r   r8   r:   s      r   r   zMesh.__init__7   s    $*			r   c                B    d| j          dt          | j                   dS )NzMesh(name='z', primitive_count=r"   )r:   r3   r8   r#   s    r   r$   zMesh.__repr__;   s'    RTYRR3t;O;ORRRRr   )Nr7   )r8   r9   r:   r;   r   r   r4   r(   r   r   r6   r6   5   sG        44    S S S S Sr   r6   c                      e Zd ZddZd ZdS )	Attributer:   r;   fmtc                L    || _         || _        || _        || _        || _        d S r   )r:   r@   typecountarray)r   r:   r@   	attr_typerC   rD   s         r   r   zAttribute.__init__@   s)    		



r   c           
     `    | j         j         d| j         d| j         d| j         d| j         d
S )Nz(name='z', fmt=z, type=z, count=r"   )r   r   r:   r@   rB   rC   r#   s    r   r$   zAttribute.__repr__G   sB    .)uu$)uuDHuuUYU^uuhlhruuuur   N)r:   r;   r@   r;   r   r%   r&   r   r$   r(   r   r   r?   r?   ?   s<           v v v v vr   r?   c                  $    e Zd ZdZ	 dddZd ZdS )	Primitivez0Geometry to be rendered, with optional material.N
attributeslist[Attribute]indicesSequence[int] | NonemodeintmaterialMaterial | Noner   r   c                >    || _         || _        || _        || _        d S r   )rJ   rL   rN   rP   )r   rJ   rL   rN   rP   s        r   r   zPrimitive.__init__M   s"    $	 r   c                B    dt          | j                   d| j         dS )NzPrimitive(attributes=z, mode=r"   )listrJ   rN   r#   s    r   r$   zPrimitive.__repr__T   s'    QtDO'<'<QQTYQQQQr   r   )
rJ   rK   rL   rM   rN   rO   rP   rQ   r   r   r4   r(   r   r   rI   rI   K   sJ        ::8<! ! ! ! !R R R R Rr   rI   c                      e Zd ZdZdS )MaterialzBase class for Material typesN)r   r%   r&   r'   r(   r   r   rV   rV   X   s        ''''r   rV   c                  ,    e Zd Z	 	 	 	 	 	 	 dddZd ZdS )SimpleMaterialdefault皙?r[   r[         ?皙?r^   r^   r\           r`   r`   r\      Nr:   r;   diffuseSequence[float]ambientspecularemission	shininessfloattexture_name
str | Noner   r   c                h    || _         || _        || _        || _        || _        || _        || _        d S r   )r:   rb   rd   re   rf   rg   ri   )r   r:   rb   rd   re   rf   rg   ri   s           r   r   zSimpleMaterial.__init__]   s<     	  "(r   c                (    d| j          d| j         dS )NzMaterial(name='z', texture='')r:   ri   r#   s    r   r$   zSimpleMaterial.__repr__m   s     LLL8ILLLLr   )rY   rZ   r]   r_   r_   ra   N)r:   r;   rb   rc   rd   rc   re   rc   rf   rc   rg   rh   ri   rj   r   r   rG   r(   r   r   rX   rX   \   sV        #,,@,@-A-A$&,0) ) ) ) ) M M M M Mr   rX   c                      e Zd Zd ZdS )PBRMaterialc                    d S r   r(   r#   s    r   r   zPBRMaterial.__init__r       r   Nr   r%   r&   r   r(   r   r   ro   ro   q   s#            r   ro   c                      e Zd ZddZd ZdS )Cameracamera_typer;   aspectrh   yfovxmagymagzfarznearr   r   c                h    || _         || _        || _        || _        || _        || _        || _        d S r   )rB   aspect_ratiorw   rx   ry   rz   r{   )r   ru   rv   rw   rx   ry   rz   r{   s           r   r   zCamera.__init__x   s8    	"				


r   c                    d| j          dS )NzCamera(type='z'))rB   r#   s    r   r$   zCamera.__repr__   s    ,ty,,,,r   N)ru   r;   rv   rh   rw   rh   rx   rh   ry   rh   rz   rh   r{   rh   r   r   rG   r(   r   r   rt   rt   w   s7           - - - - -r   rt   c                      e Zd ZddZdS )Skinr   r   c                    d S r   r(   r#   s    r   r   zSkin.__init__   rq   r   N)r   r   rr   r(   r   r   r   r      s(             r   r   N)
__future__r   abcr   r   typingr   r   pyglet.modelr   pyglet.graphicsr	   r
   r   r*   r6   r?   rI   rV   rX   ro   rt   r   r(   r   r   <module>r      sW   " " " " " " # # # # # # # #             -"""""",,,,,,,,@ @ @ @ @C @ @ @*J J J J J J J J(S S S S S S S S	v 	v 	v 	v 	v 	v 	v 	v
R 
R 
R 
R 
R 
R 
R 
R( ( ( ( (s ( ( (M M M M MX M M M*    (   - - - - - - - -$         r   