
    sg#                     V    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
  G d de      Zy)    )perf_counterN)ManagedWindow)
PlotCamera)PlotControllerc                   F     e Zd Z	 	 d fd	Zd Z fdZd Zd Zd Z xZ	S )
PlotWindowc                     || _         d| _        d| _        || _        || _        || _        || _        || _        d| _        d| _	        d| _
        t        | 0  di | y)z
        Named Arguments
        ===============

        antialiasing = True
            True OR False
        ortho = False
            True OR False
        invert_mouse_zoom = False
            True OR False
        NFr   g?T )plotcamera_calculatingantialiasingorthoinvert_mouse_zoom	linewidthtitlelast_caption_updatecaption_update_intervaldrawing_first_objectsuper__init__)	selfr   r   r   r   r   captionkwargs	__class__s	           X/var/www/html/venv/lib/python3.12/site-packages/sympy/plotting/pygletplot/plot_window.pyr   zPlotWindow.__init__   sh     	!(
!2"
#$ '*$$(!"6"    c                    t        | | j                        | _        t        | | j                        | _        | j                  | j
                         t        j                  dddd       t        j                  d       t        j                  t        j                         t        j                  t        j                         t        j                  t        j                         t        j                  t        j                          t        j"                  | j$                         t        j                  t        j&                         t        j(                  t        j*                  t        j,                         | j.                  rdt        j0                  t        j2                  t        j4                         t        j0                  t        j6                  t        j4                         | j                  j9                          y )N)r   )r   g      ?g        )r   r   r   r   r   
controllerpush_handlerspglglClearColorglClearDepthglDepthFuncGL_LESSglEnableGL_DEPTH_TESTGL_LINE_SMOOTHglShadeModel	GL_SMOOTHglLineWidthr   GL_BLENDglBlendFuncGL_SRC_ALPHAGL_ONE_MINUS_SRC_ALPHAr   glHintGL_LINE_SMOOTH_HINT	GL_NICESTGL_POLYGON_SMOOTH_HINTsetup_projection)r   s    r   setupzPlotWindow.setup+   s(    TZZ8("&"8"8:4??+c3,$S&&'S''(''S\\"((#*D*DEJJs..>JJs113==A$$&r   c                 t    t         |   ||       | j                  | j                  j                          y y N)r   	on_resizer   r4   )r   whr   s      r   r8   zPlotWindow.on_resizeD   s1    !Q;;"KK((* #r   c                 :    | j                   j                  |       y r7   )r   update)r   dts     r   r<   zPlotWindow.updateI   s    r"r   c                    | j                   j                  j                          | j                  j	                          d\  }}d\  }}t               | j                  z
  | j                  kD  }t        | j                   j                  j                               dk(  rd| _        t        | j                   j                  j                               }|D ]  }| j                  r,| j                  j                  |j                         d| _        t        j                           |j#                          t        j$                          |sv	 |j&                  r||j(                  z  }||j*                  z  }|j,                  r||j.                  z  }||j0                  z  } | j                   j4                  D ]:  }t        j                           |j#                          t        j$                          < |r#| j7                  ||||       t               | _        | j                   j8                  r$| j                   j8                  j;                          | j                   j                  j=                          y # t2        $ r Y w xY w)N)r   r   r   TF)r   _render_lockacquirer   apply_transformationr   r   r   len
_functionsvaluesr   iterset_rot_presetdefault_rot_presetr!   glPushMatrix_drawglPopMatrixcalculating_vertscalculating_verts_poscalculating_verts_lencalculating_cvertscalculating_cverts_poscalculating_cverts_len
ValueError	_pobjectsupdate_caption_screenshot_execute_savingrelease)r   calc_verts_poscalc_verts_lencalc_cverts_poscalc_cverts_lenshould_update_captioniterfunctionsrs           r   drawzPlotWindow.drawL   s   		&&(((*)-&+/(!-$2J2J!J!%!=!="> tyy##**,-2(,D%TYY1188:; 	A((**1+?+?@,1)GGIOO %**&!*A*AA&!*A*AA++'1+C+CC'1+C+CC+	2 $$ 	AGGIOO	
 ! /B'3~D$99  II!!113		&&(! " s   
AI77	JJc                     | j                   }|s|r4|dz  }|dkD  r||z  dz  }|d|z  z  }|dkD  r||z  dz  }|d|z  z  }|dz  }| j                  |k7  r| j                  |       y y )Nz (calculatingr   d   z vertices %i%%z colors %i%%))r   r   set_caption)r   rW   rX   rY   rZ   r   ps          r   rS   zPlotWindow.update_caption   s    **_&G!#n4;+q11"$6#=>Q//sNG<<7"W% #r   )TFFg      ?z
SymPy Plot)
__name__
__module____qualname__r   r5   r8   r<   r^   rS   __classcell__)r   s   @r   r   r      s(    6;AM#<'2+
#5)n&r   r   )timer   	pyglet.glglr!   (sympy.plotting.pygletplot.managed_windowr   %sympy.plotting.pygletplot.plot_camerar   )sympy.plotting.pygletplot.plot_controllerr   r   r
   r   r   <module>rn      s$      B < DE& E&r   