
    sg                     H    d dl mZ d dlmZmZmZ d dlmZmZ  G d d      Z	y)    )key)LEFTRIGHTMIDDLE)get_direction_vectorsget_basis_vectorsc                       e Zd ZdZdZdZdZi ej                  dej                  dej                  dej                  dej                  dej                  dej                  dej                  dej                   dej"                  dej$                  dej&                  dej(                  d	ej*                  d	ej,                  d
ej.                  d
ej0                  di ej2                  dej4                  dej6                  dej8                  dej:                  dej<                  dej>                  dej@                  dejB                  dejD                  dejF                  dejH                  dejJ                  dejL                  dejN                  dejP                  dejR                  dejT                  dejV                  dejX                  diZ-dddZ.d Z/d Z0d Z1d Z2d Z3d  Z4d! Z5d" Z6y#)$PlotControllerg      @g      ?g      d@g      D@leftrightupdownrotate_z_negrotate_z_pos	spin_left
spin_rightreset_camerazoom_inzoom_outmodify_sensitivityrot_preset_xyrot_preset_xzrot_preset_yzrot_preset_perspectivetoggle_axestoggle_axe_colors
save_imageF)invert_mouse_zoomc                    || _         || _        |j                  | _        i ddddddddddddddd	dd
dddddddddddddddddddd| _        y )Nr   Fr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   )r   windowcameraaction)selfr    r   kwargss       \/var/www/html/venv/lib/python3.12/site-packages/sympy/plotting/pygletplot/plot_controller.py__init__zPlotController.__init__C   s    !2mm
E
 U

 %
 E
 
 %
 E
 E
 E
  u!
" #
& !%'
* U+
, U-
. U/
0 %e1
4 55
6 "';
    c                 8   d}| j                   d   r|dz  }| j                   d   r|dz  }|dk7  r0| j                  j                  |dz  | j                         dz         d\  }}}| j                   d   r|dz  }| j                   d   r|dz  }| j                   d	   r|dz  }| j                   d
   r|dz  }| j                   d   r|dz  }| j                   d   r|dz  }| j	                         s|dk7  r< | j                  j
                  ||z  | j                         z  gt               d     |dk7  r< | j                  j
                  ||z  | j                         z  gt               d     |dk7  r | j                  j
                  ||z  | j                         z  gt               d     nG| j                  j                  dd||z  | j                         z  | |z  | j                         z         d}| j                   d   r| j	                         s|dz  }| j                   d   r| j	                         s|dz  }|dk7  r< | j                  j
                  ||z  | j                         z  gt               d     | j                   d   r| j                  j                          | j                   d   r| j                  j                  d       | j                   d   r| j                  j                  d       | j                   d   r| j                  j                  d       | j                   d   r| j                  j                  d       | j                   d   r3d| j                   d<   | j                  j                  j                          | j                   d   r3d| j                   d<   | j                  j                  j                          | j                   d   r3d| j                   d<   | j                  j                  j!                          y)Nr   r      r   g      $@)r   r   r   r   r   r   r   r   r      r   r   r   r   xyr   xzr   yzr   perspectiver   Fr   r   T)r"   r!   zoom_relativeget_key_sensitivityis_2Deuler_rotater   mouse_translater   resetset_rot_presetaxestoggle_visibletoggle_colorsr    plot	saveimage)r#   dtzdxdydzrzs          r%   updatezPlotController.updateg   s   ;;z"FA;;y!FA6KK%%afd.F.F.H.MN
B;;v!GB;;w!GB;;t!GB;;v!GB;;{#!GB;;|$!GBzz|Qw(((Bt/G/G/I)I H+@+B1+EHQw(((Bt/G/G/I)I H+@+B1+EHQw(((Bt/G/G/I)I H+@+B1+EH KK''1beD4L4L4N.N)+Bt/G/G/I(IK ;;~&tzz|!GB;;~&tzz|!GB7$DKK$$RU4+C+C+E%E @'8':1'=@ ;;~&KK;;'KK&&t,;;'KK&&t,;;'KK&&t,;;/0KK&&}5;;}%).DKK&KK++-;;*+/4DKK+,KK**,;;|$(-DKK%KK&&(r'   c                 P    | j                   d   r| j                  S | j                  S Nr   )r"   modified_mouse_sensitivitynormal_mouse_sensitivityr#   s    r%   get_mouse_sensitivityz$PlotController.get_mouse_sensitivity   s'    ;;+,222000r'   c                 P    | j                   d   r| j                  S | j                  S rC   )r"   modified_key_sensitivitynormal_key_sensitivityrF   s    r%   r0   z"PlotController.get_key_sensitivity   s'    ;;+,000...r'   c                 Z    || j                   v rd| j                  | j                   |   <   y y )NTkeymapr"   r#   symbol	modifierss      r%   on_key_presszPlotController.on_key_press   s*    T[[ /3DKKF+, !r'   c                 Z    || j                   v rd| j                  | j                   |   <   y y )NFrL   rN   s      r%   on_key_releasezPlotController.on_key_release   s*    T[[ /4DKKF+, !r'   c                    |t         z  rd| j                         r| j                  j                  ||||       n5| j                  j	                  ||z
  ||z
  f||f| j                                |t        z  r?| j                  j                  ddg| j                     |z  | j                         dz         |t        z  r| j                  j                  ||||       y y )Nr)   g      4@)
r   r1   r!   r3   spherical_rotaterG   r   r/   r   r   )r#   xyr=   r>   buttonsrP   s          r%   on_mouse_dragzPlotController.on_mouse_drag   s    T>zz|++Aq"b9,,a"fa"f-=1v-1-G-G-IKVKK%%q"gd.D.D&Eb&H&*&@&@&B4&GIU?KK''1b"5 r'   c                 |    | j                   j                  ddg| j                     |z  | j                                y )Nr)   rU   )r!   r/   r   rG   )r#   rW   rX   r=   r>   s        r%   on_mouse_scrollzPlotController.on_mouse_scroll   s7    !!1b'$*@*@"A""D"&"<"<">	@r'   c                     | j                   j                  j                  }|D ]:  }t        ||   j                        dkD  st        ||   j
                        dkD  s: y y)Nr)   r*   FT)r    r9   
_functionsleni_varsd_vars)r#   	functionsis      r%   r1   zPlotController.is_2D   s[    KK$$//	 	A9Q<&&'!+s9Q<3F3F/G!/K	 r'   N)7__name__
__module____qualname__rE   rD   rJ   rI   r   r   ANUM_4r   DNUM_6UPWNUM_8DOWNSNUM_2ZNUM_1CNUM_3QNUM_7ENUM_9XNUM_5NUM_ADDPAGEUPRNUM_SUBTRACTPAGEDOWNFRSHIFTLSHIFTF1F2F3F4F5F6F8rM   r&   rA   rG   r0   rQ   rS   rZ   r\   r1    r'   r%   r
   r
      s   "!$"#3&3v3 			63
 			73 	w3 			73 	3 	t3 			43 	&3 	v3 			63" 	~#3$ 			>%3( 	~)3* 			>+3. 	{/30 			;132 	|334 			<538 	~93: 			>;3> 	Y?3@ 	

IA3B 	yC3F 	*G3H 	jI3J 	zK3N 	

(O3P 	

(Q3T 	U3V 	W3X 	Y3Z 	([3^ 	#e3Fj 5: "
HGR1/456@r'   r
   N)
pyglet.windowr   pyglet.window.mouser   r   r   sympy.plotting.pygletplot.utilr   r   r
   r   r'   r%   <module>r      s     3 3 ST Tr'   