
     h|B                     t    d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZ ddlmZ d Zd Zy	)
z
Paths manager.

    )copysignhypotpiradians   )calculate_bounding_box)
PATH_LETTERSclip_marker_boxnode_format	normalizepointpoint_anglepreserve_ratioquadratic_pointsrotatesize)	parse_urlc                 H   t        |dd      syi }t        |j                  dd            j                  }dD ],  }d| }||v rt        ||         j                  ||<   (|||<   . d\  }}d}|j                  r|j                  j                  d	      }|j                  r|j                  j                  d	      nd}	|	r*|dk(  rt        |	d	   z
  }
n|t        z   |	d	   z
  d
z  }
|	\  }}n|}
d}||   }|r| j                  j                  |      }|j                  d      dk(  rd}n&t        | | j                  j                  dd            }t        | |      d
   }|r t        | |      \  }}}}t        | |||      }nt        | |j                  dd      d      }t        | |j                  dd      d      }t        | |      }t        | |j                  dd      d       }t        | |j                  dd      d       }t        ||d
   z  ||d   z        x}}d}| j                  j!                         }| j                  j#                          |j                  dd      }|dvrt%        t'        |            }
n|dk(  r|dk(  r|
t%        d      z  }
|j(                  D ]N  }| j                  j+                           | j                  j,                  |  | j                  j/                  |
       | j                  j1                  |       | j                  j1                  ||       | j                  j-                  ||       |j                  dd      }|rk|d v rg| j                  j+                           | j                  j2                  |  | j                  j5                          | j                  j7                          | j9                  |       | j                  j5                          Q | j                  j;                  |       |	rd!nd}|j                  ryy)"z-Draw the markers attached to a path ``node``.verticesNmarker )startmidendzmarker-)NNr   r      r   markerUnitsuserSpaceOnUser   zstroke-width1markerWidth3xmarkerHeightyrefX0refY   orient)autoauto-start-reverser*      overflowhidden)r-   scrollr   )getattrr   getfragmentr   popr   markersr   parent_noder   r   r
   r   mincontext	copy_pathnew_pathr   floatchildrensave	translater   scale	rectanglerestoreclipdrawappend_path)surfacenoder3   common_markerposition	attributeangle1angle2r   anglesangler   marker_noder=   viewboxscale_xscale_ytranslate_xtranslate_yclip_boxmarker_widthmarker_heightbounding_box	temp_path
node_anglechildr,   s                              i/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/cairosvg/path.pydraw_markersrZ      s   4T*Gdhhx45>>M+ .hZ(	 )$y/ : C CGH -GH.  NFFH
--!!!$)-""1%D7"VAY"vay0A5#NFFEH "!//--f5K }-1AAW0044^SIK
 "';7:G=K[>*:+{*['7<  $G$/OOM3$G N $W%0__^S%I3!P5g{K  $G[__VS-I3OO#G[__VS-I3OO$' <?2!LO3%5 5'
    113IOO$$& %37J!??j 1233G8K% %-- *$$&)))51&&u-%%e,%%gw7))+{C '??:x@,@ @OO((*-GOO--x8OO++-OO((*U#'')#*& OO''	2"5m --    c           	      z   |j                  dd      }g |_        t        D ]  }|j                  |d| d      } d}t	        |      }| j
                  j                         r| j
                  j                         }n| j
                  j                  dd       d}|r|j                         }|j                  dd      d   t        v r>|dz   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| j
                  j                  d       |\  }}t        | |      \  }	}
}|j                  dd      \  }}t        t        |            }|d   |dd j                         }}|d   |dd j                         }}t        | |      \  }}}t!        |      t!        |      }}|dvs|dvrGt#        |      t#        |      }}|dk(  r
||z  }||z  }|	r|
s$|r|d   t        vr| d}nd}d| d| d| | }|
|	z  }t%        |||       \  }}||z  }t'        dd||      }t)        ||      }d}t+        |	|dz        }	|dz  }|	dz  |dz  z
  dz  }||z  s| }|r| j
                  j,                  n| j
                  j.                  }t%        |d|      \  }}t%        |||      \  }}t'        ||dd      }t'        ||||      }|j                  j                  | | f       | j
                  j1                          | j
                  j3                  ||       | j
                  j%                  |       | j
                  j5                  d|        ||||	||       | j
                  j7                          |d   |z   |d   |z   f}	nH|dk(  r|\  }}t        | |      \  }}}t        | |      \  }}}t        | |      \  }}}|j                  j                  t'        ||||      t'        ||||      f       | j
                  j9                  ||||||       |d   |z   |d   |z   f}||z  }||z  }||z  }||z  }||z  }||z  }n|dk(  rt        | |      \  }}}t        | |      \  }}}t        | |      \  }}}|j                  j                  t'        ||||      t'        ||||      f       | j
                  j;                  ||||||       ||f}n|dk(  r|dz   j                  dd      \  }}|\  }}t=        | |d      dkD  rdnt>        }|j                  j                  t>        |z
  |f       t=        | |d      }| j
                  jA                  |d       |d   |z   |d   f}nc|dk(  r|dz   j                  dd      \  }}|\  }}t=        | |d      |kD  rdnt>        }|j                  j                  t>        |z
  |f       t=        | |d      }| j
                  jC                  ||       ||d   f}n|dk(  rpt        | |      \  }}}t'        dd||      }|j                  j                  t>        |z
  |f       | j
                  jA                  ||       |d   |z   |d   |z   f}n^|dk(  rit        | |      \  }}}|\  }}t'        ||||      }|j                  j                  t>        |z
  |f       | j
                  jC                  ||       ||f}n|dk(  r_t        | |      \  }}}|r|dvr|j                  j                  d       | j
                  jE                  ||       |d   |z   |d   |z   f}n|d
k(  rSt        | |      \  }}}|r|dvr|j                  j                  d       | j
                  j                  ||       ||f}n4|dk(  rd\  }}t        | |      \  }}}t        | |      \  }}}tG        ||||||      \  } }!}"}#}$}%| j
                  j9                  | |!|"|#|$|%       |j                  j                  d       |d   |z   |d   |z   f}n|dk(  r}|\  }}t        | |      \  }}}t        | |      \  }}}tG        ||||||      \  } }!}"}#}$}%| j
                  j;                  | |!|"|#|$|%       |j                  j                  d       ||f}n$|dk(  r|\  }}|dv rz
  nd}|dv rz
  nd}t        | |      \  }}}t        | |      \  }}}|j                  j                  t'        ||||      t'        ||||      f       | j
                  j9                  ||||||       |d   |z   |d   |z   f}||z  }||z  }||z  }||z  }||z  }||z  }n_|d k(  r|\  }}|dv r|z
  z   n|}|dv r|z
  z   n|}t        | |      \  }}}t        | |      \  }}}|j                  j                  t'        ||||      t'        ||||      f       | j
                  j;                  ||||||       ||f}n|d!k(  r|d"vrd#\  }}}}n|d$v rz  }z  }|z  }|z  }z
  }z
  }d\  }}t        | |      \  }}}tG        ||||||      \  } }!}"}#}$}%|j                  j                  d       | j
                  j9                  | |!|"|#|$|%       |d   |z   |d   |z   f}n|d%k(  r|\  }&}'|d"vr|&|'|&|'f\  }}}}n|d&v r|&z  }|'z  }|&z  }|'z  }|&z
  z   }|'z
  z   }|&|'}}t        | |      \  }}}tG        ||||||      \  } }!}"}#}$}%|j                  j                  d       | j
                  j;                  | |!|"|#|$|%       ||f}nd|d'k(  r|dz   j                  dd      \  }}|\  }}tI        t>        dz  t=        | |d(            }|j                  j                  | |f       t=        | |d(      }| j
                  jA                  d|       |d   |d   |z   f}n|d)k(  r|dz   j                  dd      \  }}|\  }}tI        t>        dz  t=        | |d(      |z
        }|j                  j                  | |f       t=        | |d(      }| j
                  jC                  ||       |d   |f}n=|dv r9r7|j                  j                  d       | j
                  jK                          |}|dvr|j                  j                  |       |j                         }|}|ryy)*zDraw a path ``node``.dr    Nr   )r   r   r   )NzZmMMLml)Nrd   rb   r_   r`   aAgh㈵>)r   r   Azl r   g      ?cChr!   HzZqQscsCSStQqTt)r   r   r   r   QTTqtvr#   V)&r0   r   r	   replacer   r6   has_current_pointget_current_pointmove_tostripsplitappendset_tolerancer   r   r9   intboolr   r   r   maxarcarc_negativer;   r<   r=   r?   rel_curve_tocurve_tor   r   rel_line_toline_torel_move_tor   r   
close_path)(rC   rD   stringletterlast_lettercurrent_pointfirst_path_pointx1y1rxryrotationlargesweepx3y3next_letterradii_ratioxeyerK   xcycr   rH   rI   r!   r#   x2y2old_xold_yxq1yq1xq2yq2xq3yq3abs_xabs_ys(                                           rY   pathr   y   s   XXc2FDM 7!F8167 KvF ((*99;1%
<<Q"l2$sl11#q9NFF..63E$$]3#0 s]Fs]F44#33 (,T>OO))'2"FB"7F3NBF%||C3HfuX/H
 #1Ivabz'7'7'96E"1Ivabz'7'7'96E #7F3NBF u:s5z5EF"e6&9;U5E}bb RfQi|; &,HA,K"$KbT2$a}VH=r'K BXI.FB+B  1b"-E r2BB RaB aB'B!G#*B EMS (-##'//2N2N  B5)FBBE*FB !RA.F RR0F MM  6'F7!34 OO  "OO%%b"-OO""8,OO!!![1BFF+OO##%)!,r1=3Cb3HHMs] DAq"7F3NBF"7F3NBF"7F3NBFMM  BB+[RR-H"J KOO((RRR@)!,r1=3Cb3HHM !GB!GB!GB!GB!GB!GBs]"7F3NBF"7F3NBF"7F3NBFMM  BB+[RR-H"J KOO$$RRR<FMs]#,,S!4IAv(LE5gq#.2AEMM  "u*e!45Wa%AOO''1-)!,q0-2BBMs]#,,S!4IAv(LE5gq#.6ABEMM  "u*e!45Wa%AOO##Au-}Q//Ms] &1LAq&1a+EMM  "u*e!45OO''1-)!,q0-2BQ2FFMs] &1LAq&(LE5ua3EMM  "u*e!45OO##Aq)qDMs] &1LAq&{$6$$T*OO''1-)!,q0-2BQ2FFMs] &1LAq&{$6$$T*OO##Aq)qDMs]FB"7F3NBF"7F3NBF+;BBB,((Cc3SOO((c3S#FMM  ()!,r1=3Cb3HHMs]"FB"7F3NBF"7F3NBF+;BBB,((Cc3SOO$$S#sCcBMM  (FMs] DAq'61bqB'61bqB"7F3NBF"7F3NBFMM  BB+[RR-H"J KOO((RRR@)!,r1=3Cb3HHM !GB!GB!GB!GB!GB!GBs] DAq#.&#8rBwaB#.&#8rBwaB"7F3NBF"7F3NBFMM  BB+[RR-H"J KOO$$RRR<FMs]&(!+BB$bbbbbBbBFB"7F3NBF+;BBB,((Cc3SMM  (OO((c3S#F)!,r1=3Cb3HHMs](LE5&(!&ue!;BB$eeee"r'"B"r'"BEB"7F3NBF+;BBB,((Cc3SMM  (OO$$S#sCcBFMs]#,,S!4IAv(LE5R!VT'1c%:;EMM  5&%1Wa%AOO''1-)!,mA.>.BBMs]#,,S!4IAv(LE5R!VT'1c%:U%BCEMM  5&%1Wa%AOO##E1-)!,a/Mt^ 0MM  &OO&&(,MMM  /o	 r[   N)__doc__mathr   r   r   r   rU   r   helpersr	   r
   r   r   r   r   r   r   r   r   urlr   rZ   r    r[   rY   <module>r      s6   
 . - 04 4 4 g0TKr[   