a
    ׶a$                  
   @   s   d Z ddlmZ dgZG dd deZG dd deZedkrddlm	Z	m
Z
mZ edd	d
e	fde
fde	d fde	e
 fde
d fg dS )zPen calculating 0th, 1st, and 2nd moments of area of glyph shapes.
This is low-level, autogenerated pen. Use statisticsPen instead.    )BasePen
MomentsPenc                   @   s   e Zd ZdS )OpenContourErrorN)__name__
__module____qualname__ r   r   i/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/fontTools/pens/momentsPen.pyr   	   s   r   c                   @   sF   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dS )r   Nc                 C   s4   t | | d| _d| _d| _d| _d| _d| _d S )Nr   )r   __init__areamomentXmomentYmomentXXmomentXYmomentYY)selfZglyphsetr   r   r	   r
      s    zMomentsPen.__init__c                 C   s
   || _ d S N)_MomentsPen__startPointr   Zp0r   r   r	   _moveTo   s    zMomentsPen._moveToc                 C   s"   |   }|| jkr| | j d S r   )_getCurrentPointr   _lineTor   r   r   r	   
_closePath   s    
zMomentsPen._closePathc                 C   s   |   }|| jkrtdd S )Nz.Green theorem is not defined on open contours.)r   r   r   r   r   r   r	   _endPath!   s
    
zMomentsPen._endPathc                 C   sD  |   \}}|\}}|| }|| }|d }|d }	d| }
|| }|| }|d }|d }|d }|
| }|d }|d }|  j| d |d  |||  d  7  _|  j| | d || d  |	|
|  d  || d  7  _|  j| | d || d  || d  ||| ||   d  7  _|  j| | d |	| | d  || d  || d  |d d| |  d  7  _|  j| | d || d  || d  |	|d|  |  d  || ||  d  7  _|  j| | d || d  || d  || d  ||| ||  ||   d  7  _d S )N                     r   r   r   r   r   r   r   )r   p1x0y0x1y1r0r1r2r3r4r5r6r7r8r9r10r11r12r   r   r	   r   (   s*    ,@HX\zMomentsPen._lineToc           A      C   sN  |   \}}|\}}|\}}d| }	|	| }
d| }|| }d| }|| }d| }|d }d| }|d }d| }d| }|	| }|d }d| }|| }|	| | }d| }|| }|| }|d }d| }|d }|| } d|  }!|d }"|| }#d|" }$d|d  }%|d }&d| }'d| }(d| | })d| }*d| }+d	| },|d
| |  }-d| }.d	| }/d
| }0d| | }1|+| }2d| }3d
| }4d| }5d| }6|/| }7|| }8d| | |! }9d| }:d|d  };|d }<|d }=d| }>d	| }?d	| }@|  j|
d |d  |d  ||| |  d  ||	|  d  7  _|  j| | d || d  || |  d  ||| |  d  || d  ||
| ||  |  d  ||d|  |  d  7  _|  j|
||  d |d  || d  |!d  |"||  d  ||| ||  | | |# |$  d  |||  d  7  _|  j||| d|  | |- |.|   d |%| d  |&|' d  |&| d  |)||  d  |*| ||+  d  |d |(d|  |  d  || |/ ||/  ||  |,|  |0|  |1 |2 ||   d  ||%d|&  |) |,|   d  7  _|  j||| d|  d|"  |3|  |4 d	|8   d || |5|6  d  || d  |"|0|7 d|   d  |*| ||+  d  |3| | d  |4| d  || | ||#  | ||:  |"|.  |$|  |/|8  |9  d  ||| |(|  |1 |2 |7|   d  7  _|  j|
|| |5 |6  d ||4 d  | |' d  |"|
|- |>|   d  |;| d  |<| d	  |=|:|  d  |||> ||  |"|'  |"|+  |#|?  |4|  |; d|<  d|=  |@|   d  ||	 | ||?  |9 |@|   d  7  _d S )Nr   r   r   
      r       r   r      <      i     T   i   H  #   r!   )Ar   r"   p2r#   r$   r%   r&   x2y2r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r13r14r15r16r17r18r19r20r21r22r23r24r25r26r27r28r29r30r31r32r33r34r35r36r37r38r39r40r41r42r43r44r45r46r47r48r49r50r51r52r53r54r55r   r   r	   _qCurveToOneA   s    F~ zMomentsPen._qCurveToOnec                 C   s   |   \}}|\}}|\}}	|\}
}d| }|| }d|	 }d| }||
 }d| }d| }d| }d| }d| }d|	 }|d }|| }d| }|
d }||	 }|| }||
 }d| }d| }|d } d|  }!|d }"d	| }#d| }$d| }%|| }&d|& }'|% | |' }(|%|	 })||
 }*d| }+||
 },d|  }-d
| }.||	 }/d|/ }0d
|
 }1|1| }2|+| |0 |2 }3|| }4|| }5|| }6|
| }7||
 }8|
|	 | }9|	d }:d|: };|;|
 }<|d }=|=|
 }>|d }?d|? }@|d }Ad	| }B|
|	 }Cd|C }Dd|	 }E|	| }Fd|F }Gd|: }Hd| }Id| }J|| }K|| }L||	 }Md|M }Nd
| }O|| }Pd|? }Qd
|= }R|d }S|
d }Td|
 }U|d }V|| }Wd| }X|X|
 }Yd|/ }Z||
 }[|| }\d|/ }]|2d|\  |] }^||	 }_|| }`|
| }a||
 | }b||
 | }c||	 }dd|d }ed| }f||f }gd| | }hd| }id| |
 }jd| d|  |  d|d  |j|	  }k|| }ld|l }m|| |	 }nd|, }o||
 | }pd| }qd| }rd|  }sd|	 }t| | }u|| }v|| }wd|: }xd|	 }y||	 }z||
 |	 }{|| }|d|? }}d|: }~d| }||: d|>  }|| | }|
| |	 }|=| }|?|
 }|
| }d|
 }d| ||=  |;|  d|? |  }|| | }||	 | }|| |	 }d| }d	|C }d|A }|:| }|=| }d|A }|	d }|d }d|= }|d }|d }|~| |#|=  }|=|	 }|  j|d ||
 d  |d  ||	|  d  |||
  d  ||| d|  |  d  ||| |
  d  7  _|  j|d |d  |d  |||  d  |!|d|   d  |"||# d|  |  d  ||(|) |* |  d  |d| | |$  d  |d|& |+|	  |1|  |3 d|4  d|5  d|6  d|7  |8  d  |d| | |+|  d|,  |- |.  d  7  _|  j|'||  d |9d  |<d  |d|= |E|  |G |H ||   d  |>d  |@|d|
   d  |A||B |
  d  ||)| |D  d  |d|: d|A  |G |J|	  d|L  |N |O|  d|P  |Q |R  d  ||3d|7  d|C  |I|  |J|  |K  d  7  _|  j| |U |I |	  d  |!|(|1|  |8 |Z |[  d   |"d	|& d|4  d|5  d|6  |E|
  |^ d!|_  d|`  d|a   d   |||J ||#  d|  |X|  d|b  d"|c  |e |g  d   |d|S d|T  d#|W  |Y  d   d|S | d$  d|T |	 d%  |T| d&  d|V |E|O  d'  |Wd|	 d|   d   |d |E|J d(|  |  d)  |d*|p |q|  |q|  |r|	  |s|  |t|   d|u  d|v  d|w  | |.|  |X|  d|c  |h|  |j|  |k |m|  d+|n  |o|   d   |d,| | ||B  | |i  |-|
  d|S  d|T  d|V  d|W  |Y |h|
   d   7  _|  j|x | d- ||yd|   d-  ||= d  d| |F d%  |d|: d.|=   d-  |!d|z ||  d|:  d|=  d|F   d-  |"d|z d/||  |} |~ d0|A  d|F  d.|L  d|M  d|P  |R  d-  |@|rd|  d|   d-  |A|q|s |. |X |m |o  d-  || |? | d|  d|  d|  d|  d/|9  |]|   d-  |d|{ d|  d/|c  |e |g  d-  ||| |t|\  |||B  d	|  d|  ||A  | d|  d1|  d|  ||/  ||  ||  d2|  d|  ||  ||a  |#|a  |*|  d"|4 |	  d"|6 |  |H|
   d   |d|p d|u  d2|v  d|w  d|{  ||  d	|  |$|  d1|b  d	|c  |k d|l |  d|n   d   7  _|  j|x | d  ||U d   ||
 d  ||C d   d| |%|1  d'  ||%|+ |
  d)  |&|d|:  d|	 |   d   ||z| d|  d|  | d#|  |:|J  d|? |	  d|? |   d   |@|D|K |Z |[  d   |A||%|  d|7  |^ d|_  d!|`   d   ||~|
 | d|  d"|9   d   ||t|? |y|L  d|z |  |}|  |~|  ||  ||	  d|  d|  d|  d3|  | d|  d,|: |  d|A |  |L|f  |N|  |Q|  |R|   d   |d| d|  | d|  d|  d+|  d|  d|  |0|  d|7 |  d|9  |< |?|i   d   7  _d S )4Nr   r4   r   r   -   r9      	   r:   r5      r6   ~   ?   iz     *   Z            6   iv  r7   r=   r    8      r   r<      i$     r;   F      ,   r   i     i  i      i0H  i     i	  r8   Q   i  r!   )r   r"   r?   Zp3r#   r$   r%   r&   r@   rA   Zx3Zy3r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   Zr56Zr57Zr58Zr59Zr60Zr61Zr62Zr63Zr64Zr65Zr66Zr67Zr68Zr69Zr70Zr71Zr72Zr73Zr74Zr75Zr76Zr77Zr78Zr79Zr80Zr81Zr82Zr83Zr84Zr85Zr86Zr87Zr88Zr89Zr90Zr91Zr92Zr93Zr94Zr95Zr96Zr97Zr98Zr99Zr100Zr101Zr102Zr103Zr104Zr105Zr106Zr107Zr108Zr109Zr110Zr111Zr112Zr113Zr114Zr115Zr116Zr117Zr118Zr119Zr120Zr121Zr122Zr123Zr124Zr125Zr126Zr127Zr128Zr129Zr130Zr131Zr132Zr133Zr134Zr135Zr136Zr137Zr138Zr139r   r   r	   _curveToOne   s8   $$v    \  zMomentsPen._curveToOne)N)
r   r   r   r
   r   r   r   r   rm   r   r   r   r   r	   r      s   

E__main__)xyprintGreenPen)r      r   r   r   r   r   r   N)__doc__ZfontTools.pens.basePenr   __all__NotImplementedErrorr   r   r   ZfontTools.misc.symfontr   r   r   r   r   r   r	   <module>   s      


