U
    Q»{jm  ã                   @   sÔ   d dl mZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZ d dl
mZmZmZ d dlmZ d dlmZ d d	lmZ d d
lZe d¡Zdd„ Zdd„ Zdd„ Zddd„ZedkrÐd d
l Z e  !eƒ ¡ d
S )é    )ÚnoRound)ÚTTFontÚnewTable)ÚotTables)ÚOTTableWriter)ÚHVAR_FIELDSÚVVAR_FIELDSÚ
_add_VHVAR)ÚbuilderÚmodelsÚvarStore)ÚfixedToFloat)ÚmakeOutputFileName)ÚpartialNzfontTools.varLib.avarc                 C   sô   | d }i }|   ¡ }|j}|D ]È}g }g }	|j |g ¡}
|
D ]œ}| |j¡ |jdd … }||d |d d … }t|ƒdks‚t‚|d d k	rš|d | nd|d< |d d k	rº|d | nd|d< |	 |d |d  ¡ q<|	|f||< qd }||fS )NÚgvaréüÿÿÿé   r   é   )	ZgetGlyphOrderÚphantomIndexÚ
variationsÚgetÚappendÚaxesZcoordinatesÚlenÚAssertionError)ÚfontÚaxisTagsZtableFieldsr   ZvhAdvanceDeltasAndSupportsZ
glyphOrderr   Z	glyphNameZsupportsZdeltasr   ÚtvZphantomsZvOrigDeltasAndSupports© r   úT/var/www/html/bwave/python/venv/lib/python3.8/site-packages/fontTools/varLib/hvar.pyÚ_get_advance_metrics   s&      r    c                 C   sB   d| kr| d= dd„ | d j D ƒ}tt| |tƒ}t| |t|ƒ d S )NZHVARc                 S   s   g | ]
}|j ‘qS r   ©ZaxisTag©Ú.0Zaxisr   r   r   Ú
<listcomp>3   s     zadd_HVAR.<locals>.<listcomp>Úfvar)r   r   r    r   r	   ©r   r   ZgetAdvanceMetricsr   r   r   Úadd_HVAR0   s
    r'   c                 C   sB   d| kr| d= t t| |tƒ}dd„ | d jD ƒ}t| |t|ƒ d S )NZVVARc                 S   s   g | ]
}|j ‘qS r   r!   r"   r   r   r   r$   <   s     zadd_VVAR.<locals>.<listcomp>r%   )r   r    r   r   r	   r   r&   r   r   r   Úadd_VVAR8   s
    r(   c           	      C   sú   | dkrddl }|jdd… } ddlm} ddlm} ddl}|jddd�}|jd	d
dd� |jddt	dd� | 
| ¡}|dd� t|jƒ}d|kr¢t d¡ dS t|ƒ d|krºt|ƒ |jdkrÖt|jddd�}n|j}|röt d|¡ | |¡ dS )z"Add `HVAR` table to variable font.Nr   r   )ÚconfigLogger)ÚDesignSpaceDocumentzfonttools varLib.hvarz'Add `HVAR` table from to variable font.)Údescriptionr   zvarfont.ttfzVariable-font file.)ÚmetavarÚhelpz-oz--output-filezOutput font file name.)Útyper-   ÚWARNING)Úlevelr%   zNot a variable font.ZvmtxTz.hvar)Z	overWriteÚsuffixz	Saving %s)ÚsysÚargvZ	fontToolsr)   ZfontTools.designspaceLibr*   ÚargparseÚArgumentParserÚadd_argumentÚstrÚ
parse_argsr   r   ÚlogÚerrorr'   r(   Zoutput_filer   ÚinfoÚsave)	Úargsr2   r)   r*   r4   ÚparserÚoptionsr   Úoutfiler   r   r   Úmain@   s@    þü




rA   Ú__main__)N)"ZfontTools.misc.roundToolsr   ZfontTools.ttLibr   r   ZfontTools.ttLib.tablesr   ZotZfontTools.ttLib.tables.otBaser   ZfontTools.varLibr   r   r	   r
   r   r   ZfontTools.misc.fixedToolsr   Zfi2flZfontTools.misc.cliToolsr   Ú	functoolsr   ÚloggingÚ	getLoggerr9   r    r'   r(   rA   Ú__name__r2   Úexitr   r   r   r   Ú<module>   s"   
!
.