K iXHddlmZddlmZddlmZmZmZm Z GddZ y)N)get_spherical_rotatation)get_model_matrixmodel_to_screenscreen_to_modelvec_subsc~eZdZdZdZdZdZdZdZddd d d Z dd Z d Z dZ dZ dZdZdZdZddZdZdZdZy) PlotCamerag?g@@gY@g@g@g@)rrr)irr)rZr)rr )xyxzyz perspectivec||_|jjj|_||_|j yN)windowplotaxesorthoreset)selfrrs k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/plotting/pygletplot/plot_camera.py__init__zPlotCamera.__init__s0 KK$$))   ctjtjt|_tj yr)pgl glPushMatrixglLoadIdentityr_rot glPopMatrixrs rinit_rot_matrixzPlotCamera.init_rot_matrixs.  $&  rc|j||jvrtd|z|j|}|j|dddd|j|dddd|j|ddddy)Nz"%s is not a valid rotation preset.r)r" rot_presets ValueError euler_rotate)r preset_namers rset_rot_presetzPlotCamera.set_rot_preset%s  d.. .4{BD D   [ ) !A$1a( !A$1a( !A$1a(rcd|_d\|_|_d|_|jr|j |_n|j |_|jy)N)r-r-)_dist_x_yrr_default_ortho_dist _default_distr"r!s rrzPlotCamera.reset/sK # ::11DJ++DJ rctjtj|tj|jt |_tj yr)rr glLoadMatrixf glMultMatrixfrrr )rrots rmult_rot_matrixzPlotCamera.mult_rot_matrix9sB  # $))$$&  rctjtjtj|jrptj dt |jjt |jjz |jdz |jdznotj dt |jjt |jjz |jdz |jdztjtjy)Ng333333?g{Gz?g>@)r glMatrixMode GL_PROJECTIONrrgluPerspectivefloatrwidthheightmin_ortho_distmax_ortho_distmin_distmax_dist GL_MODELVIEWr!s rsetup_projectionzPlotCamera.setup_projection@s **+  ::   U4;;,,-eDKK4F4F.GG##d*D,?,?$,F H   eDKK--.uT[[5G5G/HH $dmmd&: < ))*rcy)N)?rFrFr!s r _get_scalezPlotCamera._get_scaleNsrc.tjtj|j|j|j |j tj|j tj|jyr) rr glTranslatefr/r0r.rr5glScalefrHr!s rapply_transformationzPlotCamera.apply_transformationQs]  $''DJJ;7 99   dii ( doo'(rct|||jj|jj|}||j |yyr)rrr=r>r7)rp1p2 sensitivitymats rspherical_rotatezPlotCamera.spherical_rotateXsD&r2t{{/@/@'+{{'9'9;H ?   % rctjtj|jtj||||t |_tj yr)rrr4r glRotatefrr )ranglexyzs rr(zPlotCamera.euler_rotate^sF  $))$ eQ1%$&  rc|jr!||zdz}|j}|j}n||z}|j}|j}|j |z }|dkr||ks||kDr||_yy)NgI@r)rr?r@rArBr.)rclicksrPdist_drArBnew_dists r zoom_relativezPlotCamera.zoom_relativeesz ::k)D0F**H**Hk)F}}H}}HJJ' QJ8h.8h3F!DJ4Grctjtjtjdd|j t dddd}t t|||t||z ||z |}tj|xj|dz c_ |xj|dz c_ y)Nrr%r$) rrrrJr.rrrr r/r0)rrVrWdxdyrXds rmouse_translatezPlotCamera.mouse_translatets   A {+ Aq! $Q ' _Q1-q2vq2vq/Q R  1Q4 1Q4rN)F)rF)__name__ __module__ __qualname__rArBr?r@r2r1r&rr"r+rr7rDrHrLrRr(r]rbrGrrr r srHHNNM$ K  ) +)&  "rr ) pyglet.glglr'sympy.plotting.pygletplot.plot_rotationrsympy.plotting.pygletplot.utilrrrrr rGrrrjs#LFFuur