o
    oh                     @   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                   @   s  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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   s   || _ || _|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   kwargs r"   }/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/plotting/pygletplot/plot_controller.py__init__C   sR   	zPlotController.__init__c                 C   s  d}| j d r|d8 }| j d r|d7 }|dkr%| j|d |  d  d\}}}| j d r3|d8 }| j d r<|d7 }| j d	 rE|d8 }| j d
 rN|d7 }| j d rW|d7 }| j d r`|d8 }|  s|dkr{| jj|| |   gt d R   |dkr| jj|| |   gt d R   |dkr| jj|| |   gt d R   n| jdd|| |   | | |    d}| j d r|  s|d8 }| j d r|  s|d7 }|dkr| jj|| |   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 rOd| 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rzr"   r"   r#   updateg   s   













zPlotController.updatec                 C      | j d r| jS | jS Nr   )r   modified_mouse_sensitivitynormal_mouse_sensitivityr    r"   r"   r#   get_mouse_sensitivity      
z$PlotController.get_mouse_sensitivityc                 C   r>   r?   )r   modified_key_sensitivitynormal_key_sensitivityrB   r"   r"   r#   r,      rD   z"PlotController.get_key_sensitivityc                 C   "   || j v rd| j| j | < d S d S )NTkeymapr   r    symbol	modifiersr"   r"   r#   on_key_press      
zPlotController.on_key_pressc                 C   rG   )NFrH   rJ   r"   r"   r#   on_key_release   rN   zPlotController.on_key_releasec                 C   s   |t @ r$|  r| j|||| n| j|| || f||f|   |t@ r:| jddg| j | |  d  |t	@ rI| j|||| d S d S )Nr%   g      4@)
r   r-   r   r/   spherical_rotaterC   r   r+   r   r   )r    xyr9   r:   buttonsrL   r"   r"   r#   on_mouse_drag   s   
zPlotController.on_mouse_dragc                 C   s$   | j ddg| j | |   d S )Nr%   rP   )r   r+   r   rC   )r    rR   rS   r9   r:   r"   r"   r#   on_mouse_scroll   s   zPlotController.on_mouse_scrollc                 C   sB   | j jj}|D ]}t|| jdkst|| jdkr dS qdS )Nr%   r&   FT)r   r5   
_functionsleni_varsd_vars)r    	functionsir"   r"   r#   r-      s   
$zPlotController.is_2DN)7__name__
__module____qualname__rA   r@   rF   rE   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F8rI   r$   r=   rC   r,   rM   rO   rU   rV   r-   r"   r"   r"   r#   r      s    	
 !#$%'(*+,-/5$Ir   N)
pyglet.windowr   pyglet.window.mouser   r   r   sympy.plotting.pygletplot.utilr   r   r   r"   r"   r"   r#   <module>   s    