
    g                     F    d dl mZ d dlmZ d dlmZ  G d de          ZdS )    N)S)PlotModeBasec                   *    e Zd ZdZd Zd Zd Zd ZdS )PlotSurfaceperspectivec                 J   | j         d         | _        t          | j                                                  | _        | j         d         | _        t          | j                                                  | _        t          j        t          j	        dgt          j        t          j	        dgt          j        t          j	        dgg| _
        |                                 }d| _        t          | j        j        | j        j        z            | _        g }| j
        }| j        D ]}g }| j        D ]}	  |||          }n# t           $ r d }Y nw xY w|jt#          d          D ]Z}t%          ||         d         ||         g          ||         d<   t'          ||         d         ||         g          ||         d<   [|                    |           | xj        dz  c_        |                    |           t#          d          D ]E}||         d         ||         d         z
  ||         d<   ||         d         dk    rd||         d<   F|| _        |                     |                     dd                     |                     |                     dd                     d S )	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	            b/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/plotting/pygletplot/plot_surface.py_on_calculate_vertszPlotSurface._on_calculate_verts   s   .+$/002233
.+$/002233

A$6:
A$6:
A$6:< &&((&)#&+O!$/"77'9 '9# K 	! 	!AFZ 
3 
3!!QBB(   BBB> %a A A%(!D'!*bh)?%@%@$
%(!D'!*bh)?%@%@$

b!!!++s2+++LL    !HH 	! 	!D4agaj0AdGAJwqzS   $

DOOE599:::t4455555s   .D;;E
	E
c                      j         r j        sd S  fd} fd} |d           d _         j                             j          j         j        ||           _                                                  dd                     d S )Nc                 0    t          |           _        d S )N)r   _calculating_cverts_len)nr%   s    r-   set_work_lenz6PlotSurface._on_calculate_cverts.<locals>.set_work_len7   s    +088D(((    c                  (     xj         dz  c_         d S )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    z 	 	F	4 	4 	4 	4 	4	0 	0 	0 	0 	0Q'($j11$*26*26*:F:F	 2 H H
 	d3344444r4   c                     | 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   sK    z!}Qzz$q'47DG*Q-A8 8 	8r4   c                       fd}|S )Nc                     t          dt          j                            D ]8} t          j        t          j                   t          t          j                            D ]}j        | dz
           |         }j        |          |         }||2t          j                     t          j        t          j                   ar2j	        | dz
           |         }j	        |          |         }|d}|d}nr
j
        x}}n	j        x}}t          j        |  t          j        |  t          j        |  t          j        |  t          j                     :d S )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$*oo..  C-...s4:// ( (AAE*1-BAq)BzRZ	C$5666 ! C![Q/2![^A.:!*B:!*B* C&*&>>B&*&BBBM2&&NB''M2&&NB'''	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      sW        &&6 &6 &6P5 5 5$8 8 8
    r4   r   )	pyglet.glglrD   
sympy.corer   (sympy.plotting.pygletplot.plot_mode_baser   r   rS   r4   r-   <module>r\      sy                A A A A A A_ _ _ _ _, _ _ _ _ _r4   