
    g                     P    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	dS )    )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j        d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j)        dej*        dej+        dej,        diZ-dddZ.d Z/d Z0d Z1d Z2d Z3d  Z4d! Z5d" Z6d#S )$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| _        d S )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       e/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/plotting/pygletplot/plot_controller.py__init__zPlotController.__init__C   s   !2m
E
 U

 %
 E
 
 %
 E
 E
 E
  u!
" #
& !%'
* U+
, U-
. U/
0 %e1
4 55
6 "';
 
 
    c                    d}| j         d         r|dz  }| j         d         r|dz  }|dk    r3| j                            |dz  |                                 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  }|                                 s|dk    r= | j        j        ||z  |                                 z  gt                      d         R   |dk    r= | j        j        ||z  |                                 z  gt                      d         R   |dk    r= | j        j        ||z  |                                 z  gt                      d         R   nN| j                            dd||z  |                                 z  | |z  |                                 z             d}| j         d         r|                                 s|dz  }| j         d         r|                                 s|dz  }|dk    r= | j        j        ||z  |                                 z  gt                      d         R   | j         d         r| j        	                                 | j         d         r| j        
                    d           | j         d         r| j        
                    d           | j         d         r| j        
                    d           | j         d         r| j        
                    d           | j         d         r(d| j         d<   | j        j                                         | j         d         r(d| j         d<   | j        j                                         | j         d         r(d| j         d<   | j        j                                         dS )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   sr   ;z" 	FA;y! 	FA66K%%afd.F.F.H.H.MNNN
B;v 	!GB;w 	!GB;t 	!GB;v 	!GB;{# 	!GB;|$ 	!GBzz|| 	KQww((Bt/G/G/I/I)I H+@+B+B1+EH H H HQww((Bt/G/G/I/I)I H+@+B+B1+EH H H HQww((Bt/G/G/I/I)I H+@+B+B1+EH H H H K''1beD4L4L4N4N.N)+Bt/G/G/I/I(IK K K ;~& 	tzz|| 	!GB;~& 	tzz|| 	!GB77$DK$RU4+C+C+E+E%E @'8':':1'=@ @ @ @ ;~& 	 K;' 	-K&&t,,,;' 	-K&&t,,,;' 	-K&&t,,,;/0 	6K&&}555;}% 	.).DK&K++---;*+ 	-/4DK+,K**,,,;|$ 	)(-DK%K&&(((tr'   c                 8    | 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$    ;+, 	12200r'   c                 8    | 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..r'   c                 F    || j         v rd| j        | j         |         <   d S d S )NTkeymapr"   r#   symbol	modifierss      r%   on_key_presszPlotController.on_key_press   s0    T[  /3DKF+,,, ! r'   c                 F    || j         v rd| j        | j         |         <   d S d S )NFrL   rN   s      r%   on_key_releasezPlotController.on_key_release   s0    T[  /4DKF+,,, ! r'   c                    |t           z  rj|                                 r| j                            ||||           n8| j                            ||z
  ||z
  f||f|                                            |t          z  r@| j                            ddg| j                 |z  |                                 dz             |t          z  r| j                            ||||           d S d S )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> 	Kzz|| K++Aq"b9999,,a"fa"f-=1v-1-G-G-I-IK K KV 	IK%%q"gd.D&Eb&H&*&@&@&B&B4&GI I IU? 	6K''1b"55555	6 	6r'   c                     | j                             ddg| j                 |z  |                                            d S )Nr)   rU   )r!   r/   r   rG   )r#   rW   rX   r=   r>   s        r%   on_mouse_scrollzPlotController.on_mouse_scroll   sM    !!1b'$*@"A""D"&"<"<">">	@ 	@ 	@ 	@ 	@r'   c                     | j         j        j        }|D ]A}t          ||         j                  dk    st          ||         j                  dk    r dS BdS )Nr)   r*   FT)r    r9   
_functionsleni_varsd_vars)r#   	functionsis      r%   r1   zPlotController.is_2D   sc    K$/	 	 	A9Q<&''!++s9Q<3F/G/G!/K/Kuu 0Ltr'   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 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 3^ 	#e3 3Fj 5: "
 "
 "
 "
 "
HG G GR1 1 1/ / /4 4 45 5 56 6 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 3 3 3 3 3 3 3 3 S S S S S S S ST T T T T T T T T Tr'   