
    BPc]                         d Z ddlZddlmZmZmZ  G d dej                  Zedk    r e                                             dS dS )z1Convert known layer structures to svg font glyphs    N)SVGfontFontFaceGlyphc                   $    e Zd ZdZd Zd Zd ZdS )LayersToSvgFontzConvert layers to an svg fontc                 |    | j         j                                        D ]}|j        |k    r|j        |         c S dS )Nr   )svg	namedview
get_guideslabelpoint)selfr   indexguides       0/usr/share/inkscape/extensions/layers2svgfont.pyguideline_valuezLayersToSvgFont.guideline_value   sL    X'2244 	* 	*E{e##{5)))) $q    c                     |                                 }|j                            dd           |j                            dt	          |          t	          |          z
             |                                 t          |j                  S )zJFlip Y axis because SVG fonts use a different orientation than regular SVG   r   )copy	transform	add_scaleadd_translateintapply_transformstrpath)r   r   emsizebaselines       r   flip_cordinate_systemz%LayersToSvgFont.flip_cordinate_system#   sp    yy{{  B'''$$QFc(mm(CDDD49~~r   c           	         t          t          | j                            d                              }|                     dd          }|                     dd          |z
  }|                     dd          |z
  }|                     dd          |z
  }||                     dd          z
  }| j        j                            dt                    }|                    d	t          |                     |                    d
t          |                     |                    dt                    }|                    dd           |                    dt          |                     |                    dt          |                     |                    dt          |                     |                    dt          |                     |                    dt          |                     | j                            d          D ]}	|	j        }
d|
v r|
                    d          d         }|dk    r|                    dt                    }n.|                    d                    |          t                    }|                    d|           d}|	                    d          D ]}|d|                     |||          z   z  } |                    d|           dS )zMain extension codewidthr    r   ascendercapsxheight	descenderzsvg:fontzhoriz-adv-xzhoriz-origin-yz	font-facezfont-familySVGFontzunits-per-emz
cap-heightzx-heightascentdescentzsvg:gzGlyphLayer-'zsvg:glyph[@unicode="'"]zsvg:glyph[@unicode='{}']unicode zsvg:path dN)r   floatr	   getr   defsget_or_creater   setr   r   findallr   splitr   formatr!   )r   r   r    r$   r%   r&   r'   fontfontfacegroupr   unicode_charglyphpath_dr   s                  r   effectzLayersToSvgFont.effect+   s   U48<<001122''
A66''
A66A##FA..9&&y!44x?t33KCCC	x}**:w??F,,,!3x==111%%k8<<]I...^S[[111\3t99---ZW...Xs8}}---YI///X%%g.. %	' %	'EKE%%${{=99!<3&& ../LeTTEE ..299,GG E 		)\2220 !MM*55 W WDcD$>$>tVX$V$VVVFF		#v&&&K%	' %	'r   N)__name__
__module____qualname____doc__r   r!   r>    r   r   r   r      sG        ''    :' :' :' :' :'r   r   __main__)	rB   inkexr   r   r   EffectExtensionr   r?   runrC   r   r   <module>rH      s   ( 8 7  * * * * * * * * * *K' K' K' K' K'e+ K' K' K'\ zO r   