
    h                     2    S SK JrJrJr  S r " S S5      rg)    )VariationModelnormalizeValuepiecewiseLinearMapc                 F    [        [        U R                  5       5      5      $ N)tuplesorteditems)locs    Q/var/www/html/env/lib/python3.13/site-packages/fontTools/feaLib/variableScalar.pyLocationr      s    		$%%    c                       \ rS rSrSr0 4S jrS r\S 5       r\S 5       r	S r
S rS	 rS
 r\S 5       rSS jrSS jrSS jrSS jrSrg)VariableScalar   zFA scalar with different values at different points in the designspace.c                 t    0 U l         0 U l        UR                  5        H  u  p#U R                  X#5        M     g r   )valuesaxesr
   	add_value)selflocation_valuelocationvalues       r   __init__VariableScalar.__init__   s1    	-335OHNN8+  6r   c           
         / nU R                   R                  5        HD  u  p#SR                  U VVs/ s H  u  pESXE4-  PM     snn5      nUR                  SXS4-  5        MF     SSR                  U5      -   S-   $ s  snnf )N,z%s=%iz%s:%i( ))r   r
   joinappend)r   r
   r   r   axr   s         r   __repr__VariableScalar.__repr__   sy    #{{002OH((xHxGBGri/xHICLLC</0  3 chhuo&,, Is   A<c                 z   ^ [        U R                  R                  5       5      m[        U4S jTSS   5       5      $ )Nc              3   2   >#    U  H  oTS    :g  v   M     g7f)r   N ).0vr   s     r   	<genexpr>+VariableScalar.does_vary.<locals>.<genexpr>   s     6:aq	>:s      )listr   any)r   r   s    @r   	does_varyVariableScalar.does_vary   s1    dkk((*+66!":666r   c                     U R                   (       d  [        S5      eU R                    Vs0 s H  oR                  U_M     sn$ s  snf )Nz=.axes must be defined on variable scalar before interpolating)r   
ValueErroraxisTag)r   r#   s     r   	axes_dictVariableScalar.axes_dict   s=    yyO  *.32

B333s   Ac                 0   U R                  U5      n0 nUR                  5        He  nX0R                  ;  a  [        SU< SU< 35      eU R                  U   n[	        X   UR
                  UR                  UR                  45      X#'   Mg     [        U5      $ )NzUnknown axis z in )	fix_locationkeysr5   r3   r   minValuedefaultValuemaxValuer   )r   r   normalized_locationaxtagaxiss        r   _normalized_location#VariableScalar._normalized_location%   s    $$X. ]]_ENN* E8!LMM>>%(D)7$--1B1BDMM!R*&	 % +,,r   c                     [        U5      nU R                  R                  5        H  u  p#X!;  d  M  UR                  X'   M     U$ r   )dictr5   r
   r;   )r   r   tagr?   s       r   r8   VariableScalar.fix_location2   s>    >--/IC" $ 1 1 0 r   c                 v    U R                   (       a  U R                  U5      nX R                  [        U5      '   g r   )r   r8   r   r   )r   r   r   s      r   r   VariableScalar.add_value9   s*    99((2H*/HX&'r   c           	          U R                   R                  5        VVs0 s H   u  p[        U R                  U5      5      U_M"     snnU l         g s  snnf r   )r   r
   r   r8   )r   lr*   s      r   fix_all_locations VariableScalar.fix_all_locations?   sG    :>++:K:K:M
:M$!HT&&q)*A-:M
 
s   'Ac                     U R                  5         [        U R                   Vs0 s H  oR                  UR                  _M     sn5      nX R
                  ;  a  [        S5      eU R
                  U   $ s  snf )Nz Default value could not be found)rJ   r   r   r4   r;   r   r3   )r   r#   keys      r   defaultVariableScalar.defaultD   sa     diiHi

BOO3iHIkk!?@@{{3	 Is    A4Nc                 *   [        U5      nX@R                  R                  5       ;   a  U R                  U   $ [        U R                  R                  5       5      n[	        U R                  U5      5      nU R                  X#5      R                  XE5      $ r   )r   r   r9   r.   rC   r@   modelinterpolateFromMasters)r   r   model_cacheavarr   r   s         r   value_at_location VariableScalar.value_at_locationM   st    x ++""$$;;s##dkk((*+4,,S12zz+,CCCPPr   c                    Ub,  [        U R                  R                  5       5      nX1;   a  X   $ U R                  R                  5        Vs/ s H  n[        U R	                  U5      5      PM     nnUbY  UR
                  nU VVVs/ s H<  nUR                  5        VVs0 s H  u  pHXDU;   a  [        XU   5      OU_M     snnPM>     nnnn[        U5      n	Ub  XW'   U	$ s  snf s  snnf s  snnnf r   )	r   r   r9   rC   r@   segmentsr
   r   r   )
r   rS   rT   rM   k	locationsmappingr   r*   ms
             r   rQ   VariableScalar.modelU   s    "((*+C!"''AEAQAQASTASAT$33A67AS	TmmG !*
 !*H !) 0 0 L)!QZ8aO 0 !*   9%"  Us   $C"C- "C'C-'C-c                     [        U R                  R                  5       5      nU R                  X5      R                  U5      $ r   )r.   r   rQ   getDeltasAndSupports)r   rS   rT   r   s       r   get_deltas_and_supports&VariableScalar.get_deltas_and_supportsi   s3    dkk((*+zz+,AA&IIr   c                     U R                  X#5      u  pEUR                  U5        UR                  U5      n[        U R                  5      U4$ r   )r`   setSupportsstoreDeltasintrN   )r   store_builderrS   rT   deltassupportsindexs          r   add_to_variation_store%VariableScalar.add_to_variation_storem   sG    77J!!(+))&14<< %''r   )r   r   )NN)__name__
__module____qualname____firstlineno____doc__r   r$   propertyr0   r5   r@   r8   r   rJ   rN   rU   rQ   r`   rj   __static_attributes__r(   r   r   r   r      sx    P&( ,- 7 7 4 4-0

    Q(J(r   r   N)fontTools.varLib.modelsr   r   r   r   r   r(   r   r   <module>rt      s    V V&i( i(r   