
    h^                    P    S SK Jr  S SKJr  S SKrSSKJrJr  SrSr	 " S S	5      r
g)
    )annotations)SequenceN   )Vec2NULLVEC2i  (   c                      \ rS rSrSS jrSS jrSS jrSS jr          SS jrSS jr	  S         SS jjr
          SS	 jrSSS
 jjrSS jrSS jrSS jrSS jrSS jrSrg) Page   c                    [        U5      U l        [        U5      U l        [        U l        [        X5      U l        SU l        SU l        SU l	        [        U l
        g )NF      ?)intsize_xsize_yr   p1r   p2user_scalinguser_scale_xuser_scale_yuser_origin)selfr   r   s      I/var/www/html/env/lib/python3.13/site-packages/ezdxf/addons/hpgl2/page.py__init__Page.__init__   sK    &k&kv&!#&#&#    c                d    U R                  5         [        U5      U l        [        U5      U l        g N)reset_scalingr   r   r   )r   r   r   s      r   set_scaling_pointsPage.set_scaling_points   s$    r(r(r   c                r    U R                  U R                  U R                  U-  U R                  U-  5        g r   )set_ucsr   r   r   )r   sxsys      r   apply_scaling_factorsPage.apply_scaling_factors"   s/    T%%t'8'82'=t?P?PSU?UVr   c                    U R                   U R                  -
  n[        U R                  U-  U R                  U-  5      nU R                  XDU-   5        g r   )r   r   r   r   r   r   )r   xp1yp1sizer   s        r   set_scaling_points_relative_1"Page.set_scaling_points_relative_1%   sD    ww $++#T[[3%67I.r   c                    [        U R                  U-  U R                  U-  5      n[        U R                  U-  U R                  U-  5      nU R                  XV5        g r   )r   r   r   r   )r   r(   r)   xp2yp2r   r   s          r   set_scaling_points_relative_2"Page.set_scaling_points_relative_2*   sN     $++#T[[3%67$++#T[[3%67'r   c                    [         U l        [        U R                  U R                  5      U l        U R                  [         5        g r   )r   r   r   r   r   r   r"   )r   s    r   r   Page.reset_scaling1   s+    t{{DKK0Xr   c                Z   U R                   U R                  -
  nX!-
  nXC-
  n	Sn
[        U5      S:  a  UR                  U-  n
Sn[        U	5      S:  a  UR                  U	-  n[        [        U
5      [        U5      5      n[        R                  " X5      n
[        R                  " X5      nUR                  X-  -
  U-  nUR                  X-  -
  U-  nU R                  R                  U-   X-  -
  nU R                  R                  U-   X;-  -
  nU R                  [        UU5      X5        g Nr   g&.>)
r   r   absxyminmathcopysignr"   r   )r   x_minx_maxy_miny_maxleftbottomr*   delta_xdelta_yscale_xscale_yscaleoffset_xoffset_yorigin_xorigin_ys                    r   set_isotropic_scalingPage.set_isotropic_scaling6   s    ww --w<$ffw&Gw<$ffw&GCL#g,/--/--/FFW..$6FFW..&87799x'%/97799x'%/9T(H-w@r   c                h   U R                   U R                  -
  nX!-
  nXC-
  nSn[        U5      S:  a  UR                  U-  nSn	[        U5      S:  a  UR                  U-  n	U R                  R                  X-  -
  n
U R                  R                  X9-  -
  nU R                  [        X5      X5        g r5   )r   r   r6   r7   r8   r"   r   )r   r<   r=   r>   r?   r*   rB   rC   rD   rE   rI   rJ   s               r   set_anisotropic_scalingPage.set_anisotropic_scalingR   s     ww --w<$ffw&Gw<$ffw&G7799u.7799u.T(-w@r   c                   [        U5      U l        [        U5      U l        [        U5      U l        [        U R                  5      S:  a  SU l        [        U R                  5      S:  a  SU l        [        R                  " U R                  S5      (       a.  [        R                  " U R                  S5      (       a  SU l        g SU l        g )Ngư>r   FT)	r   r   floatr   r   r6   r:   iscloser   )r   originr#   r$   s       r   r"   Page.set_ucsb   s    <!"I!"It  !D( #Dt  !D( #D<<))3//DLLs5
 5
 !&D $Dr   c                >    U R                  X5      U R                  -   $ )z9Returns the page location as page point in plotter units.)page_vectorr   r   r7   r8   s      r   
page_pointPage.page_pointq   s    %(8(888r   c                v    U R                   (       a  U R                  U-  nU R                  U-  n[        X5      $ )z8Returns the user vector in page vector in plotter units.)r   r   r   r   rW   s      r   rV   Page.page_vectoru   s5    !!A%A!!A%AAzr   c                x    U Vs/ s H(  o R                  UR                  UR                  5      PM*     sn$ s  snf )z8Returns all user points as page points in plotter units.)rX   r7   r8   )r   pointsps      r   page_pointsPage.page_points|   s+    39:6aQSS)6:::   /7c                x    U Vs/ s H(  o R                  UR                  UR                  5      PM*     sn$ s  snf )z:Returns all user vectors as page vectors in plotter units.)rV   r7   r8   )r   vectorsr^   s      r   page_vectorsPage.page_vectors   s-    4;<Gq  acc*G<<<ra   c                :    XR                   -  XR                  -  4$ )zJScale a length in user units to plotter units, scaling can be non-uniform.)r   r   )r   lengths     r   scale_lengthPage.scale_length   s    )))64E4E+EEEr   )r   r   r   r   r   r   r   r   N)r   r   r   r   )r   r   r   r   returnNone)r#   rQ   r$   rQ   rj   rk   )r(   rQ   r)   rQ   rj   rk   )
r(   rQ   r)   rQ   r.   rQ   r/   rQ   rj   rk   )rj   rk   )      ?rl   )
r<   rQ   r=   rQ   r>   rQ   r?   rQ   rj   rk   )r   r   )rS   r   r#   rQ   r$   rQ   )r7   rQ   r8   rQ   rj   r   )r]   Sequence[Vec2]rj   
list[Vec2])rc   rm   rj   rn   )rg   rQ   rj   ztuple[float, float])__name__
__module____qualname____firstlineno__r   r   r%   r+   r0   r   rK   rN   r"   rX   rV   r_   rd   rh   __static_attributes__ r   r   r
   r
      s    	$
W/
(($(+0(7<(	( AA A 	A
 A 
A8AA#(A16A?DA	A %9;=Fr   r
   )
__future__r   typingr   r:   depsr   r   INCH_TO_PLU	MM_TO_PLUr
   rt   r   r   <module>rz      s+    #    	uF uFr   