a
    Z¨XhÌ  ã                   @   s^   d dl mZ d dlmZ d dlmZ ddlmZ ddlm	Z	 dd„ d	D ƒZ
G d
d„ deƒZdS )é    )ÚTransformPen)Úetree©Útostré   )Ú
parse_path)ÚPathBuilderc                 C   s   g | ]}t |ƒ‘qS © r   )Ú.0Úsr	   r	   úc/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/fontTools/svgLib/path/__init__.pyÚ
<listcomp>   ó    r   )ÚSVGPathr   c                   @   s0   e Zd ZdZd	dd„Zed
dd„ƒZdd„ ZdS )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                 C   s2   |d u rt  ¡ | _nt  |¡}| ¡ | _|| _d S ©N)r   ÚElementTreeÚrootÚparseÚgetrootÚ	transform)ÚselfÚfilenamer   Útreer	   r	   r   Ú__init__&   s
    

zSVGPath.__init__c                 C   s   | |d}t  |¡|_|S )N)r   )r   Ú
fromstringr   )ÚclsÚdatar   r   r	   r	   r   r   .   s    
zSVGPath.fromstringc                 C   sp   | j rt|| j ƒ}tƒ }| j ¡ D ]}| |¡ q"|}t|j|jƒD ]&\}}|r\t||ƒ}n|}t	||ƒ qDd S r   )
r   r   r   r   ÚiterZadd_path_from_elementÚzipÚpathsZ
transformsr   )r   ZpenZpbÚelZoriginal_penÚpathr   r	   r	   r   Údraw4   s    zSVGPath.draw)NN)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úclassmethodr   r"   r	   r	   r	   r   r      s
   
r   N)ZfontTools.pens.transformPenr   ZfontTools.miscr   ZfontTools.misc.textToolsr   Úparserr   Zshapesr   Ú__all__Úobjectr   r	   r	   r	   r   Ú<module>   s   