U
    9%e                     @   sB   d dl mZ d dlmZmZmZ d dlmZmZ G dd dZ	dS )    )key)LEFTRIGHTMIDDLE)get_direction_vectorsget_basis_vectorsc                J   @   sL  e Zd ZdZdZdZdZ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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dZ.dd Z/dd Z0d d! Z1d"d# Z2d$d% Z3d&d' Z4d(d) Z5d*d+ 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                K   sF   || _ || _|j| _dddddddddddddddddddd| _d S )NF)r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   windowcameraaction)selfr   r   kwargs r"   h/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/plotting/pygletplot/plot_controller.py__init__C   s.    zPlotController.__init__c                 C   s  d}| j d r|d8 }| j d r(|d7 }|dkrJ| j|d |  d  d\}}}| j d rf|d8 }| j d rx|d7 }| j d	 r|d8 }| j d
 r|d7 }| j d r|d7 }| j d r|d8 }|  sT|dkr| jj|| |   ft d   |dkr$| jj|| |   ft d   |dkr| jj|| |   ft d   n,| jdd|| |   | | |    d}| j d r|  s|d8 }| j d r|  s|d7 }|dkr| jj|| |   ft d   | j d r| j	  | j d r| j
d | j d r4| j
d | j d rL| j
d | j d rd| j
d | j d rd| j d< | jj  | j d rd| j d< | jj  | j d rd| j d< | jj  dS )Nr   r      r   g      $@)r   r   r   r	   r
   r   r   r   r      r   r   r   r   Zxyr   xzr   Zyzr   Zperspectiver   Fr   r   T)r   r   zoom_relativeget_key_sensitivityis_2DZeuler_rotater   mouse_translater   resetZset_rot_presetZaxesZtoggle_visibleZtoggle_colorsr   plotZ	saveimage)r    dtzdxdyZdzZrzr"   r"   r#   updateg   s    
















zPlotController.updatec                 C   s   | j d r| jS | jS d S Nr   )r   modified_mouse_sensitivitynormal_mouse_sensitivityr    r"   r"   r#   get_mouse_sensitivity   s    
z$PlotController.get_mouse_sensitivityc                 C   s   | j d r| jS | jS d S r3   )r   modified_key_sensitivitynormal_key_sensitivityr6   r"   r"   r#   r)      s    
z"PlotController.get_key_sensitivityc                 C   s   || j krd| j| j | < d S )NTkeymapr   r    symbol	modifiersr"   r"   r#   on_key_press   s    
zPlotController.on_key_pressc                 C   s   || j krd| j| j | < d S )NFr:   r<   r"   r"   r#   on_key_release   s    
zPlotController.on_key_releasec                 C   s   |t @ rH|  r$| j|||| n$| j|| || f||f|   |t@ rt| jddg| j | |  d  |t	@ r| j|||| d S )Nr%   g      4@)
r   r*   r   r+   Zspherical_rotater7   r   r(   r   r   )r    xyr0   r1   Zbuttonsr>   r"   r"   r#   on_mouse_drag   s    
zPlotController.on_mouse_dragc                 C   s$   | j ddg| j | |   d S )Nr%   rA   )r   r(   r   r7   )r    rB   rC   r0   r1   r"   r"   r#   on_mouse_scroll   s    zPlotController.on_mouse_scrollc                 C   sB   | j jj}|D ].}t|| jdks6t|| jdkr dS qdS )Nr%   r&   FT)r   r-   Z
_functionslenZi_varsZd_vars)r    Z	functionsir"   r"   r#   r*      s
    
$zPlotController.is_2DN)7__name__
__module____qualname__r5   r4   r9   r8   r   r   AZNUM_4r   DZNUM_6ZUPWZNUM_8ZDOWNSZNUM_2ZZNUM_1CZNUM_3QZNUM_7EZNUM_9XZNUM_5ZNUM_ADDZPAGEUPRZNUM_SUBTRACTZPAGEDOWNFZRSHIFTZLSHIFTZF1ZF2ZF3ZF4ZF5ZF6ZF8r;   r$   r2   r7   r)   r?   r@   rD   rE   r*   r"   r"   r"   r#   r      s                                        5$Ir   N)
Zpyglet.windowr   Zpyglet.window.mouser   r   r   Zsympy.plotting.pygletplot.utilr   r   r   r"   r"   r"   r#   <module>   s   