
    khh                     2    d dl mZmZmZ d Z G d d      Zy)    )VariationModelnormalizeValuepiecewiseLinearMapc                 F    t        t        | j                                     S N)tuplesorteditems)locs    q/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/fontTools/feaLib/variableScalar.pyLocationr      s    		$%%    c                       e Zd ZdZi fdZd Zed        Zed        Zd Z	d Z
d Zd	 Zed
        ZddZddZddZddZy)VariableScalarzFA scalar with different values at different points in the designspace.c                 t    i | _         i | _        |j                         D ]  \  }}| j                  ||        y r   )valuesaxesr
   	add_value)selflocation_valuelocationvalues       r   __init__zVariableScalar.__init__   s:    	-335 	,OHeNN8U+	,r   c                 J   g }| j                   j                         D ]h  \  }}dj                  |D cg c]0  \  }}| dt        |      j	                         rt        |      n| 2 c}}      }|j                  d||fz         j ddj                  |      z   dz   S c c}}w )N,=z%s:%i( ))r   r
   joinfloat
is_integerintappend)r   r
   r   r   axcoordr   s          r   __repr__zVariableScalar.__repr__   s    #{{002 	1OHe(( &.!E d!%,*A*A*CCJOPC LLC</0	1 chhuo&,,s   5Bc                 x    t        | j                  j                               t        fddd  D              S )Nc              3   .   K   | ]  }|d    k7    yw)r   N ).0vr   s     r   	<genexpr>z+VariableScalar.does_vary.<locals>.<genexpr>    s     6a1q	>6s      )listr   any)r   r   s    @r   	does_varyzVariableScalar.does_vary   s1    dkk((*+66!":666r   c                     | j                   st        d      | j                   D ci c]  }|j                  | c}S c c}w )Nz=.axes must be defined on variable scalar before interpolating)r   
ValueErroraxisTag)r   r%   s     r   	axes_dictzVariableScalar.axes_dict"   s;    yyO  *.32

B333s   =c                 *   | j                  |      }i }|j                         D ]c  }|| j                  vrt        d|d|      | j                  |   }t	        ||   |j
                  |j                  |j                  f      ||<   e t        |      S )NzUnknown axis z in )	fix_locationkeysr5   r3   r   minValuedefaultValuemaxValuer   )r   r   normalized_locationaxtagaxiss        r   _normalized_locationz#VariableScalar._normalized_location*   s    $$X. ]]_ 	EDNN* E8!LMM>>%(D)7$--1B1BDMM!R*&		 +,,r   c                     t        |      }| j                  j                         D ]  \  }}||vs|j                  ||<    |S r   )dictr5   r
   r:   )r   r   tagr>   s       r   r7   zVariableScalar.fix_location7   sI    >--/ 	2IC(" $ 1 1	2 r   c                 n    | j                   r| j                  |      }|| j                  t        |      <   y r   )r   r7   r   r   )r   r   r   s      r   r   zVariableScalar.add_value>   s,    99((2H*/HX&'r   c           	          | j                   j                         D ci c]   \  }}t        | j                  |            |" c}}| _         y c c}}w r   )r   r
   r   r7   )r   lr,   s      r   fix_all_locationsz VariableScalar.fix_all_locationsD   sD    :>++:K:K:M
26!QHT&&q)*A-
 
s   %Ac                     | j                          t        | j                  D ci c]  }|j                  |j                   c}      }|| j
                  vrt        d      | j
                  |   S c c}w )Nz Default value could not be found)rF   r   r   r4   r:   r   r3   )r   r%   keys      r   defaultzVariableScalar.defaultI   sa     diiH

BOO3HIdkk!?@@{{3	 Is   A1Nc                 ,   t        |      }|| j                  j                         v r| j                  |   S t        | j                  j                               }t	        | j                  |            }| j                  ||      j                  ||      S r   )r   r   r8   r/   rA   r?   modelinterpolateFromMasters)r   r   model_cacheavarr   r   s         r   value_at_locationz VariableScalar.value_at_locationR   sz    x $++""$$;;s##dkk((*+4,,S12zz+t,CCCPPr   c                    |,t        | j                  j                               }||v r||   S | j                  j                         D cg c]  }t        | j	                  |             }}|T|j
                  }|D cg c]9  }|j                         D ci c]  \  }}|||v rt        |||         n| c}}; }}}}t        |      }	||	|<   |	S c c}w c c}}w c c}}}w r   )	r   r   r8   rA   r?   segmentsr
   r   r   )
r   rM   rN   rH   k	locationsmappingr   r,   ms
             r   rK   zVariableScalar.modelZ   s    "((*+Ck!"3''AEAQAQASTAT$33A67T	TmmG !* 
  !) 01 AL)!WQZ8aOI  9%" K Us   !CC# C:C#C#c                     t        | j                  j                               }| j                  ||      j                  |      S r   )r/   r   rK   getDeltasAndSupports)r   rM   rN   r   s       r   get_deltas_and_supportsz&VariableScalar.get_deltas_and_supportsn   s5    dkk((*+zz+t,AA&IIr   c                     | j                  ||      \  }}|j                  |       |j                  |      }t        | j                        |fS r   )rX   setSupportsstoreDeltasr#   rI   )r   store_builderrM   rN   deltassupportsindexs          r   add_to_variation_storez%VariableScalar.add_to_variation_storer   sK    77TJ!!(+))&14<< %''r   )NN)__name__
__module____qualname____doc__r   r'   propertyr1   r5   r?   r7   r   rF   rI   rO   rK   rX   r`   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>rg      s    V V&n( n(r   