
    sg                     >    d dl mZ d dlmZ d dlmZ  G d de      Zy)    N)S)PlotModeBasec                   (    e Zd ZdZd Zd Zd Zd Zy)PlotSurfaceperspectivec                    | j                   d   | _        t        | j                  j                               | _        | j                   d   | _        t        | j
                  j                               | _        t        j                  t        j                  dgt        j                  t        j                  dgt        j                  t        j                  dgg| _
        | j                         }d| _        t        | j                  j                  | j
                  j                  z        | _        g }| j                  }| j                  D ]  }g }| j                  D ]|  }	  |||      }|Ht#        d      D ]:  }t%        ||   d   ||   g      ||   d<   t'        ||   d   ||   g      ||   d<   < |j)                  |       | xj                  dz  c_        ~ |j)                  |        t#        d      D ]-  }||   d   ||   d   z
  ||   d<   ||   d   dk(  s&d||   d<   / || _        | j-                  | j/                  dd             | j1                  | j/                  dd             y # t         $ r d }Y w xY w)	Nr      g                 ?   FT)	intervals
u_intervallistfrangeu_set
v_intervalv_setr   InfinityNegativeInfinitybounds_get_evaluator_calculating_verts_posfloatv_len_calculating_verts_lenZeroDivisionErrorrangeminmaxappendvertspush_wireframe
draw_verts
push_solid)	selfevaluater!   bucolumnv_eaxiss	            Y/var/www/html/venv/lib/python3.12/site-packages/sympy/plotting/pygletplot/plot_surface.py_on_calculate_vertszPlotSurface._on_calculate_verts   sW   ..+$//0023
..+$//0023


A$6$6:

A$6$6:

A$6$6:< &&(&)#&+OO!!$//"7"77'9# KK 	!AFZZ 
3!!QB > %a A%(!D'!*bh)?%@$
%(!D'!*bh)?%@$
A b!++s2+
3 LL 	! !H 	!D4agaj0AdGAJwqzS  $
	!
 
DOOE59:t45# ) Bs   !	I44JJc                 2     j                   r j                  sy  fd} fd} |d       d _         j                  j                   j                    j                   j
                  ||       _         j                   j                  dd             y )Nc                 &    t        |       _        y )N)r   _calculating_cverts_len)nr%   s    r-   set_work_lenz6PlotSurface._on_calculate_cverts.<locals>.set_work_len7   s    +08D(    c                  0     xj                   dz  c_         y )Nr   )_calculating_cverts_pos)r%   s   r-   inc_work_posz6PlotSurface._on_calculate_cverts.<locals>.inc_work_pos:   s    ((C/(r4   r	   r   )set_leninc_posT)	r!   colorr6   apply_to_surfacer   r   cvertsr$   r#   )r%   r3   r7   s   `  r-   _on_calculate_cvertsz PlotSurface._on_calculate_cverts3   s{    zz	4	0Q'($jj11$**26**26**:F:F	 2 H
 	d34r4   c                     | j                   |   |   }| j                  |d   |d   |d   | j                  |   | j                  |         S )Nr   r	   r   )r!   r:   r   r   )r%   r(   r*   verts       r-   calculate_one_cvertzPlotSurface.calculate_one_cvertE   sL    zz!}Qzz$q'47DG**Q-A8 	8r4   c                       fd}|S )Nc                      t        dt        j                              D ]Z  } t        j                  t        j
                         t        t        j                              D ]  }j                  | dz
     |   }j                  |    |   }||8t        j                          t        j                  t        j
                         fr0j                  | dz
     |   }j                  |    |   }|d}|"d}nrj                  x}}nj                  x}}t        j                  |  t        j                  |  t        j                  |  t        j                  |   t        j                          ] y )Nr	   )r   r   r   )r   lenr   pglglBeginGL_QUAD_STRIPr   r!   glEndr<   default_solid_colordefault_wireframe_color	glColor3f
glVertex3f)	r(   r*   papbcacbr%   
use_cvertsuse_solid_colors	         r-   fz!PlotSurface.draw_verts.<locals>.fK   s=   1c$**o. C--.s4::/ (AAE*1-BAq)BzRZ		C$5$56 !![[Q/2![[^A.:!*B:!*B*&*&>&>>B&*&B&BBBMM2&NNB'MM2&NNB'-(. 		3r4    )r%   rP   rQ   rR   s   ``` r-   r#   zPlotSurface.draw_vertsJ   s    	6 r4   N)__name__
__module____qualname__default_rot_presetr.   r=   r@   r#   rS   r4   r-   r   r      s    &&6P5$8
r4   r   )	pyglet.glglrD   
sympy.corer   (sympy.plotting.pygletplot.plot_mode_baser   r   rS   r4   r-   <module>r\      s      A_, _r4   