o
    Zh0hP'                     @   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point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   I/var/www/html/rh/venv/lib/python3.10/site-packages/weasyprint/svg/path.py_rotate   s   0r   c           ,      C   sV
  | dd}tD ]}||d| d}qt|}d}| jj|  d}|r)| }|ddd tv rP| ddd\}}|dv rO|d	vrO|j	| |}n|d
krWd}n|dkr]d}|dv rcd}|dvrm|du rm|}|dv r|\}}	t
| ||\}
}}|dd\}}tt|}|d |dd  }}|d |dd  }}t
| ||\}}}|dkr||7 }||	7 }t|t|}}|dvs|dvrq#t|t|}}|
r|s|r|d tvr| d}nd}d| d| d| | }q#t|| ||	 | \}}||
 }|| }t||}|d |d  d }d}t|
|d }
|d }|
d |d  d }||kr<| }t|||\}}t|||\}}t| | }t|| || }|dk sf|dk r||dt 7 }|dt 7 }|dk sf|dk sf|j	| | f tt|| tr|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 ]h\}}|||
t|  ||
 t|  ||
t|  ||
 t|  }|||
t|  ||
 t|  ||
t|  ||
 t|  }|||
t|  ||
t|  } | jjg ||| R   q||f}n|dv rt
| ||\}}	}t
| ||\}!}"}t
| ||\}}}|dkr|\}#}$||#7 }|!|#7 }!||#7 }|	|$7 }	|"|$7 }"||$7 }|j	t|	|" ||! t||" ||! f | j||	|!|"|| ||f}n"|dv r8| ddd\}#}|\}%}&| 
|#d|\}#}'|dkr|#|%7 }#|#|%krdnt}|j	t| |f | j|#|& |#|&f}n|dv rwt
| ||\}#}$}|\}%}&|dkrW|#|%7 }#|$|&7 }$t|$|& |#|% }|j	t| |f | j|#|$ |#|$f}n|d	v rt
| ||\}#}$}|r|dvr|j	d |dkr|#|d 7 }#|$|d 7 }$| j|#|$ |#|$f}nc|dv rE|\}}	|dv rt
| ||\}!}"}n|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 r|\}#}$|d$v rY|||!  n|#}|d$v rf|||"  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	| | }|}|s&dS d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lLzZqQtTqQQqTtqqtsS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lettercurrent_pointlast_letterfirst_path_pointx1y1rxryrotationlargesweepx3y3next_letterxeyey_scaler   xcycangle1angle2stepanglesmatrixr&   point1point2point3x2y2r   r   old_xold_y_xq1yq1xq2yq2r   r   r   path   s  





$

 













 





 rm   N)__doc__mathr   r   r   r   r   r   r   r`   r
   utilsr   r   r4   r   rm   r   r   r   r   <module>   s    $