
    Ph                     n    d dl mZ d dlmZ d dlmZmZ ddl	m
Z
 d dlZdZ G d d	e
j                        Zy)
    )sstruct)safeEval)ensureVersionIsLongversionToFixed   )DefaultTableNaN  
		>	# big endian
		tableVersion:		L
		ascent:			h
		descent:		h
		lineGap:		h
		advanceHeightMax:	H
		minTopSideBearing:	h
		minBottomSideBearing:	h
		yMaxExtent:		h
		caretSlopeRise:		h
		caretSlopeRun:		h
		caretOffset:		h
		reserved1:		h
		reserved2:		h
		reserved3:		h
		reserved4:		h
		metricDataFormat:	h
		numberOfVMetrics:	H
c                   j    e Zd ZdZg dZd Zd Zd Zd Zd Z	e
d        Zej                  d	        Zy
)table__v_h_e_aa=  Vertical Header table

    The ``vhea`` table contains information needed during vertical
    text layout.

    .. note::
       This converter class is kept in sync with the :class:`._h_h_e_a.table__h_h_e_a`
       table constructor.

    See also https://learn.microsoft.com/en-us/typography/opentype/spec/vhea
    )vmtxglyfCFF CFF2c                 :    t        j                  t        ||        y N)r   unpack
vheaFormat)selfdatattFonts      jC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\fontTools/ttLib/tables/_v_h_e_a.py	decompileztable__v_h_e_a.decompile2   s    z4.    c                 
   |j                   rD|j                  d      s"|j                  d      s|j                  d      r| j                  |       t        | j                        | _        t        j                  t        |       S )Nr   r   r   )recalcBBoxesisLoadedrecalcfi2vetableVersionr   packr   )r   r   s     r   compileztable__v_h_e_a.compile5   s_    OOF#v&v&KK!$"3"34||J--r   c                 *   d|vry |d   }t        d |j                  j                         D              | _        i }d|v rx|d   }|j	                         D ]_  }||   }|j
                  dk(  r|j
                  dk  rt        |d      s|j                  |       |j                  |j                  z
  ||<   a nd|v sd|v rd|v r|d   j                  j                  d   }n|d   j                  j                  d   }|j                  }|j	                         D ]X  }||   }	|	j                  |      }
|
t        t        j                   |
d         t        j"                  |
d	         z
        ||<   Z |rt%        d
      }t%        d
      }t%        d
       }|j'                         D ]>  \  }}||   \  }}||z
  |z
  }||z   }t)        ||      }t)        ||      }t        ||      }@ || _        || _        || _        y d| _        d| _        d| _        y )Nr   c              3   &   K   | ]	  \  }}|  y wr    ).0adv_s      r   	<genexpr>z(table__v_h_e_a.recalc.<locals>.<genexpr>D   s     #Q6PFCC6Ps   r   r   yMaxr   r      r   inf)maxmetricsvaluesadvanceHeightMaxgetGlyphOrdernumberOfContourshasattrrecalcBoundsr(   yMincfftopDictIndexCharStrings
calcBoundsintmathceilfloorfloatitemsminminTopSideBearingminBottomSideBearing
yMaxExtent)r   r   	vmtxTableboundsHeightDict	glyfTablenamegtopDictcharStringscsboundsr?   r@   rA   boundsHeightadvanceHeighttsbbsbextents                      r   r   ztable__v_h_e_a.recalc?   s0   6N	 ##Qi6G6G6N6N6P#Q QVvI,,.dO%%*%%)'!V2D NN9-)*!&& & / v6!1 .,,99!< .,,99!<!--K,,. &{3%-0		&),tzz&)/DD.$T*	 /  %e#(< ,J&6&<&<&>"l%.t_"s#c)L8|+$'(93$?!'*+?'E$ V4
 '? &7D"(<D%(DO &'D"()D%DOr   c                     t        j                  t              \  }}}|D ]F  }t        | |      }|dk(  rt	        |      }d|z  }|j                  ||       |j                          H y )Nr   z0x%08x)value)r   	getformatr   getattrr   	simpletagnewline)r   writerr   formatstringnamesfixesrE   rQ   s           r   toXMLztable__v_h_e_a.toXMLt   sg    %,%6%6z%B"eUDD$'E~%e 5(T/NN r   c                 t    |dk(  rt        | |t        |d                y t        | |t        |d                y )Nr   rQ   )setattrve2fir   )r   rE   attrscontentr   s        r   fromXMLztable__v_h_e_a.fromXML~   s7    >!D$eGn 56dHU7^45r   c                     | j                   S r   caretOffset)r   s    r   	reserved0ztable__v_h_e_a.reserved0   s    r   c                     || _         y r   rb   )r   rQ   s     r   rd   ztable__v_h_e_a.reserved0   s
     r   N)__name__
__module____qualname____doc__dependenciesr   r    r   rZ   r`   propertyrd   setterr#   r   r   r
   r
   !   sV    
 4L/.3 j6     ! !r   r
   )fontTools.miscr   fontTools.misc.textToolsr   fontTools.misc.fixedToolsr   r   r   r]    r   r9   r   r
   r#   r   r   <module>rq      s3    " -  
,j!\.. j!r   