a
    [XhP'                     @   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   X/var/www/viveiro_mudafortebrasil/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rd}n|dkrd}|dv rd}|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rqFt|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 rt
| ||\}}	}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 rt
| ||\}#}$}|\}%}&|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 rt
| ||\}!}"}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	rt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ZZmMMLml)Nr   r   r   r   ZaAa)r   r   zL r	   g      ?   gUUUUUU?   ZcCcZhHhZlLZzZZqQtTZqQZQqTtqZqtZsSZcsCSsZvVv)getPATH_LETTERSreplacer   streamZmove_tostripsplitZverticesappendr   r   floatintboolr   r   maxr   r   absr
   r   r   r   Ztransform_pointZcurve_toZline_toclose),svgnodeZ	font_sizestringletterZcurrent_pointZlast_letterZfirst_path_pointx1y1rxZryZrotationZlargeZsweepZx3Zy3Znext_letterZxeZyeZy_scaler   ZxcZycZangle1Zangle2stepZanglesmatrixr!   Zpoint1Zpoint2Zpoint3Zx2y2r   r   Zold_xZold_y_Zxq1Zyq1Zxq2Zyq2r   r   r   path   s   






$

 












 





r=   N)__doc__mathr   r   r   r   r   r   r   r:   r
   utilsr   r   r&   r   r=   r   r   r   r   <module>   s   $