
    \h!                         S SK Jr  S SKJr  S SKJr  S SKJr  S SK	J
r
JrJrJrJrJr  S SKJr   " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      rg)    N)font)S)
PlotObject)billboard_matrixdot_productget_direction_vectorsstrided_rangevec_magvec_sub)is_sequencec                   f    \ rS rSrSSSSSSSSSSSSSSS.S	 jrS
 rS rS rS rS r	S r
S rSrg)PlotAxes    Ng      ?皙?Arial   )stylenoneframeboxordinatestridevisibleoverlaycolored
label_axeslabel_tickstick_length	font_face	font_sizec                   UR                  5       nUb  SnUb  SnUb  SnUb  SnUS;   a  [        U 5      U l        O3US;   a  [        U 5      U l        OUS;   a  S U l        O[	        SU-  5      e [        U5      n[        U5      (       a!  [        U5      S	:w  a  [	        S
5      eX`l	        O	XfU/U l	        [        U5      U l        / SQU l        U R                  5         S nU" US5      U l        U" US5      U l        U" U	S5      U l        U" U
S5      U l        U" US5      U l        Xl        Xl        U R+                  5         g ! [         a     Nf = f)Nr   r   r   r   )r   r   )r   r   )r   zUnrecognized axes style %s.   zlength should be equal to 3r   r   r   c                 2    U S;   a  U $ U S;   a  gU S;   a  gU$ )N)TF)fFfalseFalseF)tTtrueTrueT )inputdefaults     [/var/www/auris/envauris/lib/python3.13/site-packages/sympy/plotting/pygletplot/plot_axes.pyflexible_boolean+PlotAxes.__init__.<locals>.flexible_boolean;   s,    %4422N    TF)lowerPlotAxesOrdinate_render_objectPlotAxesFrame
ValueErroreval	TypeErrorr   len_stridefloat_tick_length_originreset_bounding_boxr   _overlay_colored_label_axes_label_ticksr    r!   reset_resources)selfr   r   r   r   r   r   r   r   r   r   r   r   r    r!   argskwargsr2   s                     r1   __init__PlotAxes.__init__   sm     EE?EE$$"24"8D&&"/"5Dh"&D;FGG	&\F v6{a !>??!L"F3DL!+. !!	 (5($7(%8+J>,[$? #" 	I  		s   0E 
EEc                     S U l         g N)
label_fontrG   s    r1   rF   PlotAxes.reset_resourcesS   s	    r4   c                 8    S S /S S /S S //U l         / / / /U l        g rM   )_bounding_box_axis_ticksrO   s    r1   rA   PlotAxes.reset_bounding_boxV   s+    #TlT4L4,GB<r4   c                 |   U R                   (       a  [        R                  " [        R                  [        R                  -  [        R
                  -  5        U R                  (       a$  [        R                  " [        R                  5        U R                   R                  5         [        R                  " 5         g g rM   )r7   pglglPushAttribGL_ENABLE_BITGL_POLYGON_BITGL_DEPTH_BUFFER_BITrB   	glDisableGL_DEPTH_TESTdrawglPopAttribrO   s    r1   r]   PlotAxes.drawZ   so    S..1C1CCcF]F]]^}}c//0$$&OO r4   c                    U R                   nUn[        S5       H  n[        X4   S   5      [        R                  L d!  [        X4   S   5      [        R                  L a  MG  X$   S   c  X4   S   O[        X$   S   X4   S   /5      X$   S'   X$   S   c  X4   S   O[        X$   S   X4   S   /5      X$   S'   X l         U R                  U5        M     g )Nr#   r      )rR   rangeabsr   Infinityminmax_recalculate_axis_ticks)rG   child_boundsbcis        r1   adjust_boundsPlotAxes.adjust_boundsb   s    qA147|qzz)Sa\QZZ-G!"aad1gc147ADG:L6MADG!"aad1gc147ADG:L6MADG!"((+ r4   c                     U R                   nX!   S   b  X!   S   c  / U R                  U'   g [        X!   S   X!   S   U R                  U   5      U R                  U'   g )Nr   ra   )rR   rS   r	   r=   )rG   axisri   s      r1   rg    PlotAxes._recalculate_axis_ticksm   sf    71:!3%'DT"%2171:qwqz37<<3E&GDT"r4   c                 0    U R                   (       + U l         g rM   )r   rO   s    r1   toggle_visiblePlotAxes.toggle_visibleu   s    <<'r4   c                 0    U R                   (       + U l         g rM   )rC   rO   s    r1   toggle_colorsPlotAxes.toggle_colorsx   s     MM)r4   )rS   rR   rC   rD   rE   r@   rB   r7   r=   r?   r    r!   rN   r   )__name__
__module____qualname____firstlineno__rJ   rF   rA   r]   rl   rg   rr   ru   __static_attributes__r.   r4   r1   r   r      sP     4tB22DL(	,G(*r4   r   c                   <    \ rS rSrS rS rS rS rS
S jrS r	Sr
g	)PlotAxesBase|   c                     Xl         g rM   _p)rG   parent_axess     r1   rJ   PlotAxesBase.__init__~   s    r4   c                     / SQ/ SQ/ SQ4/ SQ/ SQ/ SQ4/U R                   R                     nU R                  U5        U R                  SUS   5        U R                  SUS   5        U R                  SUS   5        g )N)g?r   333333?)?r         ?)r         ?r   )r   r   r      ra   r   )r   rC   draw_background	draw_axisrG   colors     r1   r]   PlotAxesBase.draw   su    !?OD!?ODFFJggFVFVXU#q%(#q%(#q%(#r4   c                     g rM   r.   r   s     r1   r   PlotAxesBase.draw_background       r4   c                     [        5       erM   NotImplementedErrorrG   ro   r   s      r1   r   PlotAxesBase.draw_axis       !##r4   c                    [        U5      S:X  a  US   US   US   S4nU R                  R                  cN  [        R                  " U R                  R
                  U R                  R                  SSS9U R                  l        [        R                  " U R                  R                  UU[        R                  R                  [        R                  R                  S	9n[        R                  " 5         [        R                  " U6   [        5         S
U-  n[        R                  " XfU5        [        R                  " SSSS5        UR!                  5         [        R"                  " 5         g )Nr#   r   ra   r   r   TF)bolditalic)r   valignhaligng{Gzt?)r<   r   rN   r   loadr    r!   TextBASELINECENTERrV   glPushMatrixglTranslatefr   glScalef	glColor4fr]   glPopMatrix)rG   textpositionr   scalelabelscale_factors          r1   	draw_textPlotAxesBase.draw_text   s   u:?1XuQxq37E77%!%477+<+<+/77+<+<04U"DDGG 		$'',,d %!%!3!3!%!1!13
 	(#u}\>aAq!

r4   c                    U R                   R                  n[        R                  " [        R                  5        [        R
                  " U6   [        R                  " US   S   US   -   US   S   US   -   US   S   US   -   5        [        R                  " US   S   US   -   US   S   US   -   US   S   US   -   5        [        R                  " 5         g )Nr   ra   r   )r   r@   rV   glBeginGL_LINES	glColor3f
glVertex3fglEnd)rG   vr   os       r1   	draw_linePlotAxesBase.draw_line   s    GGOOCLL!uqtAw1~qtAw1~qtAw1~FqtAw1~qtAw1~qtAw1~F		r4   r   N)r   )rw   rx   ry   rz   rJ   r]   r   r   r   r   r{   r.   r4   r1   r}   r}   |   s     $$.r4   r}   c                   F   ^  \ rS rSrU 4S jrS rS rS rS rS r	Sr
U =r$ )	r6      c                 $   > [         TU ]  U5        g rM   superrJ   rG   r   	__class__s     r1   rJ   PlotAxesOrdinate.__init__       %r4   c                    U R                   R                  U   nU R                   R                  S-  n[        U5      S:  a  g / SQ/ SQ/nUS   US   sUS   U'   US   U'   [	        US   US   5      n[        5       S   n[        [        Xg5      5      nU[        U5      -  n[        US-
  5      S:  n	U H  n
U R                  XXJU	5        M     U R                  XUS   US   U	5        g )	Ng       @r   r$   r   ra   r   g{Gz?)r   rS   r?   r<   r   r   rc   r   r
   draw_tick_linedraw_axis_line)rG   ro   r   ticksradius
axis_linesaxis_vectorpos_zdlabels_visibleticks              r1   r   PlotAxesOrdinate.draw_axis   s    ##D)%%+u:>  +
388U2Y0
1dZ]40jmZ]; &'*K/0$$ QW, DV>J  	Dq59nMr4   c                     / SQ/ SQ/nX4sUS   U'   US   U'   U R                  Xb5        U(       a  U R                  XU5        g g )Nr$   r   ra   )r   draw_axis_line_labels)rG   ro   r   a_mina_maxr   	axis_lines          r1   r   PlotAxesOrdinate.draw_axis_line   sL    	*	16.	!TIaL.y(&&tI> r4   c                    U R                   R                  (       d  g US   S S  US   S S  /nUS   U==   S-  ss'   US   U==   S-  ss'   / SQU   nU R                  SU-   US   U5        U R                  SU-   US   U5        g )Nr   ra   r   )XYZ-+)r   rD   r   )rG   ro   r   r   axis_labelsa_strs         r1   r   &PlotAxesOrdinate.draw_axis_line_labels   s    ww"" |B'1b)9:At#At#%sU{KNE:sU{KNE:r4   c                     SSSS.U   n/ SQ/ SQ/nU=US   U'   US   U'   U* UsUS   U'   US   U'   U R                  Xr5        U(       a  U R                  XX45        g g )Nra   r   r   ra   r   r$   )r   draw_tick_line_label)rG   ro   r   r   r   r   	tick_axis	tick_lines           r1   r   PlotAxesOrdinate.draw_tick_line   s}    aA&t,		*	266	!TYq\$/<B7F8	!Y1i!8y(%%d6@ r4   c                     U R                   R                  (       d  g / SQnXEU'   / SQU   U-  S-  USSSS.U   '   U R                  [        U5      XRSS9  g )	Nr$   )r   ra   ra   g      @ra   r   r   r   )r   )r   rD   r   str)rG   ro   r   r   r   tick_label_vectors         r1   r   %PlotAxesOrdinate.draw_tick_line_label   sf    ww""%"&$6@77 7!aA!,T23s4y"3#Fr4   r.   )rw   rx   ry   rz   rJ   r   r   r   r   r   r{   __classcell__r   s   @r1   r6   r6      s*    &N4?;AG Gr4   r6   c                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ )r8      c                 $   > [         TU ]  U5        g rM   r   r   s     r1   rJ   PlotAxesFrame.__init__   r   r4   c                     g rM   r.   r   s     r1   r   PlotAxesFrame.draw_background   r   r4   c                     [        5       erM   r   r   s      r1   r   PlotAxesFrame.draw_axis   r   r4   r.   )	rw   rx   ry   rz   rJ   r   r   r{   r   r   s   @r1   r8   r8      s    &$ $r4   r8   )	pyglet.glglrV   pygletr   
sympy.corer   %sympy.plotting.pygletplot.plot_objectr   sympy.plotting.pygletplot.utilr   r   r   r	   r
   r   sympy.utilities.iterablesr   r   r}   r6   r8   r.   r4   r1   <module>r      sW       <? ? 1n*z n*b0: 0f@G| @GF	$L 	$r4   