
    h                         S SK Jr  S SKJr  S SKJr  SSKJr  SSKJ	r	  S V s/ s H  n \" U 5      PM     sn r
 " S S	\5      rg
s  sn f )    )TransformPen)etree)tostr   )
parse_path)PathBuilder)SVGPathr   c                   <    \ rS rSrSrSS jr\S	S j5       rS rSr	g)
r	      a  Parse SVG ``path`` elements from a file or string, and draw them
onto a glyph object that supports the FontTools Pen protocol.

For example, reading from an SVG file and drawing to a Defcon Glyph:

.. code-block::

    import defcon
    glyph = defcon.Glyph()
    pen = glyph.getPen()
    svg = SVGPath("path/to/a.svg")
    svg.draw(pen)

Or reading from a string containing SVG data, using the alternative
'fromstring' (a class method):

.. code-block::

    data = '<?xml version="1.0" ...'
    svg = SVGPath.fromstring(data)
    svg.draw(pen)

Both constructors can optionally take a 'transform' matrix (6-float
tuple, or a FontTools Transform object) to modify the draw output.
Nc                     Uc  [         R                  " 5       U l        O+[         R                  " U5      nUR	                  5       U l        X l        g N)r   ElementTreerootparsegetroot	transform)selffilenamer   trees       P/var/www/html/env/lib/python3.13/site-packages/fontTools/svgLib/path/__init__.py__init__SVGPath.__init__&   s8    ))+DI;;x(DDI"    c                 H    U " US9n[         R                  " U5      Ul        U$ )N)r   )r   
fromstringr   )clsdatar   r   s       r   r   SVGPath.fromstring.   s#    Y'$$T*	r   c                 ^   U R                   (       a  [        XR                   5      n[        5       nU R                  R	                  5        H  nUR                  U5        M     Un[        UR                  UR                  5       H%  u  pVU(       a  [        XF5      nOUn[        XQ5        M'     g r   )
r   r   r   r   iteradd_path_from_elementzippaths
transformsr   )r   penpbeloriginal_penpathr   s          r   drawSVGPath.draw4   s{    >>sNN3C])).."B$$R( #"288R]];OD"<;"t!  <r   )r   r   )NNr   )
__name__
__module____qualname____firstlineno____doc__r   classmethodr   r*   __static_attributes__ r   r   r	   r	      s%    4#  
"r   r	   N)fontTools.pens.transformPenr   fontTools.miscr   fontTools.misc.textToolsr   parserr   shapesr   __all__objectr	   )ss   0r   <module>r<      sA    4   *   7
76586
76"f 6" 8s   A