§
    OŠtjî,  ã                   ó†   — 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mZmZ d dlZ G d„ d	e¦  «        ZdS )
é    N)ÚS)ÚColorScheme)ÚPlotMode)Úis_sequence)Úsleep)ÚThreadÚEventÚRLockc                   ó  — e Zd ZdZ	 	 d\  ZZ	 g Z	 g Z	 dZ	 	 ddddœZ		 dZ
	 d	Zd
ZdZd„ Zd„ Zd„ Zd„ Zd„ Zddœd„Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd „ Z d!„ Z!d"„ Z"d#„ Z#d$„ Z$d%„ Z%d&„ Z&d'„ Z'ed(„ ¦   «         Z(d)„ Z)ed*„ ¦   «         Z* e+e'e(¦  «        Z, e+e)e*¦  «        Z- e+e!¦  «        Z. e+e"¦  «        Z/ e+e#¦  «        Z0 e+e$¦  «        Z1 e+e%¦  «        Z2 e+e&¦  «        Z3d+„ Z4d,„ Z5dS )-ÚPlotModeBasez…
    Intended parent class for plotting
    modes. Provides base functionality
    in conjunction with its parent,
    PlotMode.
    )Ú r   Fé   é   é   )Ú	wireframeÚsolidÚbothr   )ç333333ë?r   r   )ç333333ã?r   gÍÌÌÌÌÌì?Úxyc                 ó®   — | j         r;	 |                      ¦   «         }|S # t          $ r t          j        d¦  «         Y nw xY w|                      ¦   «         S )NzQ
Warning: creating lambda evaluator failed. Falling back on SymPy subs evaluator.)Úuse_lambda_evalÚ_get_lambda_evaluatorÚ	ExceptionÚwarningsÚwarnÚ_get_sympy_evaluator)ÚselfÚes     úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/plotting/pygletplot/plot_mode_base.pyÚ_get_evaluatorzPlotModeBase._get_evaluatorm   s…   € ØÔð 	@ð@Ø×.Ò.Ñ0Ô0�Ø�øÝð @ð @ð @Ý”ð ?ñ @ô @ð @ð @ð @ð@øøøð ×(Ò(Ñ*Ô*Ð*s   ‰ ŸA ¿A c                 ó   — t          ¦   «         ‚©N©ÚNotImplementedError©r   s    r    r   z!PlotModeBase._get_sympy_evaluatorw   ó   € Ý!Ñ#Ô#Ð#ó    c                 ó   — t          ¦   «         ‚r#   r$   r&   s    r    r   z"PlotModeBase._get_lambda_evaluatorz   r'   r(   c                 ó   — t          ¦   «         ‚r#   r$   r&   s    r    Ú_on_calculate_vertsz PlotModeBase._on_calculate_verts}   r'   r(   c                 ó   — t          ¦   «         ‚r#   r$   r&   s    r    Ú_on_calculate_cvertsz!PlotModeBase._on_calculate_cverts€   r'   r(   N)Úbounds_callbackc                óh  — g | _         g | _        t          j        t          j        dgt          j        t          j        dgt          j        t          j        dgg| _        t          j        t          j        dgt          j        t          j        dgt          j        t          j        dgg| _        t          ¦   «         | _        t          ¦   «         | _
        t          ¦   «         | _        d| _        d| _        d| _        d| _        d| _        dg| _        dg| _        d | _        d | _        g | _        g | _        | j                             dd ¦  «        d u | _        | j                             dd¦  «        | _        | j                             dd	¦  «        | _        || _        |                      ¦   «          d S )
Nr   g        r   éÿÿÿÿÚuse_sympy_evalÚstyler   ÚcolorÚrainbow)ÚvertsÚcvertsr   ÚInfinityÚNegativeInfinityÚboundsÚcboundsr
   Ú
_draw_lockr	   Ú_calculating_vertsÚ_calculating_cvertsÚ_calculating_verts_posÚ_calculating_verts_lenÚ_calculating_cverts_posÚ_calculating_cverts_lenÚ_max_render_stack_sizeÚ_draw_wireframeÚ_draw_solidÚ_styleÚ_colorÚpredrawÚpostdrawÚoptionsÚpopr   r2   r3   r.   Ú_on_calculate)r   r.   ÚargsÚkwargss       r    Ú__init__zPlotModeBase.__init__„   sm  € ØˆŒ
ØˆŒÝœ
¥AÔ$6¸Ð:Ýœ
¥AÔ$6¸Ð:Ýœ
¥AÔ$6¸Ð:ð<ˆŒõ œ¥QÔ%7¸Ð;Ýœ¥QÔ%7¸Ð;Ýœ¥QÔ%7¸Ð;ð=ˆŒõ  ™'œ'ˆŒå"'¡'¤'ˆÔÝ#(¡7¤7ˆÔ Ø&)ˆÔ#Ø&)ˆÔ#Ø'*ˆÔ$Ø'*ˆÔ$à&'ˆÔ#Ø "˜tˆÔØ˜4ˆÔàˆŒØˆŒàˆŒØˆŒà#œ|×/Ò/Ð0@À$ÑGÔGÈ4ÐOˆÔØ”\×%Ò% g¨rÑ2Ô2ˆŒ
Ø”\×%Ò% g¨yÑ9Ô9ˆŒ
Ø.ˆÔà×ÒÑÔÐÐÐr(   c                 ó   ‡ — ˆ fd„}|S )Nc                 óÂ   •— | j                              ¦   «          	  ‰| g|¢R i |¤Ž}|| j                              ¦   «          S # | j                              ¦   «          w xY wr#   )r;   ÚacquireÚrelease)r   rL   rM   ÚrÚfs       €r    Úwz$PlotModeBase.synchronized.<locals>.w©   so   ø€ ØŒO×#Ò#Ñ%Ô%Ð%ð*Ø�A�dÐ,˜TÐ,Ð,Ð, VÐ,Ð,�Øà”×'Ò'Ñ)Ô)Ð)Ð)ø�”×'Ò'Ñ)Ô)Ð)Ð)øøøs   œA ÁA© )rT   rU   s   ` r    ÚsynchronizedzPlotModeBase.synchronized¨   s#   ø€ ð	*ð 	*ð 	*ð 	*ð 	*ð ˆr(   c                 óª   — t          |¦  «        sJ ‚| j                             |¦  «         t          | j        ¦  «        | j        k    r
| j        d= dS dS ©z–
        Push a function which performs gl commands
        used to build a display list. (The list is
        built outside of the function)
        r   N)ÚcallablerC   ÚappendÚlenrB   ©r   Úfunctions     r    Úpush_wireframezPlotModeBase.push_wireframe²   sb   € õ ˜Ñ!Ô!Ð!Ð!Ð!ØÔ×#Ò# HÑ-Ô-Ð-ÝˆtÔ#Ñ$Ô$ tÔ'BÒBÐBØÔ$ QÐ'Ð'Ð'ð CÐBr(   c                 óª   — t          |¦  «        sJ ‚| j                             |¦  «         t          | j        ¦  «        | j        k    r
| j        d= dS dS rY   )rZ   rD   r[   r\   rB   r]   s     r    Ú
push_solidzPlotModeBase.push_solid¾   sa   € õ ˜Ñ!Ô!Ð!Ð!Ð!ØÔ×Ò Ñ)Ô)Ð)ÝˆtÔÑ Ô  4Ô#>Ò>Ð>ØÔ  Ð#Ð#Ð#ð ?Ð>r(   c                 ó¦   — t          j        d¦  «        }t          j        |t           j        ¦  «          |¦   «          t          j        ¦   «          |S )Nr   )ÚpglÚ
glGenListsÚ	glNewListÚ
GL_COMPILEÚ	glEndList)r   r^   Údls      r    Ú_create_display_listz!PlotModeBase._create_display_listÊ   s@   € ÝŒ^˜AÑÔˆÝŒ�b�#œ.Ñ)Ô)Ð)Øˆ‰
Œ
ˆ
ÝŒ‰ŒˆØˆ	r(   c                 óZ  — |d         }|dk    rdS t          |¦  «        r|                      |¦  «        }||f|d<   |S t          |¦  «        dk    rZt          j        t          j        |d         ¦  «        k    r|d         S |                      |d         ¦  «        }||d         f|d<   |S d S )Nr0   r   r   r   )rZ   ri   r\   rc   ÚGL_TRUEÚglIsList)r   Úrender_stackÚtoprh   s       r    Ú_render_stack_topzPlotModeBase._render_stack_topÑ   s¶   € Ø˜2ÔˆØ�"Š9ˆ9Ø�2Ý�c‰]Œ]ð 		Ø×*Ò*¨3Ñ/Ô/ˆBØ " C˜yˆL˜ÑØˆIÝ�‰XŒX˜Š]ˆ]ÝŒ{�cœl¨3¨q¬6Ñ2Ô2Ò2Ð2Ø˜1”v�Ø×*Ò*¨3¨q¬6Ñ2Ô2ˆBØ " C¨¤F˜|ˆL˜ÑØˆIð ˆ]r(   c                 óü   — t          j        t           j        t           j        z  ¦  «         t          j        t           j        t           j        ¦  «         t          j        |¦  «         t          j        ¦   «          d S r#   )	rc   ÚglPushAttribÚGL_ENABLE_BITÚGL_POLYGON_BITÚglPolygonModeÚGL_FRONT_AND_BACKÚGL_FILLÚ
glCallListÚglPopAttrib©r   rh   s     r    Ú_draw_solid_display_listz%PlotModeBase._draw_solid_display_listà   sZ   € ÝÔ�Ô*­SÔ-?Ñ?Ñ@Ô@Ð@ÝÔ�#Ô/µ´Ñ=Ô=Ð=ÝŒ�rÑÔÐÝŒÑÔÐÐÐr(   c                 ób  — t          j        t           j        t           j        z  ¦  «         t          j        t           j        t           j        ¦  «         t          j        t           j        ¦  «         t          j	        dd¦  «         t          j
        |¦  «         t          j        ¦   «          d S )Ng{®Gázt¿g      IÀ)rc   rq   rr   rs   rt   ru   ÚGL_LINEÚglEnableÚGL_POLYGON_OFFSET_LINEÚglPolygonOffsetrw   rx   ry   s     r    Ú_draw_wireframe_display_listz)PlotModeBase._draw_wireframe_display_listæ   s€   € ÝÔ�Ô*­SÔ-?Ñ?Ñ@Ô@Ð@ÝÔ�#Ô/µ´Ñ=Ô=Ð=ÝŒ•SÔ/Ñ0Ô0Ð0ÝÔ˜F EÑ*Ô*Ð*ÝŒ�rÑÔÐÝŒÑÔÐÐÐr(   c                 óZ  — | j         D ]}t          |¦  «        r
 |¦   «          Œ| j        r| j        | j                 }n| j        | j                 }|dz  rW|                      | j        ¦  «        }|dk    r7t          j        t          j	        |¦  «        k    r|  
                    |¦  «         |dz  rW|                      | j        ¦  «        }|dk    r7t          j        t          j	        |¦  «        k    r|                      |¦  «         | j        D ]}t          |¦  «        r
 |¦   «          Œd S )Nr   r   r   )rG   rZ   Ústyle_overrideÚstylesrE   ro   rD   rc   rk   rl   rz   rC   r€   rH   )r   rT   r2   rh   s       r    ÚdrawzPlotModeBase.drawî   s6  € à”ð 	ð 	ˆAÝ˜‰{Œ{ð Ø�‘”�øØÔð 	-Ø”K Ô 3Ô4ˆEˆEà”K ¤Ô,ˆEà�1‰9ð 	2Ø×'Ò'¨Ô(8Ñ9Ô9ˆBØ�AŠvˆv�#œ+­¬°bÑ)9Ô)9Ò9Ð9Ø×-Ò-¨bÑ1Ô1Ð1à�1‰9ð 	6Ø×'Ò'¨Ô(<Ñ=Ô=ˆBØ�AŠvˆv�#œ+­¬°bÑ)9Ô)9Ò9Ð9Ø×1Ò1°"Ñ5Ô5Ð5Ø”ð 	ð 	ˆAÝ˜‰{Œ{ð Ø�‘”�øð	ð 	r(   c                 óT   — t          | j        ¬¦  «                             ¦   «          d S ©N)Útarget)r   Ú_calculate_cvertsÚstart)r   r3   s     r    Ú_on_change_colorzPlotModeBase._on_change_color  s(   € Ý�dÔ,Ð-Ñ-Ô-×3Ò3Ñ5Ô5Ð5Ð5Ð5r(   c                 óT   — t          | j        ¬¦  «                             ¦   «          d S r†   )r   Ú_calculate_allr‰   r&   s    r    rK   zPlotModeBase._on_calculate  s(   € Ý�dÔ)Ð*Ñ*Ô*×0Ò0Ñ2Ô2Ð2Ð2Ð2r(   c                 óV   — |                       ¦   «          |                      ¦   «          d S r#   )Ú_calculate_vertsrˆ   r&   s    r    rŒ   zPlotModeBase._calculate_all  s,   € Ø×ÒÑÔÐØ×ÒÑ Ô Ð Ð Ð r(   c                 ó\  — | j                              ¦   «         rd S | j                              ¦   «          	 |                      ¦   «          | j                              ¦   «          n# | j                              ¦   «          w xY wt          | j        ¦  «        r|                      ¦   «          d S d S r#   )r<   Úis_setÚsetr+   ÚclearrZ   r.   r&   s    r    rŽ   zPlotModeBase._calculate_verts  s²   € ØÔ"×)Ò)Ñ+Ô+ð 	ØˆFØÔ×#Ò#Ñ%Ô%Ð%ð	,Ø×$Ò$Ñ&Ô&Ð&àÔ#×)Ò)Ñ+Ô+Ð+Ð+øˆDÔ#×)Ò)Ñ+Ô+Ð+Ð+øøøÝ�DÔ(Ñ)Ô)ð 	#Ø× Ò Ñ"Ô"Ð"Ð"Ð"ð	#ð 	#s   ¶A$ Á$A?c                 óˆ  — | j                              ¦   «         rd S | j                             ¦   «         r(t          d¦  «         | j                             ¦   «         °(| j                             ¦   «          	 |                      ¦   «          | j                             ¦   «          d S # | j                             ¦   «          w xY w)Nr   )r<   r�   r=   r   r‘   r-   r’   r&   s    r    rˆ   zPlotModeBase._calculate_cverts  s»   € ØÔ"×)Ò)Ñ+Ô+ð 	ØˆFØÔ&×-Ò-Ñ/Ô/ð 	Ý�!‰HŒHˆHð Ô&×-Ò-Ñ/Ô/ð 	àÔ ×$Ò$Ñ&Ô&Ð&ð	-Ø×%Ò%Ñ'Ô'Ð'àÔ$×*Ò*Ñ,Ô,Ð,Ð,Ð,øˆDÔ$×*Ò*Ñ,Ô,Ð,Ð,øøøs   Á7B& Â&Cc                 ó4   — | j                              ¦   «         S r#   )r<   r�   r&   s    r    Ú_get_calculating_vertsz#PlotModeBase._get_calculating_verts%  s   € ØÔ&×-Ò-Ñ/Ô/Ð/r(   c                 ó   — | j         S r#   )r>   r&   s    r    Ú_get_calculating_verts_posz'PlotModeBase._get_calculating_verts_pos(  ó   € ØÔ*Ð*r(   c                 ó   — | j         S r#   )r?   r&   s    r    Ú_get_calculating_verts_lenz'PlotModeBase._get_calculating_verts_len+  r˜   r(   c                 ó4   — | j                              ¦   «         S r#   )r=   r�   r&   s    r    Ú_get_calculating_cvertsz$PlotModeBase._get_calculating_cverts.  s   € ØÔ'×.Ò.Ñ0Ô0Ð0r(   c                 ó   — | j         S r#   )r@   r&   s    r    Ú_get_calculating_cverts_posz(PlotModeBase._get_calculating_cverts_pos1  ó   € ØÔ+Ð+r(   c                 ó   — | j         S r#   )rA   r&   s    r    Ú_get_calculating_cverts_lenz(PlotModeBase._get_calculating_cverts_len4  rŸ   r(   c                 ó   — | j         S r#   )rE   r&   s    r    Ú
_get_stylezPlotModeBase._get_style8  ó
   € ØŒ{Ðr(   c                 óü   — |€d S |dk    rEd}| j         D ]-}|j        €Œ
t          |t          |j        ¦  «        g¦  «        }Œ.ddg|dk             }|| j        vrt          d¦  «        ‚|| j        k    rd S || _        d S )Nr   r   r   r   é(   z v should be there in self.styles)Ú	intervalsÚv_stepsÚmaxÚintrƒ   Ú
ValueErrorrE   )r   ÚvÚstep_maxÚis       r    Ú
_set_stylezPlotModeBase._set_style;  sž   € àˆ9ØˆFØ�Š7ˆ7ØˆHØ”^ð ;ð ;�Ø”9Ð$ØÝ ­#¨a¬i©.¬.Ð9Ñ:Ô:��Ø˜Ð! (¨R¢-Ô0ˆAØ�D”KÐÐÝÐ?Ñ@Ô@Ð@Ø�”ÒÐØˆFØˆŒˆˆr(   c                 ó   — | j         S r#   )rF   r&   s    r    Ú
_get_colorzPlotModeBase._get_colorL  r¤   r(   c                 óD  — 	 |�(t          |¦  «        r
t          |Ž }nt          |¦  «        }t          |¦  «        t          | j        ¦  «        k    rd S |                      |¦  «         || _        d S # t
          $ r$}t          dt          |¦  «        z  ¦  «        ‚d }~ww xY w)NzColor change failed. Reason: %s)r   r   ÚreprrF   rŠ   r   ÚRuntimeErrorÚstr)r   r¬   r   s      r    Ú
_set_colorzPlotModeBase._set_colorO  s³   € ð	9Øˆ}Ý˜q‘>”>ð 'Ý# Q˜�A�Aå# A™œ�AÝ�A‰wŒw�$˜tœ{Ñ+Ô+Ò+Ð+Ø�Ø×!Ò! !Ñ$Ô$Ð$ØˆDŒKˆKˆKøÝð 	9ð 	9ð 	9Ýð  -Ý03°A±´ñ 8ñ 9ô 9ð 9øøøøð	9øøøs   ‚AA1 ÁA1 Á1
BÁ;BÂBc                 óŒ   — d                      d„ | j        D ¦   «         ¦  «        }d| j        z  }d                      ||g¦  «        S )Nú, c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r#   ©rµ   ©Ú.0Úds     r    ú	<genexpr>z'PlotModeBase.__str__.<locals>.<genexpr>m  ó(   è è € Ð2Ð2 •c˜!‘f”fÐ2Ð2Ð2Ð2Ð2Ð2r(   z	'mode=%s')ÚjoinÚd_varsÚprimary_alias)r   rT   Úos      r    Ú__str__zPlotModeBase.__str__l  sG   € Ø�IŠIÐ2Ð2 d¤kÐ2Ñ2Ô2Ñ2Ô2ˆØ˜4Ô-Ñ.ˆØ�yŠy˜!˜Q˜Ñ Ô Ð r(   c                 ón  — d                      d„ | j        D ¦   «         ¦  «        }d                      d„ | j        D ¦   «         ¦  «        }d| j        fdt	          | j        ¦  «        fdt	          | j        ¦  «        fg}dd                      d	„ |D ¦   «         ¦  «        z  }d                      |||g¦  «        S )
Nr¸   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r#   rº   r»   s     r    r¾   z(PlotModeBase.__repr__.<locals>.<genexpr>r  r¿   r(   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r#   rº   )r¼   r®   s     r    r¾   z(PlotModeBase.__repr__.<locals>.<genexpr>s  s(   è è € Ð5Ð5 •c˜!‘f”fÐ5Ð5Ð5Ð5Ð5Ð5r(   Úmoder3   r2   z'%s'z; c              3   ó6   K  — | ]\  }}|d k    ¯|›d|›�V — ŒdS )ÚNoneú=NrV   )r¼   Úkr¬   s      r    r¾   z(PlotModeBase.__repr__.<locals>.<genexpr>x  sB   è è € ð  >ð  >Ù$( A q°°f²°ð ,-¨1¨1¨a¨aÐ 0Ø1<°°°ð >ð  >r(   )rÀ   rÁ   r§   rÂ   rµ   r3   r2   )r   rT   r®   r½   rÃ   s        r    Ú__repr__zPlotModeBase.__repr__q  sÈ   € Ø�IŠIÐ2Ð2 d¤kÐ2Ñ2Ô2Ñ2Ô2ˆØ�IŠIÐ5Ð5 d¤nÐ5Ñ5Ô5Ñ5Ô5ˆØ�dÔ(Ð)Ø•s˜4œ:‘”Ð'Ø•s˜4œ:‘”Ð'ð)ˆð �d—i’ið  >ð  >Ø,-ð >ñ  >ô  >ñ >ô >ñ ?ˆà�yŠy˜!˜Q ˜Ñ#Ô#Ð#r(   )6Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úi_varsrÁ   r§   ÚaliasesÚ
is_defaultrƒ   r‚   Údefault_wireframe_colorÚdefault_solid_colorÚdefault_rot_presetr!   r   r   r+   r-   rN   rW   r_   ra   ri   ro   rz   r€   r„   rŠ   rK   rŒ   rŽ   rˆ   r•   r—   rš   rœ   rž   r¡   r£   r¯   r±   r¶   Úpropertyr2   r3   Úcalculating_vertsÚcalculating_verts_posÚcalculating_verts_lenÚcalculating_cvertsÚcalculating_cverts_posÚcalculating_cverts_lenrÄ   rÍ   rV   r(   r    r   r      s>  € € € € € ðð ðð
ð �N€FˆFðð €Iðð €Gðð €Jðð
ð  q°!Ð4Ð4€Fðð €Nðð 1ÐØ)ÐØÐð+ð +ð +ð$ð $ð $ð$ð $ð $ð$ð $ð $ð$ð $ð $ð /3ð "ð "ð "ð "ð "ðHð ð ð ð	(ð 	(ñ „\ð	(ð ð	$ð 	$ñ „\ð	$ðð ð ðð ð ðð ð ðð ð ð ðð ñ „\ðð,6ð 6ð 6ð3ð 3ð 3ð!ð !ð !ð	#ð 	#ð 	#ð	-ð 	-ð 	-ð0ð 0ð 0ð+ð +ð +ð+ð +ð +ð1ð 1ð 1ð,ð ,ð ,ð,ð ,ð ,ðð ð ð ðð ñ „\ðð ð ð ð ð9ð 9ñ „\ð9ð ˆH�Z Ñ,Ô,€EØˆH�Z Ñ,Ô,€Eà ˜Ð!7Ñ8Ô8ÐØ$˜HÐ%?Ñ@Ô@ÐØ$˜HÐ%?Ñ@Ô@Ðà!˜Ð"9Ñ:Ô:ÐØ%˜XÐ&AÑBÔBÐØ%˜XÐ&AÑBÔBÐð!ð !ð !ð
	$ð 	$ð 	$ð 	$ð 	$r(   r   )Ú	pyglet.glÚglrc   Ú
sympy.corer   Ú&sympy.plotting.pygletplot.color_schemer   Ú#sympy.plotting.pygletplot.plot_moder   Úsympy.utilities.iterablesr   Útimer   Ú	threadingr   r	   r
   r   r   rV   r(   r    ú<module>rç      sÖ   ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø €€€ðo$ð o$ð o$ð o$ð o$�8ñ o$ô o$ð o$ð o$ð o$r(   