Ë
    £èhä  ã                  óP   — d dl mZ d dlmZ d dlZddlmZmZ dZdZ	 G d„ d	«      Z
y)
é    )Úannotations)ÚSequenceNé   )ÚVec2ÚNULLVEC2iø  é(   c                  ó¾   — e Zd Zdd„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Z		 	 	 	 	 	 	 	 	 	 dd„Z
ddd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zy)ÚPagec                ó¼   — t        |«      | _        t        |«      | _        t        | _        t        ||«      | _        d| _        d| _        d| _	        t        | _
        y )NFç      ð?)ÚintÚsize_xÚsize_yr   Úp1r   Úp2Úuser_scalingÚuser_scale_xÚuser_scale_yÚuser_origin)Úselfr   r   s      ú7lib/python3.12/site-packages/ezdxf/addons/hpgl2/page.pyÚ__init__zPage.__init__   sM   € Ü˜&“kˆŒÜ˜&“kˆŒäˆŒÜ�v˜vÓ&ˆŒØ!ˆÔØ#&ˆÔØ#&ˆÔÜ#ˆÕó    c                ód   — | j                  «        t        |«      | _        t        |«      | _        y ©N)Úreset_scalingr   r   r   )r   r   r   s      r   Úset_scaling_pointszPage.set_scaling_points   s$   € Ø×ÑÔÜ�r“(ˆŒÜ�r“(ˆ�r   c                ór   — | j                  | j                  | j                  |z  | j                  |z  «       y r   )Úset_ucsr   r   r   )r   ÚsxÚsys      r   Úapply_scaling_factorszPage.apply_scaling_factors"   s/   € Ø�‰�T×%Ñ% t×'8Ñ'8¸2Ñ'=¸t×?PÑ?PÐSUÑ?UÕVr   c                ó¬   — | j                   | j                  z
  }t        | j                  |z  | j                  |z  «      }| j                  |||z   «       y r   )r   r   r   r   r   r   )r   Úxp1Úyp1Úsizer   s        r   Úset_scaling_points_relative_1z"Page.set_scaling_points_relative_1%   sF   € Ø�w‰w˜Ÿ™Ñ ˆÜ�$—+‘+ Ñ# T§[¡[°3Ñ%6Ó7ˆØ×Ñ  B¨¡IÕ.r   c                óÀ   — t        | j                  |z  | j                  |z  «      }t        | j                  |z  | j                  |z  «      }| j                  ||«       y r   )r   r   r   r   )r   r$   r%   Úxp2Úyp2r   r   s          r   Úset_scaling_points_relative_2z"Page.set_scaling_points_relative_2*   sP   € ô �$—+‘+ Ñ# T§[¡[°3Ñ%6Ó7ˆÜ�$—+‘+ Ñ# T§[¡[°3Ñ%6Ó7ˆØ×Ñ  BÕ'r   c                óŽ   — t         | _        t        | j                  | j                  «      | _        | j                  t         «       y r   )r   r   r   r   r   r   r   )r   s    r   r   zPage.reset_scaling1   s+   € ÜˆŒÜ�t—{‘{ D§K¡KÓ0ˆŒØ�‰”XÕr   c                ód  — | j                   | j                  z
  }||z
  }||z
  }	d}
t        |«      dkD  r|j                  |z  }
d}t        |	«      dkD  r|j                  |	z  }t        t        |
«      t        |«      «      }t        j                  ||
«      }
t        j                  ||«      }|j                  ||
z  z
  |z  }|j                  |	|z  z
  |z  }| j                  j                  |z   ||
z  z
  }| j                  j                  |z   ||z  z
  }| j                  t        ||«      |
|«       y ©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_scalingzPage.set_isotropic_scaling6   s  € ð �w‰w˜Ÿ™Ñ ˆØ˜%‘-ˆØ˜%‘-ˆØˆÜˆw‹<˜$ÒØ—f‘f˜wÑ&ˆGØˆÜˆw‹<˜$ÒØ—f‘f˜wÑ&ˆGä”C˜“L¤# g£,Ó/ˆÜ—-‘-  wÓ/ˆÜ—-‘-  wÓ/ˆØ—F‘F˜W wÑ.Ñ.°$Ñ6ˆØ—F‘F˜W wÑ.Ñ.°&Ñ8ˆØ—7‘7—9‘9˜xÑ'¨%°'©/Ñ9ˆØ—7‘7—9‘9˜xÑ'¨%°'©/Ñ9ˆØ�‰”T˜( HÓ-¨w¸Õ@r   c                óp  — | j                   | j                  z
  }||z
  }||z
  }d}t        |«      dkD  r|j                  |z  }d}	t        |«      dkD  r|j                  |z  }	| j                  j                  ||z  z
  }
| j                  j                  ||	z  z
  }| j                  t        |
|«      ||	«       y r.   )r   r   r/   r0   r1   r   r   )r   r5   r6   r7   r8   r&   r;   r<   r=   r>   rB   rC   s               r   Úset_anisotropic_scalingzPage.set_anisotropic_scalingR   s©   € ð �w‰w˜Ÿ™Ñ ˆØ˜%‘-ˆØ˜%‘-ˆØˆÜˆw‹<˜$ÒØ—f‘f˜wÑ&ˆGØˆÜˆw‹<˜$ÒØ—f‘f˜wÑ&ˆGØ—7‘7—9‘9˜u w™Ñ.ˆØ—7‘7—9‘9˜u w™Ñ.ˆØ�‰”T˜( HÓ-¨w¸Õ@r   c                ó~  — t        |«      | _        t        |«      | _        t        |«      | _        t        | j                  «      dk  rd| _        t        | j                  «      dk  rd| _        t        j                  | j                  d«      r(t        j                  | j                  d«      rd| _        y d| _        y )Ng�íµ ÷Æ°>r   FT)	r   r   Úfloatr   r   r/   r3   Úiscloser   )r   Úoriginr    r!   s       r   r   zPage.set_ucsb   s˜   € Ü ›<ˆÔÜ! "›IˆÔÜ! "›IˆÔÜˆt× Ñ Ó! DÒ(Ø #ˆDÔÜˆt× Ñ Ó! DÒ(Ø #ˆDÔÜ�<‰<˜×)Ñ)¨3Ô/´D·L±LØ×Ñ˜sô5
ð !&ˆDÕà $ˆDÕr   c                ó@   — | j                  ||«      | j                  z   S )z9Returns the page location as page point in plotter units.)Úpage_vectorr   ©r   r0   r1   s      r   Ú
page_pointzPage.page_pointq   s    € à×Ñ  1Ó%¨×(8Ñ(8Ñ8Ð8r   c                ón   — | j                   r| j                  |z  }| j                  |z  }t        ||«      S )z8Returns the user vector in page vector in plotter units.)r   r   r   r   rM   s      r   rL   zPage.page_vectoru   s7   € à×ÒØ×!Ñ! AÑ%ˆAØ×!Ñ! AÑ%ˆAÜ�A�q‹zÐr   c                ót   — |D �cg c](  }| j                  |j                  |j                  «      ‘Œ* c}S c c}w )z8Returns all user points as page points in plotter units.)rN   r0   r1   )r   ÚpointsÚps      r   Úpage_pointszPage.page_points|   s-   € á39Ó:±6¨a�—‘ §¡ Q§S¡SÕ)°6Ñ:Ð:ùÒ:ó   …-5c                ót   — |D �cg c](  }| j                  |j                  |j                  «      ‘Œ* c}S c c}w )z:Returns all user vectors as page vectors in plotter units.)rL   r0   r1   )r   ÚvectorsrR   s      r   Úpage_vectorszPage.page_vectors€   s/   € á4;Ó<±G¨q�× Ñ  §¡ a§c¡cÕ*°GÑ<Ð<ùÒ<rT   c                ó>   — || j                   z  || j                  z  fS )zJScale a length in user units to plotter units, scaling can be non-uniform.)r   r   )r   Úlengths     r   Úscale_lengthzPage.scale_length„   s#   € à˜×)Ñ)Ñ)¨6°D×4EÑ4EÑ+EÐEÐEr   N)r   r   r   r   )r   r   r   r   ÚreturnÚNone)r    rH   r!   rH   r[   r\   )r$   rH   r%   rH   r[   r\   )
r$   rH   r%   rH   r)   rH   r*   rH   r[   r\   )r[   r\   )ç      à?r]   )
r5   rH   r6   rH   r7   rH   r8   rH   r[   r\   )r   r   )rJ   r   r    rH   r!   rH   )r0   rH   r1   rH   r[   r   )rQ   úSequence[Vec2]r[   ú
list[Vec2])rV   r^   r[   r_   )rY   rH   r[   ztuple[float, float])Ú__name__Ú
__module__Ú__qualname__r   r   r"   r'   r+   r   rD   rF   r   rN   rL   rS   rW   rZ   © 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   r3   Údepsr   r   ÚINCH_TO_PLUÚ	MM_TO_PLUr
   rc   r   r   Ú<module>ri      s+   ðõ #Ý Û ß  à€Ø€	÷uFò uFr   