
    \hX                     H    S SK Jr  S SKJr  S SKJrJrJrJ	r	   " S S5      r
g)    N)get_spherical_rotatation)get_model_matrixmodel_to_screenscreen_to_modelvec_subsc                       \ rS rSrSrSrSrSrSrSr	SS	S
SS.r
SS jrS rS rS rS rS rS rS rSS jrS rS rS rSrg)
PlotCamera   g?g     @@g      Y@g     @g      @g     @)r   r   r   )ir   r   )r   Z   r   )r   r   )xyxzyzperspectivec                     Xl         U R                   R                  R                  U l        X l        U R	                  5         g N)windowplotaxesorthoreset)selfr   r   s      ]/var/www/auris/envauris/lib/python3.13/site-packages/sympy/plotting/pygletplot/plot_camera.py__init__PlotCamera.__init__   s,    KK$$))	


    c                     [         R                  " 5         [         R                  " 5         [        5       U l        [         R
                  " 5         g r   )pglglPushMatrixglLoadIdentityr   _rotglPopMatrixr   s    r   init_rot_matrixPlotCamera.init_rot_matrix   s.    $&	r   c                    U R                  5         XR                  ;  a  [        SU-  5      eU R                  U   nU R                  US   SSS5        U R                  US   SSS5        U R                  US   SSS5        g )Nz"%s is not a valid rotation preset.r         )r$   rot_presets
ValueErroreuler_rotate)r   preset_namers      r   set_rot_presetPlotCamera.set_rot_preset%   s    ...4{BD D[)!A$1a(!A$1a(!A$1a(r   c                     SU l         Su  U l        U l        S U l        U R                  (       a  U R
                  U l         OU R                  U l         U R                  5         g )N        )r1   r1   )_dist_x_yr!   r   _default_ortho_dist_default_distr$   r#   s    r   r   PlotCamera.reset/   sK    
#	::11DJ++DJr   c                     [         R                  " 5         [         R                  " U5        [         R                  " U R                  5        [        5       U l        [         R                  " 5         g r   )r   r   glLoadMatrixfglMultMatrixfr!   r   r"   )r   rots     r   mult_rot_matrixPlotCamera.mult_rot_matrix9   sB    #$))$$&	r   c                    [         R                  " [         R                  5        [         R                  " 5         U R                  (       aq  [         R
                  " S[        U R                  R                  5      [        U R                  R                  5      -  U R                  S-
  U R                  S-   5        Op[         R
                  " S[        U R                  R                  5      [        U R                  R                  5      -  U R                  S-
  U R                  S-   5        [         R                  " [         R                  5        g )Ng333333?g{Gz?g      >@)r   glMatrixModeGL_PROJECTIONr    r   gluPerspectivefloatr   widthheightmin_ortho_distmax_ortho_distmin_distmax_distGL_MODELVIEWr#   s    r   setup_projectionPlotCamera.setup_projection@   s    **+::U4;;,,-eDKK4F4F.GG##d*D,?,?$,FH eDKK--.uT[[5G5G/HH$dmmd&:< 	))*r   c                     g)N)      ?rM   rM    r#   s    r   
_get_scalePlotCamera._get_scaleN   s    r   c                 8   [         R                  " 5         [         R                  " U R                  U R                  U R
                  * 5        U R                  b   [         R                  " U R                  5        [         R                  " U R                  5       6   g r   )
r   r    glTranslatefr3   r4   r2   r!   r:   glScalefrO   r#   s    r   apply_transformationPlotCamera.apply_transformationQ   s]    $''DJJ;799 dii(doo'(r   c                     [        XU R                  R                  U R                  R                  U5      nUb  U R	                  U5        g g r   )r   r   rC   rD   r<   )r   p1p2sensitivitymats        r   spherical_rotatePlotCamera.spherical_rotateX   sB    &rt{{/@/@'+{{'9'9;H?  % r   c                     [         R                  " 5         [         R                  " U R                  5        [         R                  " XX45        [        5       U l        [         R                  " 5         g r   )r   r   r9   r!   	glRotatefr   r"   )r   anglexyzs        r   r+   PlotCamera.euler_rotate^   sB    $))$e%$&	r   c                     U R                   (       a   X-  S-  nU R                  nU R                  nOX-  nU R                  nU R                  nU R
                  U-
  nUS:  a  Xe:  d  Xd:  a  X`l        g g )Ng      I@r   )r   rE   rF   rG   rH   r2   )r   clicksrY   dist_drG   rH   new_dists          r   zoom_relativePlotCamera.zoom_relativee   sp    ::)D0F**H**H)F}}H}}HJJ'QJ8.83F!J 4Gr   c                    [         R                  " 5         [         R                  " 5         [         R                  " SSU R                  * 5        [        SSS5      S   n[        [        XU5      [        X-
  X$-
  U5      5      n[         R                  " 5         U =R                  US   -  sl	        U =R                  US   -  sl
        g )Nr   r(   r'   )r   r   r    rR   r2   r   r   r   r"   r3   r4   )r   r`   ra   dxdyrb   ds          r   mouse_translatePlotCamera.mouse_translatet   s    A

{+Aq!$Q'_Q1-qvqvq/QR1Q41Q4r   )r2   r!   r3   r4   r   r   r   N)F)rM   )__name__
__module____qualname____firstlineno__rG   rH   rE   rF   r6   r5   r)   r   r$   r.   r   r<   rJ   rO   rT   r[   r+   rh   rn   __static_attributes__rN   r   r   r	   r	      sr    HHNNM $	K)+)&"r   r	   )	pyglet.glglr   'sympy.plotting.pygletplot.plot_rotationr   sympy.plotting.pygletplot.utilr   r   r   r   r	   rN   r   r   <module>ry      s#     LF Fu ur   