a
    ¥Q•hP'  ã                   @   s\   d Z ddlmZmZmZmZmZmZmZ ddl	m
Z
 ddlmZmZ dZdd	„ Zd
d„ ZdS )zDraw paths.é    )Úatan2ÚcosÚiscloseÚpiÚradiansÚsinÚtané   )ÚMatrixé   )Ú	normalizeÚpointZachlmqstvzACHLMQSTVZc                 C   s0   | t |ƒ |t|ƒ  |t |ƒ | t|ƒ  fS )z1Rotate (x, y) point of given angle around (0, 0).)r   r   )ÚxÚyÚangle© r   úL/var/www/sistema_ama/venv/lib/python3.9/site-packages/weasyprint/svg/path.pyÚ_rotate   s    r   c           ,      C   sN
  |  dd¡}tD ]}| |d|› d�¡}qt|ƒ}d}| jj|Ž  d}|�
rJ| ¡ }| dd¡d tv r |› d� dd¡\}}|dv rº|d	vrº|j 	|¡ |}n|d
kr®d}n|dkrºd}|dv rÆd}|dvrÚ|du rÚ|}|dv �r|\}}	t
| ||ƒ\}
}}| dd¡\}}tt|ƒƒ}|d |dd…  ¡  }}|d |dd…  ¡  }}t
| ||ƒ\}}}|dk�rz||7 }||	7 }t|ƒt|ƒ }}|dvsF|dv�r qFt|ƒt|ƒ }}|
�r¾|�sþ|�rÞ|d tv�rÞ|› d�}nd}d|› d|› d|› |› �}qFt|| ||	 | ƒ\}}||
 }|| }t||ƒ}|d |d  d }d}t|
|d ƒ}
|d }|
d |d  d }||k�r„| }t|||ƒ\}}t|||ƒ\}}t| | ƒ}t|| || ƒ}|dk �sØ|dk �rô|dt 7 }|dt 7 }�qÄ|j 	| | f¡ tt|| ƒtƒ�rX|�r:||k �r:|dt 8 }n|�s’||k�r’|dt 8 }n:|t|| ƒtk k�r’||k�r†|dt 8 }n|dt 8 }|�rÔ|| d }||| f|| |d|  f|d|  |ff}n
||ff}tt|ƒt|ƒt|ƒ | t|ƒ| ||	ƒ}dt|d d |d d  d ƒ }|D ]Ð\}}| ||
t|ƒ  ||
 t|ƒ  ||
t|ƒ  ||
 t|ƒ  ¡}| ||
t|ƒ  ||
 t|ƒ  ||
t|ƒ  ||
 t|ƒ  ¡}| ||
t|ƒ  ||
t|ƒ  ¡} | jjg |¢|¢| ¢R Ž  �q2||f}�n|dv �ràt
| ||ƒ\}}	}t
| ||ƒ\}!}"}t
| ||ƒ\}}}|dk�r’|\}#}$||#7 }|!|#7 }!||#7 }|	|$7 }	|"|$7 }"||$7 }|j 	t|	|" ||! ƒt||" ||! ƒf¡ | j ||	|!|"||¡ ||f}�nF|dv �rl|› d� dd¡\}#}|\}%}&|  
|#d|¡\}#}'|dk�r,|#|%7 }#|#|%k�r:dnt}|j 	t| |f¡ | j |#|&¡ |#|&f}�nº|dv �rêt
| ||ƒ\}#}$}|\}%}&|dk�rª|#|%7 }#|$|&7 }$t|$|& |#|% ƒ}|j 	t| |f¡ | j |#|$¡ |#|$f}�n<|d	v �r^t
| ||ƒ\}#}$}|�r"|dv�r"|j 	d¡ |dk�rD|#|d 7 }#|$|d 7 }$| j |#|$¡ |#|$f}�nÈ|dv �rˆ|\}}	|dv �rŽt
| ||ƒ\}!}"}n6|d v�r¬|#|$|#|$f\}!}"}}|| |! }!|	| |" }"t
| ||ƒ\}}}|d!k�rð|!|7 }!|"|	7 }"|d"v �r
||7 }||	7 }|!d d |d  }(|"d d |	d  })|!d d |d  }*|"d d |d  }+| j |(|)|*|+||¡ |j 	d¡ ||f}�nž|d#v �	rh|\}#}$|d$v �r°|||!  n|#}|d$v �rÊ|||"  n|$}	t
| ||ƒ\}!}"}t
| ||ƒ\}}}|d%k�	r|!|#7 }!||#7 }|"|$7 }"||$7 }|j 	t|	|" ||! ƒt||" ||! ƒf¡ | j ||	|!|"||¡ ||f}n¾|d&v �	rü|› d� dd¡\}$}|\}%}&|  
d|$|¡\}'}$|d'k�	r´|$|&7 }$|$|&k�	rÆtd nt d }|j 	t| |f¡ | j |%|$¡ |%|$f}n*|dv �
r&|�
r&|j 	d¡ | j ¡  |}|dv�
r<|j 	|¡ | ¡ }|}qFdS )(zDraw path node.ÚdÚ ú )r   r   Nr   r   )NÚzÚZÚmMÚMÚLÚmÚl)Nr   r   r   r   ÚaAÚa)r   r   zL r	   g      à?é   gUUUUUUõ?é   ÚcCÚcÚhHÚhÚlLZzZZqQtTZqQZQqTtÚqZqtÚsSZcsCSÚsÚvVÚv)ÚgetÚPATH_LETTERSÚreplacer   ÚstreamÚmove_toÚstripÚsplitÚverticesÚappendr   r   ÚfloatÚintÚboolr   r   Úmaxr   r   Úabsr
   r   r   r   Útransform_pointÚcurve_toÚline_toÚclose),ÚsvgÚnodeÚ	font_sizeÚstringÚletterZcurrent_pointÚlast_letterZfirst_path_pointÚx1Úy1ÚrxÚryÚrotationÚlargeÚsweepÚx3Úy3Únext_letterÚxeÚyeZy_scaler   ÚxcÚycÚangle1Úangle2ÚstepÚanglesÚmatrixr%   Zpoint1Zpoint2Zpoint3Úx2Úy2r   r   Zold_xZold_yÚ_Zxq1Zyq1Zxq2Zyq2r   r   r   Úpath   s–   ÿ





ý
ý$þþþ

 ÿ












 ÿ





rZ   N)Ú__doc__Úmathr   r   r   r   r   r   r   rV   r
   Úutilsr   r   r-   r   rZ   r   r   r   r   Ú<module>   s   $