§
    OŠtjX  ã                   óP   — 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
dS )é    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dS )Ú
PlotCameragš™™™™™©?g     @@g      Y@g     ˆÃ@g      @g     À‚@)r   r   r   )i¦ÿÿÿr   r   )r   éZ   r   )éÓÿÿÿr   r   )ÚxyÚxzÚyzÚperspectiveFc                 óv   — || _         | j         j        j        | _        || _        |                      ¦   «          d S ©N)ÚwindowÚplotÚaxesÚorthoÚreset)Úselfr   r   s      úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/plotting/pygletplot/plot_camera.pyÚ__init__zPlotCamera.__init__   s0   € ØˆŒØ”KÔ$Ô)ˆŒ	ØˆŒ
Ø�
Š
‰Œˆˆˆó    c                 óž   — t          j        ¦   «          t          j        ¦   «          t          ¦   «         | _        t          j        ¦   «          d S r   )ÚpglÚglPushMatrixÚglLoadIdentityr   Ú_rotÚglPopMatrix©r   s    r   Úinit_rot_matrixzPlotCamera.init_rot_matrix   sA   € ÝÔÑÔÐÝÔÑÔÐÝ$Ñ&Ô&ˆŒ	ÝŒÑÔÐÐÐr   c                 ó2  — |                       ¦   «          || j        vrt          d|z  ¦  «        ‚| j        |         }|                      |d         ddd¦  «         |                      |d         ddd¦  «         |                      |d         ddd¦  «         d S )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ð DàÔ˜[Ô)ˆØ×Ò˜!˜Aœ$  1 aÑ(Ô(Ð(Ø×Ò˜!˜Aœ$  1 aÑ(Ô(Ð(Ø×Ò˜!˜Aœ$  1 aÑ(Ô(Ð(Ð(Ð(r   c                 ó¨   — d| _         d\  | _        | _        d | _        | j        r| j        | _         n| j        | _         |                      ¦   «          d S )Nç        )r-   r-   )Ú_distÚ_xÚ_yr   r   Ú_default_ortho_distÚ_default_distr"   r!   s    r   r   zPlotCamera.reset/   sV   € ØˆŒ
Ø#ÑˆŒ�”ØˆŒ	ØŒ:ð 	,ØÔ1ˆDŒJˆJàÔ+ˆDŒJØ×ÒÑÔÐÐÐr   c                 óÒ   — t          j        ¦   «          t          j        |¦  «         t          j        | j        ¦  «         t          ¦   «         | _        t          j        ¦   «          d S r   )r   r   ÚglLoadMatrixfÚglMultMatrixfr   r   r    )r   Úrots     r   Úmult_rot_matrixzPlotCamera.mult_rot_matrix9   sV   € ÝÔÑÔÐÝÔ˜#ÑÔÐÝÔ˜$œ)Ñ$Ô$Ð$Ý$Ñ&Ô&ˆŒ	ÝŒÑÔÐÐÐr   c                 ó  — t          j        t           j        ¦  «         t          j        ¦   «          | j        rYt          j        dt          | j        j        ¦  «        t          | j        j	        ¦  «        z  | j
        dz
  | j        dz   ¦  «         nXt          j        dt          | j        j        ¦  «        t          | j        j	        ¦  «        z  | j        dz
  | j        dz   ¦  «         t          j        t           j        ¦  «         d S )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Ô4FÑ.GÔ.GÑGØÔ# dÑ*¨DÔ,?À$Ñ,FñHô Hð Hð Hõ ÔØ•e˜DœKÔ-Ñ.Ô.­u°T´[Ô5GÑ/HÔ/HÑHØ” Ñ$ d¤m°dÑ&:ñ<ô <ð <õ 	Ô�Ô)Ñ*Ô*Ð*Ð*Ð*r   c                 ó   — dS )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        |  	                    ¦   «         Ž  d S r   )
r   r   ÚglTranslatefr/   r0   r.   r   r5   ÚglScalefrH   r!   s    r   Úapply_transformationzPlotCamera.apply_transformationQ   sf   € ÝÔÑÔÐÝÔ˜œ $¤'¨D¬J¨;Ñ7Ô7Ð7ØŒ9Ð ÝÔ˜dœiÑ(Ô(Ð(ÝŒ�d—o’oÑ'Ô'Ð(Ð(Ð(Ð(r   rF   c                 ó†   — t          ||| j        j        | j        j        |¦  «        }|�|                      |¦  «         d S d S r   )r   r   r=   r>   r7   )r   Úp1Úp2ÚsensitivityÚmats        r   Úspherical_rotatezPlotCamera.spherical_rotateX   sN   € Ý& r¨2¨t¬{Ô/@Ø'+¤{Ô'9¸;ñHô Hˆàˆ?Ø× Ò  Ñ%Ô%Ð%Ð%Ð%ð ˆ?r   c                 óØ   — t          j        ¦   «          t          j        | j        ¦  «         t          j        ||||¦  «         t          ¦   «         | _        t          j        ¦   «          d S r   )r   r   r4   r   Ú	glRotatefr   r    )r   ÚangleÚxÚyÚzs        r   r(   zPlotCamera.euler_rotate^   s[   € ÝÔÑÔÐÝÔ˜$œ)Ñ$Ô$Ð$ÝŒ�e˜Q  1Ñ%Ô%Ð%Ý$Ñ&Ô&ˆŒ	ÝŒÑÔÐÐÐr   c                 ó²   — | j         r||z  dz  }| j        }| j        }n||z  }| j        }| j        }| j        |z
  }|dk     r||k     s||k    r	|| _        d S d S )Ng      I@r   )r   r?   r@   rA   rB   r.   )r   ÚclicksrP   Údist_drA   rB   Únew_dists          r   Úzoom_relativezPlotCamera.zoom_relativee   s‚   € àŒ:ð 	%Ø˜kÑ)¨DÑ0ˆFØÔ*ˆHØÔ*ˆHˆHà˜kÑ)ˆFØ”}ˆHØ”}ˆHà”J Ñ'ˆØ�QŠJˆJ˜8 hÒ.Ð.°8¸hÒ3FÐ3FØ!ˆDŒJˆJˆJð 4GÐ3Fr   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_
        d S )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Ô/QÑRÔ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	      s  € € € € € à€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Ð LÐ LÐ LÐ LÐ LðFð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fðuð uð uð uð uñ uô uð uð uð ur   