
    pj                         d dl Z d dlZd dlZd dlZej                  j                  dd      Z ej                  e      ej                  d<   d dl	m
Z
 d dlmZ ddlmZ d	 Z G d
 de      Zy)    NVTK_MODULE_NAME
vtkmodules
vtk_module)vtkWebInteractionEvent)register   )vtkWebProtocolc                     |j                  | j                  d      rdnd       |j                  | j                  d      rdnd       |j                  | j                  d      rd       y d       y )NshiftKeyr   r   ctrlKeyaltKey)SetShiftKeygetSetControlKey	SetAltKey)event
interactors     Z/DATA/.local/lib/python3.12/site-packages/trame_vtk/modules/vtk/protocols/mouse_handler.pyapply_modifiersr      sV    		* 511=%))I"6QA>eii19q9    c                   Z     e Zd ZdZ fdZ ed      d        Z ed      d        Z xZS )vtkWebMouseHandlerz,Handle Mouse interaction on any type of viewc                 2    t        |   |i | d| _        y )Nup)super__init__last_action)selfargskwargs	__class__s      r   r   zvtkWebMouseHandler.__init__   s    $)&)r   zviewport.mouse.interactionc                    | j                  |d         }d}|d   r|t        j                  z  }|d   r|t        j                  z  }|d   r|t        j                  z  }d}|d   r|t        j
                  z  }|d   r|t        j                  z  }|d   r|t        j                  z  }|d	   r|t        j                  z  }t               }|j                  |       |j                  |       d
|v r|j                  |d
          d|v r|j                  |d          d|v r|j                  |d          |d   dk(  r|j                  d       | j                  j!                  ||      }~|d   dk(  r-| j"                  |d   k7  r| j                  j%                  d       |d   dk(  r-| j"                  |d   k7  r| j                  j%                  d       |r| j                  j%                  d       |d   | _        |S )z6
        RPC Callback for mouse interactions.
        viewr   
buttonLeftbuttonMiddlebuttonRightr   r   r   metaKeyxyscrollactiondblclick   downStartInteractionEventr   EndInteractionEventUpdateEvent)get_viewr   LEFT_BUTTONMIDDLE_BUTTONRIGHT_BUTTON	SHIFT_KEYCTRL_KEYALT_KEYMETA_KEY
SetButtonsSetModifiersSetXSetY	SetScrollSetRepeatCountappHandleInteractionEventr   InvokeEvent)r   r   r#   buttons	modifierspveventret_vals          r   mouse_interactionz$vtkWebMouseHandler.mouse_interaction   s   
 }}U6]+-999G -;;;G-:::G	/999I/888I?/777I/888I(*7#Y'%<LLs$%<LLs$ueHo.?j(""1%((11$@?f$)9)9U8_)L HH  !89?d"t'7'75?'JHH  !67HH  / ?r   zviewport.mouse.zoom.wheelc                    | j                  |d         }|sy |j                         }t        ||       d|v rxd|v rt|j                         }t	        j
                  |d   |d   z  dz         }t	        j
                  |d   |d   z  dz         }|j                  ||       |j                          d|d   v r| j                  j                  d	       y d
|d   v r| j                  j                  d       y |j                  dd      }|dk\  rdnd}t        |d| d      }	|j                         }
|
j                         }|
j                  |t        |      z         	  |	        |
j                  |       y # |
j                  |       w xY w)Nr#   r(   r)   r   g      ?r   Starttyper/   Endr0   spinYBackwardForward
MouseWheelEvent)r2   GetInteractorr   GetSizemathfloorSetEventPositionMouseMoveEventr@   rB   r   getattrGetInteractorStyleGetMouseWheelMotionFactorSetMouseWheelMotionFactorabs)r   r   render_windowr   	view_sizepos_xpos_yspin_y	directionmethodstyleprev_motion_factors               r   update_zoomFromWheelz'vtkWebMouseHandler.update_zoomFromWheelU   s   eFm4"002
z*%<C5L &--/IJJy|eCj83>?EJJy|eCj83>?E''u5%%'eFm#HH  !89
 E&M!HH  !677A&"(A+J9	z)E%BC--/"<<>''(:S[(HI	@H++,>?E++,>?s   E8 8F)	__name__
__module____qualname____doc__r   
export_rpcrG   re   __classcell__)r!   s   @r   r   r      sB    6  ,-4 .4l +,+@ -+@r   r   )rS   os	importlibsysenvironr   vtk_module_nameimport_modulemodulesvtk_module.vtkWebCorer   wslinkr   rj   web_protocolr	   r   r    r   r   <module>rw      s_     	  
**..!2LA3I33ODL  8 ) (:j@ j@r   