
    ,gP'                     X    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 Zd	 Zy
)zDraw paths.    )atan2cosisclosepiradianssintan   )Matrix   )	normalizepointachlmqstvzACHLMQSTVZc                 v    | t        |      z  |t        |      z  z
  |t        |      z  | t        |      z  z   fS )z1Rotate (x, y) point of given angle around (0, 0).)r   r   )xyangles      k/home/viktor/gitlab-persoonlijk/factuur-applicatie/venv/lib/python3.12/site-packages/weasyprint/svg/path.py_rotater      s7    s5z>AE
N*AE
NQU^,KKK    c           	         |j                  dd      }t        D ]  }|j                  |d| d      } t        |      }d} | j                  j
                  |  d}|	rr|j                         }|j                  dd      d   t        v r>| dj                  dd      \  }}|dv r1|d	vr-|j                  j                  |       |}nd
k(  rd}n|dk(  rd}|dv rd}|dvr|}|dv r|\  }}	t        | ||      \  }
}}|j                  dd      \  }}t        t        |            }|d   |dd j                         }}|d   |dd j                         }}t        | ||      \  }}}|dk(  r
||z  }||	z  }t        |      t        |      }}|dvs|dvr=t        |      t        |      }}|
r|s$|r|d   t        vr| d}nd}d| d| d| | }{t        ||z
  ||	z
  |       \  }}||
z  }||z  }t!        ||      }|dz  |dz  z   dz  }d}t#        |
|dz        }
|dz  }|
dz  |dz  z
  dz  }||k(  r| }t        |||      \  }}t        |||      \  }}t!        | |       }t!        ||z
  ||z
        }|dk  s|dk  r$|dt$        z  z  }|dt$        z  z  }|dk  r|dk  r$|j                  j                  | | f       t'        t)        ||z
        t$              r(|r||k  r|dt$        z  z  }nJ|sH||kD  rC|dt$        z  z  }n6|t)        ||z
        t$        k  k(  r||kD  r|dt$        z  z  }n|dt$        z  z  }|r&||z
  dz  }|||z   f||z   |d|z  z   f|d|z  z   |ff}n||ff}t+        t-        |      t/        |      t/        |       |z  t-        |      |z  ||	      }dt1        |d   d   |d   d   z
  dz        z  }|D ]  \  }}|j3                  ||
t-        |      z  z   ||
z  t/        |      z  z
  ||
t/        |      z  z   ||
z  t-        |      z  z         }|j3                  ||
t-        |      z  z   ||
z  t/        |      z  z   ||
t/        |      z  z   ||
z  t-        |      z  z
        }|j3                  ||
t-        |      z  z   ||
t/        |      z  z         }  | j                  j4                  g |||    ||f}n|dv rt        | ||      \  }}	}t        | ||      \  }!}"}t        | ||      \  }}}|dk(  r#|\  }#}$||#z  }|!|#z  }!||#z  }|	|$z  }	|"|$z  }"||$z  }|j                  j                  t!        |	|"z
  ||!z
        t!        ||"z
  ||!z
        f       | j                  j5                  ||	|!|"||       ||f}n|dv r| dj                  dd      \  }#}|\  }%}&| j                  |#d|      \  }#}'|dk(  r|#|%z  }#|#|%kD  rdnt$        }|j                  j                  t$        |z
  |f       | j                  j7                  |#|&       |#|&f}np|dv r}t        | ||      \  }#}$}|\  }%}&|dk(  r
|#|%z  }#|$|&z  }$t!        |$|&z
  |#|%z
        }|j                  j                  t$        |z
  |f       | j                  j7                  |#|$       |#|$f}n|d	v rit        | ||      \  }#}$}|r|dvr|j                  j                  d       |dk(  r|#|d   z  }#|$|d   z  }$| j                  j                  |#|$       |#|$f}n|dv r|\  }}	|dv rt        | ||      \  }!}"}n|d vr#$|#|$f\  }!}"}}|z   !z
  }!|	z   "z
  }"t        | ||      \  }}}|d!k(  r
|!|z  }!|"|	z  }"|d"v r
||z  }||	z  }|!dz  dz  |dz  z   }(|"dz  dz  |	dz  z   })|!dz  dz  |dz  z   }*|"dz  dz  |dz  z   }+| j                  j5                  |(|)|*|+||       |j                  j                  d       ||f}n|d#v r|\  }#}$|d$v r|!z
  z   n|#}|d$v r|"z
  z   n|$}	t        | ||      \  }!}"}t        | ||      \  }}}|d%k(  r|!|#z  }!||#z  }|"|$z  }"||$z  }|j                  j                  t!        |	|"z
  ||!z
        t!        ||"z
  ||!z
        f       | j                  j5                  ||	|!|"||       ||f}n|d&v r| dj                  dd      \  }$}|\  }%}&| j                  d|$|      \  }'}$|d'k(  r|$|&z  }$|$|&kD  r	t$        dz  n	t$         dz  }|j                  j                  t$        |z
  |f       | j                  j7                  |%|$       |%|$f}n=|dv r9r7|j                  j                  d       | j                  j9                          |}|dvr|j                  j                  |       |j                         }|}|r	qyy)(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yq2s,                                               r   pathrp      s   XXc2F 7!F8167vF MCJJ&K
<<Q"l2!'l11#q9NFF..63E$$]3#0 s]Fs]F44#33 (,T> #FB"3	:NBF%||C3HfuX/H
 #1Ivabz'7'7'96E"1Ivabz'7'7'96E #3	:NBF}bb u:s5z5EF"e6&9;U5E RfQi|; &,HA,K"$KbT2$a}VH= R"Wb2gy9FB2gG'MB "bME 'B!G#*BB RaB aB'B!G#*B ~S RU+FBRU+FB B3_F27BG,F1*
!b& !b&  1*

 MM  6'F7!34 s6F?+R0fvoa"f$FFVOa"f$F3v/"45F?a"f$Fa"f$F 1,Vd]+d]FQX$56a$h&/1
 "6*, Hs8}X(#h-'*ABF VAYq\F1IaL8A=>>A"( 
?//c&k))AFS[,@@c&k))AFS[,@@B  //c&k))AFS[,@@c&k))AFS[,@@B  //c&k))c&k))+ $

##>V>f>v>
? FMt^"3	:NBF"3	:NBF"3	:NBF}$1aaaaaaMM  b2grBw'rBwR)@"B CJJBBB7FMt^"81,,S!4IAv(LE599Q9-DAq}U
UAEMM  "u*e!45JJq%(uHMt^ fi8LAq&(LE5}U
U
!e)QY/EMM  "u*e!45JJq!$qDMt^ fi8LAq&{$6$$T*}]1%%]1%%JJq!$qDMv"FB~!&sFI!>Bf,%&1aZNBB"Wr\"Wr\"3	:NBF}bb~bbq&1*rAv%Cq&1*rAv%Cq&1*rAv%Cq&1*rAv%CJJS#sB;MM  (FMt^ DAq#.&#8rBwaB#.&#8rBwaB"3	:NBF"3	:NBF}aaaaMM  b2grBw'rBwR)@"B CJJBBB7FMt^"81,,S!4IAv(LE599Q9-DAq}U
%iBFbS1WEMM  "u*e!45JJua(!1HMt^ 0MM  &JJ,MMM  /y r   N)__doc__mathr   r   r   r   r   r   r	   rc   r   utilsr   r   r7   r   rp    r   r   <module>ru      s(     ; ; ;  #%L
Ir   