Ë
    7^(hX  ã                   óH   — d dl mZ d dlmZ d dlmZmZmZm	Z	  G d„ d«      Z
y)é    N)Úget_spherical_rotatation)Úget_model_matrixÚmodel_to_screenÚscreen_to_modelÚvec_subsc                   ó~   — e Zd ZdZdZdZdZdZdZddd	d
dœZ	dd„Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zy)Ú
PlotCameragš™™™™™©?g     @@g      Y@g     ˆÃ@g      @g     À‚@)r   r   r   )i¦ÿÿÿr   r   )r   éZ   r   )éÓÿÿÿr   r   )ÚxyÚxzÚyzÚperspectivec                 óŠ   — || _         | j                   j                  j                  | _        || _        | j	                  «        y ©N)ÚwindowÚplotÚaxesÚorthoÚreset)Úselfr   r   s      úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/plotting/pygletplot/plot_camera.pyÚ__init__zPlotCamera.__init__   s0   € ØˆŒØ—K‘K×$Ñ$×)Ñ)ˆŒ	ØˆŒ
Ø�
‰
�ó    c                 óš   — t        j                  «        t        j                  «        t        «       | _        t        j
                  «        y r   )ÚpglÚglPushMatrixÚglLoadIdentityr   Ú_rotÚglPopMatrix©r   s    r   Úinit_rot_matrixzPlotCamera.init_rot_matrix   s.   € Ü×ÑÔÜ×ÑÔÜ$Ó&ˆŒ	Ü�‰Õr   c                 ó  — | j                  «        || j                  vrt        d|z  «      ‚| j                  |   }| j                  |d   ddd«       | j                  |d   ddd«       | j                  |d   ddd«       y )Nz"%s is not a valid rotation preset.r   é   é   )r"   Úrot_presetsÚ
ValueErrorÚeuler_rotate)r   Úpreset_nameÚrs      r   Úset_rot_presetzPlotCamera.set_rot_preset%   s‹   € Ø×ÑÔØ˜d×.Ñ.Ñ.ÜØ4°{ÑBóDð Dà×Ñ˜[Ñ)ˆØ×Ñ˜!˜A™$  1 aÔ(Ø×Ñ˜!˜A™$  1 aÔ(Ø×Ñ˜!˜A™$  1 aÕ(r   c                 ó¼   — d| _         d\  | _        | _        d | _        | j                  r| j
                  | _         n| j                  | _         | j                  «        y )Nç        )r-   r-   )Ú_distÚ_xÚ_yr   r   Ú_default_ortho_distÚ_default_distr"   r!   s    r   r   zPlotCamera.reset/   sK   € ØˆŒ
Ø#ÑˆŒ�”ØˆŒ	Ø�:Š:Ø×1Ñ1ˆD�Jà×+Ñ+ˆDŒJØ×ÑÕr   c                 óÚ   — t        j                  «        t        j                  |«       t        j                  | j                  «       t        «       | _        t        j                  «        y r   )r   r   ÚglLoadMatrixfÚglMultMatrixfr   r   r    )r   Úrots     r   Úmult_rot_matrixzPlotCamera.mult_rot_matrix9   sB   € Ü×ÑÔÜ×Ñ˜#ÔÜ×Ñ˜$Ÿ)™)Ô$Ü$Ó&ˆŒ	Ü�‰Õr   c                 óŽ  — t        j                  t         j                  «       t        j                  «        | j                  rpt        j
                  dt        | j                  j                  «      t        | j                  j                  «      z  | j                  dz
  | j                  dz   «       not        j
                  dt        | j                  j                  «      t        | j                  j                  «      z  | j                  dz
  | j                  dz   «       t        j                  t         j                  «       y )Ng333333Ó?g{®Gáz„?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_projectionzPlotCamera.setup_projection@   sà   € Ü×Ñœ×*Ñ*Ô+Ü×ÑÔØ�:Š:ä×ÑØ”U˜4Ÿ;™;×,Ñ,Ó-¬e°D·K±K×4FÑ4FÓ.GÑGØ×#Ñ# dÑ*¨D×,?Ñ,?À$Ñ,FõHô ×ÑØ”e˜DŸK™K×-Ñ-Ó.¬u°T·[±[×5GÑ5GÓ/HÑHØ—‘ Ñ$ d§m¡m°dÑ&:ô<ô 	×Ñœ×)Ñ)Õ*r   c                  ó   — y)N)ç      ð?rF   rF   © r!   s    r   Ú
_get_scalezPlotCamera._get_scaleN   s   € Ør   c                 ó.  — t        j                  «        t        j                  | j                  | j                  | j
                   «       | j                  �t        j                  | j                  «       t        j                  | j                  «       Ž  y r   )
r   r   ÚglTranslatefr/   r0   r.   r   r5   ÚglScalefrH   r!   s    r   Úapply_transformationzPlotCamera.apply_transformationQ   s]   € Ü×ÑÔÜ×Ñ˜Ÿ™ $§'¡'¨D¯J©J¨;Ô7Ø�9‰9Ð Ü×Ñ˜dŸi™iÔ(Ü�‰�d—o‘oÓ'Ò(r   c                 óš   — t        ||| j                  j                  | j                  j                  |«      }|�| j	                  |«       y y r   )r   r   r=   r>   r7   )r   Úp1Úp2ÚsensitivityÚmats        r   Úspherical_rotatezPlotCamera.spherical_rotateX   sD   € Ü& r¨2¨t¯{©{×/@Ñ/@Ø'+§{¡{×'9Ñ'9¸;óHˆàˆ?Ø× Ñ  Õ%ð r   c                 óà   — t        j                  «        t        j                  | j                  «       t        j                  ||||«       t        «       | _        t        j                  «        y r   )r   r   r4   r   Ú	glRotatefr   r    )r   ÚangleÚxÚyÚzs        r   r(   zPlotCamera.euler_rotate^   sF   € Ü×ÑÔÜ×Ñ˜$Ÿ)™)Ô$Ü�‰�e˜Q  1Ô%Ü$Ó&ˆŒ	Ü�‰Õr   c                 óä   — | j                   r!||z  dz  }| j                  }| j                  }n||z  }| j                  }| j                  }| j
                  |z
  }|dk  r||k  s||kD  r|| _        y y )Ng      I@r   )r   r?   r@   rA   rB   r.   )r   ÚclicksrP   Údist_drA   rB   Únew_dists          r   Úzoom_relativezPlotCamera.zoom_relativee   sz   € à�:Š:Ø˜kÑ)¨DÑ0ˆFØ×*Ñ*ˆHØ×*Ñ*‰Hà˜kÑ)ˆFØ—}‘}ˆHØ—}‘}ˆHà—J‘J Ñ'ˆØ�QŠJ˜8 hÒ.°8¸hÒ3FØ!ˆD�Jð 4Gr   c                 ó�  — t        j                  «        t        j                  «        t        j                  dd| j                   «       t        ddd«      d   }t        t        |||«      t        ||z
  ||z
  |«      «      }t        j                  «        | xj                  |d   z  c_	        | xj                  |d   z  c_
        y )Nr   r%   r$   )r   r   r   rJ   r.   r   r   r   r    r/   r0   )r   rV   rW   ÚdxÚdyrX   Úds          r   Úmouse_translatezPlotCamera.mouse_translatet   s—   € Ü×ÑÔÜ×ÑÔÜ×Ñ˜˜A §
¡
˜{Ô+Ü˜A˜q !Ó$ QÑ'ˆÜ”_ Q¨¨1Ó-¬¸qÀ2¹vÀqÈ2ÁvÈqÓ/QÓRˆÜ�‰ÔØ�Š�1�Q‘4‰�Ø�Š�1�Q‘4‰Žr   N)F)rF   )Ú__name__Ú
__module__Ú__qualname__rA   rB   r?   r@   r2   r1   r&   r   r"   r+   r   r7   rD   rH   rL   rR   r(   r]   rb   rG   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	   rG   r   r   ú<module>rj      s#   ðÝ Ý L÷Fó F÷uò ur   